-
+
-[![⛓️ Tests @nibiruchain/nibijs](https://github.com/NibiruChain/ts-sdk/actions/workflows/test-nibijs.yaml/badge.svg?branch=main)](https://github.com/NibiruChain/ts-sdk/actions/workflows/test-nibijs.yaml)
-[![⛓️ Tests @nibiruchain/indexer-nibi](https://github.com/NibiruChain/ts-sdk/actions/workflows/test-indexer-nibi.yaml/badge.svg?branch=main)](https://github.com/NibiruChain/ts-sdk/actions/workflows/test-indexer-nibi.yaml)
+
+
+
+
+
+
+
+
+
@@ -40,9 +49,9 @@ The `nibijs` source code can be found in the ["packages" directory](https://gith
- [Example: Transaction with arbitrary messages](#example-transaction-with-arbitrary-messages)
- [Codebase structure](#codebase-structure)
- [Development Quick Start](#development-quick-start)
-- [🔓 License](#-license)
+- [🔓 License](#%F0%9F%94%93-license)
-To learn more about Nibiru, see [docs.nibiru.fi](https://docs.nibiru.fi)
+To learn more about Nibiru, see [nibiru.fi/docs](https://nibiru.fi/docs)
---
@@ -60,11 +69,12 @@ npm install @nibiruchain/nibijs # or yarn add
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
+### Example: Creating a wallet
```js
-import { newRandomWallet, WalletHD } from "@nibiruchain/nibijs"
+import { newRandomWallet } from "@nibiruchain/nibijs"
+// Create a new Nibiru wallet
const wallet = await newRandomWallet()
const [{ address }] = await wallet.getAccounts()
@@ -73,17 +83,17 @@ console.log("mnemonic: ", wallet.mnemonic)
console.log("address: ", address)
```
-#### Example: Querying
+### Example: Querying
```js
import {
- IncentivizedTestnet,
NibiruQueryClient,
NibiruSigningClient,
+ Localnet,
} from "@nibiruchain/nibijs"
-const TEST_CHAIN = IncentivizedTestnet(2)
-const queryClient = await NibiruQueryClient.connect(TEST_CHAIN.endptTm)
+export const CHAIN: Chain = Localnet
+const queryClient = await NibiruQueryClient.connect(CHAIN.endptTm)
const perpParamsResp = await queryClient.nibiruExtensions.perp.params()
console.log("perpParams: %o", perpParamsResp)
@@ -97,63 +107,85 @@ const blockHeight = 1
const block = await queryClient.getBlock(blockHeight)
```
-#### Example: Sending funds
+### Example: Sending funds
```js
import {
Coin,
NibiruSigningClient,
- newCoins,
newSignerFromMnemonic,
+ Localnet
} from "@nibiruchain/nibijs"
+import { coins } from "@cosmjs/proto-signing"
+export const CHAIN: Chain = Localnet
const signer = await newSignerFromMnemonic(mnemonic!)
const signingClient = await NibiruSigningClient.connectWithSigner(
- TEST_CHAIN.endptTm,
+ CHAIN.endptTm,
signer,
)
const [{ address: fromAddr }] = await signer.getAccounts()
-const tokens: Coin[] = newCoins(5, "unibi")
+const tokens: Coin[] = coins(5, "unibi")
const toAddr: string = "..." // bech32 address of the receiving party
const txResp = await signingClient.sendTokens(fromAddr, toAddr, tokens, "auto")
```
-#### Example: Transaction with arbitrary messages
+### Example: Transaction with arbitrary messages
```js
-import { IncentivizedTestnet, NibiruSigningClient, newCoin } from "@nibiruchain/nibijs"
+import {
+ NibiruSigningClient,
+ newSignerFromMnemonic,
+ Msg,
+ TxMessage,
+ StdFee,
+ toSdkInt,
+ parseEventLogs,
+ Localnet
+} from "@nibiruchain/nibijs"
import { Msg, TxMessage } from "@nibiruchain/nibijs/dist/msg"
+import { coin } from "@cosmjs/proto-signing"
+// const mnemonic = "..." <--
+export const CHAIN: Chain = Localnet
const signer = await newSignerFromMnemonic(mnemonic!)
signer.getAccounts()
const signingClient = await NibiruSigningClient.connectWithSigner(
- TEST_CHAIN.endptTm,
+ CHAIN.endptTm,
signer,
)
const [{ address: fromAddr }] = await signer.getAccounts()
const pair = "ubtc:unusd"
+
+// ------------------------------------
+// Construct tx msgs
+// ------------------------------------
const msgs: TxMessage[] = [
Msg.perp.openPosition({
- tokenPair: pair,
- baseAssetAmountLimit: 0,
- leverage: 1,
- quoteAssetAmount: 10,
sender: fromAddr,
+ pair: pair,
+ quoteAssetAmount: 10,
+ leverage: 1,
goLong: true,
+ baseAssetAmountLimit: 0,
}),
Msg.perp.addMargin({
sender: fromAddr,
- tokenPair: pair,
- margin: newCoin("20", "unusd"),
+ pair: pair,
+ margin: coin("20", "unusd"),
}),
Msg.perp.removeMargin({
- tokenPair: pair,
sender: fromAddr,
- margin: newCoin("5", "unusd"),
+ pair: pair,
+ margin: coin("5", "unusd"),
}),
// final margin value of 10 (open) + 20 (add) - 5 (remove) = 25
]
+
+// ------------------------------------
+// Broadcast tx
+// ------------------------------------
const txResp = await signingClient.signAndBroadcast(fromAddr, msgs, "auto")
```
@@ -171,27 +203,30 @@ const txResp = await signingClient.signAndBroadcast(fromAddr, msgs, "auto")
---
-
+
## Development Quick Start
-1. First install yarn.
+1. Install and use `nvm`.
+
+ ```bash
+ wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.6/install.sh | bash
+ nvm use
+ ```
+
+2. Install yarn.
```sh
npm install -g yarn
```
-2. Then, install package dependencies. At the root of the repository, run
+3. Then, install package dependencies. At the root of the repository, run
```sh
yarn
```
-3. Lastly, compile the code in each package.
+4. Lastly, compile the code in each package.
```sh
yarn build
diff --git a/examples/01_new-wallet-and-faucet.ts b/examples/01_new-wallet-and-faucet.ts
deleted file mode 100644
index 1169ce83..00000000
--- a/examples/01_new-wallet-and-faucet.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import {
- useFaucet,
- newRandomWallet,
- IncentivizedTestnet,
-} from "@nibiruchain/nibijs"
-
-const TEST_CHAIN = IncentivizedTestnet(2)
-
-async function runExample() {
- const wallet = await newRandomWallet()
- const [{ address }] = await wallet.getAccounts()
-
- // Save the mnemonic somewhere to re-use the account
- console.log("mnemonic: ", wallet.mnemonic)
- console.log("address: ", address)
-
- await useFaucet({
- address,
- chain: TEST_CHAIN,
- grecaptcha: "GOOGLE_RECATPCHA_TOKEN",
- })
-}
-
-runExample().then(() => {
- console.log("Completed 01_new-wallet-and-faucet.ts")
-})
diff --git a/examples/02_queries.ts b/examples/02_queries.ts
deleted file mode 100644
index be196391..00000000
--- a/examples/02_queries.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-import {
- IncentivizedTestnet,
- NibiruQueryClient,
- NibiruSigningClient,
-} from "@nibiruchain/nibijs"
-
-const TEST_CHAIN = IncentivizedTestnet(2)
-
-async function runExample() {
- const queryClient = await NibiruQueryClient.connect(TEST_CHAIN.endptTm)
-
- const perpParamsResp = await queryClient.nibiruExtensions.perp.params()
- console.log("perpParams: %o", perpParamsResp)
-
- const allPools = await queryClient.nibiruExtensions.vpool.allPools()
- console.log("allPools: %o", allPools)
-
- const blockHeight = 1
- const block = await queryClient.getBlock(blockHeight)
- console.log("block: %o", block)
-
- // Use your address instead here.
- const address = "nibi1fm80fe48g0tp2aztltr6q9g987ejtnllt75qsm"
- const signingClient = await NibiruSigningClient.connect(TEST_CHAIN.endptTm)
- const allBalances = await signingClient.getAllBalances(address)
- console.log("allBalances: %o", allBalances)
-}
-
-runExample().then(async () => {
- console.log("Completed example: 02_queries.ts")
-})
diff --git a/examples/03_messages.ts b/examples/03_messages.ts
deleted file mode 100644
index c8f74b41..00000000
--- a/examples/03_messages.ts
+++ /dev/null
@@ -1,48 +0,0 @@
-import {
- IncentivizedTestnet,
- NibiruSigningClient,
- newCoin,
-} from "@nibiruchain/nibijs"
-import { Msg, TxMessage } from "@nibiruchain/nibijs/dist/msg"
-import { newSignerFromMnemonic } from "@nibiruchain/nibijs/dist/tx"
-
-const TEST_CHAIN = IncentivizedTestnet(2)
-
-async function runExample() {
- const mnemonic = "..." // fill in the blank
- 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,
- leverage: 1,
- quoteAssetAmount: 10,
- sender: fromAddr,
- goLong: true,
- }),
- Msg.perp.addMargin({
- sender: fromAddr,
- 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
- ]
- const txResp = await signingClient.signAndBroadcast(fromAddr, msgs, "auto")
- console.log("txResp: %o", txResp)
-}
-
-runExample().then(async () => {
- console.log("Completed example: 03_messages.ts")
-})
diff --git a/examples/04_sending_funds.ts b/examples/04_sending_funds.ts
deleted file mode 100644
index f2ab63e4..00000000
--- a/examples/04_sending_funds.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-import {
- Coin,
- NibiruSigningClient,
- newCoins,
- newSignerFromMnemonic,
-} from "@nibiruchain/nibijs"
-import { TEST_CHAIN } from "@nibiruchain/nibijs/src/test/helpers"
-
-async function runExample() {
- const mnemonic = "..." // fill in the blank
- 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
- const txResp = await signingClient.sendTokens(
- fromAddr,
- toAddr,
- tokens,
- "auto"
- )
- console.log("txResp: %o", txResp)
-}
-
-runExample().then(async () => {
- console.log("Completed example: 04_sending_funds.ts")
-})
diff --git a/examples/package.json b/examples/package.json
deleted file mode 100644
index e360117c..00000000
--- a/examples/package.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "dependencies": {
- "@nibiruchain/nibijs": "^0.19.14"
- },
- "devDependencies": {
- "ts-node": "^10.9.1"
- }
-}
diff --git a/examples/yarn.lock b/examples/yarn.lock
deleted file mode 100644
index 40066a88..00000000
--- a/examples/yarn.lock
+++ /dev/null
@@ -1,583 +0,0 @@
-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
-# yarn lockfile v1
-
-
-"@confio/ics23@^0.6.8":
- version "0.6.8"
- resolved "https://registry.yarnpkg.com/@confio/ics23/-/ics23-0.6.8.tgz#2a6b4f1f2b7b20a35d9a0745bb5a446e72930b3d"
- integrity sha512-wB6uo+3A50m0sW/EWcU64xpV/8wShZ6bMTa7pF8eYsTrSkQA7oLUIJcs/wb8g4y2Oyq701BaGiO6n/ak5WXO1w==
- dependencies:
- "@noble/hashes" "^1.0.0"
- protobufjs "^6.8.8"
-
-"@cosmjs/amino@0.28.13":
- version "0.28.13"
- resolved "https://registry.yarnpkg.com/@cosmjs/amino/-/amino-0.28.13.tgz#b51417a23c1ff8ef8b85a6862eba8492c6c44f38"
- integrity sha512-IHnH2zGwaY69qT4mVAavr/pfzx6YE+ud1NHJbvVePlbGiz68CXTi5LHR+K0lrKB5mQ7E+ZErWz2mw5U/x+V1wQ==
- dependencies:
- "@cosmjs/crypto" "0.28.13"
- "@cosmjs/encoding" "0.28.13"
- "@cosmjs/math" "0.28.13"
- "@cosmjs/utils" "0.28.13"
-
-"@cosmjs/cosmwasm-stargate@^0.28.11":
- version "0.28.13"
- resolved "https://registry.yarnpkg.com/@cosmjs/cosmwasm-stargate/-/cosmwasm-stargate-0.28.13.tgz#bea77bc999aaafdb677f446465f648cd000c5b4a"
- integrity sha512-dVZNOiRd8btQreRUabncGhVXGCS2wToXqxi9l3KEHwCJQ2RWTshuqV+EZAdCaYHE5W6823s2Ol2W/ukA9AXJPw==
- dependencies:
- "@cosmjs/amino" "0.28.13"
- "@cosmjs/crypto" "0.28.13"
- "@cosmjs/encoding" "0.28.13"
- "@cosmjs/math" "0.28.13"
- "@cosmjs/proto-signing" "0.28.13"
- "@cosmjs/stargate" "0.28.13"
- "@cosmjs/tendermint-rpc" "0.28.13"
- "@cosmjs/utils" "0.28.13"
- cosmjs-types "^0.4.0"
- long "^4.0.0"
- pako "^2.0.2"
-
-"@cosmjs/crypto@0.28.13":
- version "0.28.13"
- resolved "https://registry.yarnpkg.com/@cosmjs/crypto/-/crypto-0.28.13.tgz#541b6a36f616b2da5a568ead46d4e83841ceb412"
- integrity sha512-ynKfM0q/tMBQMHJby6ad8lR3gkgBKaelQhIsCZTjClsnuC7oYT9y3ThSZCUWr7Pa9h0J8ahU2YV2oFWFVWJQzQ==
- dependencies:
- "@cosmjs/encoding" "0.28.13"
- "@cosmjs/math" "0.28.13"
- "@cosmjs/utils" "0.28.13"
- "@noble/hashes" "^1"
- bn.js "^5.2.0"
- elliptic "^6.5.3"
- libsodium-wrappers "^0.7.6"
-
-"@cosmjs/encoding@0.28.13":
- version "0.28.13"
- resolved "https://registry.yarnpkg.com/@cosmjs/encoding/-/encoding-0.28.13.tgz#7994e8e2c435beaf0690296ffb0f7f3eaec8150b"
- integrity sha512-jtXbAYtV77rLHxoIrjGFsvgGjeTKttuHRv6cvuy3toCZzY7JzTclKH5O2g36IIE4lXwD9xwuhGJ2aa6A3dhNkA==
- dependencies:
- base64-js "^1.3.0"
- bech32 "^1.1.4"
- readonly-date "^1.0.0"
-
-"@cosmjs/json-rpc@0.28.13":
- version "0.28.13"
- resolved "https://registry.yarnpkg.com/@cosmjs/json-rpc/-/json-rpc-0.28.13.tgz#ff3f0c4a2f363b1a2c6779f8624a897e217fe297"
- integrity sha512-fInSvg7x9P6p+GWqet+TMhrMTM3OWWdLJOGS5w2ryubMjgpR1rLiAx77MdTNkArW+/6sUwku0sN4veM4ENQu6A==
- dependencies:
- "@cosmjs/stream" "0.28.13"
- xstream "^11.14.0"
-
-"@cosmjs/math@0.28.13":
- version "0.28.13"
- resolved "https://registry.yarnpkg.com/@cosmjs/math/-/math-0.28.13.tgz#50c05bc67007a04216f7f5e0c93f57270f8cc077"
- integrity sha512-PDpL8W/kbyeWi0mQ2OruyqE8ZUAdxPs1xCbDX3WXJwy2oU+X2UTbkuweJHVpS9CIqmZulBoWQAmlf6t6zr1N/g==
- dependencies:
- bn.js "^5.2.0"
-
-"@cosmjs/proto-signing@0.28.13", "@cosmjs/proto-signing@^0.28.11":
- version "0.28.13"
- resolved "https://registry.yarnpkg.com/@cosmjs/proto-signing/-/proto-signing-0.28.13.tgz#95ac12f0da0f0814f348f5ae996c3e96d015df61"
- integrity sha512-nSl/2ZLsUJYz3Ad0RY3ihZUgRHIow2OnYqKsESMu+3RA/jTi9bDYhiBu8mNMHI0xrEJry918B2CyI56pOUHdPQ==
- dependencies:
- "@cosmjs/amino" "0.28.13"
- "@cosmjs/crypto" "0.28.13"
- "@cosmjs/encoding" "0.28.13"
- "@cosmjs/math" "0.28.13"
- "@cosmjs/utils" "0.28.13"
- cosmjs-types "^0.4.0"
- long "^4.0.0"
-
-"@cosmjs/socket@0.28.13":
- version "0.28.13"
- resolved "https://registry.yarnpkg.com/@cosmjs/socket/-/socket-0.28.13.tgz#d8443ad6e91d080fc6b80a7e9cf297a56b1f6833"
- integrity sha512-lavwGxQ5VdeltyhpFtwCRVfxeWjH5D5mmN7jgx9nuCf3XSFbTcOYxrk2pQ4usenu1Q1KZdL4Yl5RCNrJuHD9Ug==
- dependencies:
- "@cosmjs/stream" "0.28.13"
- isomorphic-ws "^4.0.1"
- ws "^7"
- xstream "^11.14.0"
-
-"@cosmjs/stargate@0.28.13", "@cosmjs/stargate@^0.28.11":
- version "0.28.13"
- resolved "https://registry.yarnpkg.com/@cosmjs/stargate/-/stargate-0.28.13.tgz#a73d837a46ee8944e6eafe162f2ff6943c14350e"
- integrity sha512-dVBMazDz8/eActHsRcZjDHHptOBMqvibj5CFgEtZBp22gP6ASzoAUXTlkSVk5FBf4sfuUHoff6st134/+PGMAg==
- dependencies:
- "@confio/ics23" "^0.6.8"
- "@cosmjs/amino" "0.28.13"
- "@cosmjs/encoding" "0.28.13"
- "@cosmjs/math" "0.28.13"
- "@cosmjs/proto-signing" "0.28.13"
- "@cosmjs/stream" "0.28.13"
- "@cosmjs/tendermint-rpc" "0.28.13"
- "@cosmjs/utils" "0.28.13"
- cosmjs-types "^0.4.0"
- long "^4.0.0"
- protobufjs "~6.11.3"
- xstream "^11.14.0"
-
-"@cosmjs/stream@0.28.13":
- version "0.28.13"
- resolved "https://registry.yarnpkg.com/@cosmjs/stream/-/stream-0.28.13.tgz#1e79d1116fda1e63e5ecddbd9d803d403942b1fa"
- integrity sha512-AnjtfwT8NwPPkd3lhZhjOlOzT0Kn9bgEu2IPOZjQ1nmG2bplsr6TJmnwn0dJxHT7UGtex17h6whKB5N4wU37Wg==
- dependencies:
- xstream "^11.14.0"
-
-"@cosmjs/tendermint-rpc@0.28.13", "@cosmjs/tendermint-rpc@^0.28.11":
- version "0.28.13"
- resolved "https://registry.yarnpkg.com/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.28.13.tgz#0bf587ae66fa3f88319edbd258492d28e73f9f29"
- integrity sha512-GB+ZmfuJIGQm0hsRtLYjeR3lOxF7Z6XyCBR0cX5AAYOZzSEBJjevPgUHD6tLn8zIhvzxaW3/VKnMB+WmlxdH4w==
- dependencies:
- "@cosmjs/crypto" "0.28.13"
- "@cosmjs/encoding" "0.28.13"
- "@cosmjs/json-rpc" "0.28.13"
- "@cosmjs/math" "0.28.13"
- "@cosmjs/socket" "0.28.13"
- "@cosmjs/stream" "0.28.13"
- "@cosmjs/utils" "0.28.13"
- axios "^0.21.2"
- readonly-date "^1.0.0"
- xstream "^11.14.0"
-
-"@cosmjs/utils@0.28.13":
- version "0.28.13"
- resolved "https://registry.yarnpkg.com/@cosmjs/utils/-/utils-0.28.13.tgz#2fd2844ec832d7833811e2ae1691305d09791a08"
- integrity sha512-dVeMBiyg+46x7XBZEfJK8yTihphbCFpjVYmLJVqmTsHfJwymQ65cpyW/C+V/LgWARGK8hWQ/aX9HM5Ao8QmMSg==
-
-"@cspotcode/source-map-support@^0.8.0":
- version "0.8.1"
- resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1"
- integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==
- dependencies:
- "@jridgewell/trace-mapping" "0.3.9"
-
-"@jridgewell/resolve-uri@^3.0.3":
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721"
- integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==
-
-"@jridgewell/sourcemap-codec@^1.4.10":
- version "1.4.15"
- resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
- integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
-
-"@jridgewell/trace-mapping@0.3.9":
- version "0.3.9"
- resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9"
- integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==
- dependencies:
- "@jridgewell/resolve-uri" "^3.0.3"
- "@jridgewell/sourcemap-codec" "^1.4.10"
-
-"@nibiruchain/nibijs@^0.19.13":
- version "0.19.13"
- resolved "https://registry.yarnpkg.com/@nibiruchain/nibijs/-/nibijs-0.19.13.tgz#78325f3e472a1e290650bc1c277a131b94a9a73a"
- integrity sha512-TNJy5HJZ0/dGd2fmN00vGlzD2rowc6oWYkMy3vyqlfd+VpYVRCASZevj6M/0ZqHU4lk54v31yL0c+8eMMWeREg==
- dependencies:
- "@cosmjs/cosmwasm-stargate" "^0.28.11"
- "@cosmjs/proto-signing" "^0.28.11"
- "@cosmjs/stargate" "^0.28.11"
- "@cosmjs/tendermint-rpc" "^0.28.11"
- "@nibiruchain/protojs" "^0.19.0"
- cross-fetch "^3.1.5"
- long "^5.2.0"
-
-"@nibiruchain/protojs@^0.19.0":
- version "0.19.1"
- resolved "https://registry.yarnpkg.com/@nibiruchain/protojs/-/protojs-0.19.1.tgz#648de82b86098d6780373f49326dcae53959f1b3"
- integrity sha512-6iDBjCRp1+Yv7qWvZU17xVlrJWFaIw404k8JY6fT3At3POJeHHPMAJnFRC3W2aiNnZwzvxK6Qu5GNv8Fv9Odag==
-
-"@noble/hashes@^1", "@noble/hashes@^1.0.0":
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.3.tgz#360afc77610e0a61f3417e497dcf36862e4f8111"
- integrity sha512-CE0FCR57H2acVI5UOzIGSSIYxZ6v/HOhDR0Ro9VLyhnzLwx0o8W1mmgaqlEUx4049qJDlIBRztv5k+MM8vbO3A==
-
-"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2":
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf"
- integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==
-
-"@protobufjs/base64@^1.1.2":
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735"
- integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==
-
-"@protobufjs/codegen@^2.0.4":
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb"
- integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==
-
-"@protobufjs/eventemitter@^1.1.0":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70"
- integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==
-
-"@protobufjs/fetch@^1.1.0":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45"
- integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==
- dependencies:
- "@protobufjs/aspromise" "^1.1.1"
- "@protobufjs/inquire" "^1.1.0"
-
-"@protobufjs/float@^1.0.2":
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1"
- integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==
-
-"@protobufjs/inquire@^1.1.0":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089"
- integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==
-
-"@protobufjs/path@^1.1.2":
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d"
- integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==
-
-"@protobufjs/pool@^1.1.0":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54"
- integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==
-
-"@protobufjs/utf8@^1.1.0":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570"
- integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==
-
-"@tsconfig/node10@^1.0.7":
- version "1.0.9"
- resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2"
- integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==
-
-"@tsconfig/node12@^1.0.7":
- version "1.0.11"
- resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d"
- integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==
-
-"@tsconfig/node14@^1.0.0":
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1"
- integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==
-
-"@tsconfig/node16@^1.0.2":
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9"
- integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==
-
-"@types/long@^4.0.1":
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a"
- integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==
-
-"@types/node@>=13.7.0":
- version "18.11.5"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.5.tgz#1bc94cf2f9ab5fe33353bc7c79c797dcc5325bef"
- integrity sha512-3JRwhbjI+cHLAkUorhf8RnqUbFXajvzX4q6fMn5JwkgtuwfYtRQYI3u4V92vI6NJuTsbBQWWh3RZjFsuevyMGQ==
-
-acorn-walk@^8.1.1:
- version "8.2.0"
- resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1"
- integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==
-
-acorn@^8.4.1:
- version "8.8.2"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a"
- integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==
-
-arg@^4.1.0:
- version "4.1.3"
- resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
- integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
-
-axios@^0.21.2:
- version "0.21.4"
- resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575"
- integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==
- dependencies:
- follow-redirects "^1.14.0"
-
-base64-js@^1.3.0:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
- integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
-
-bech32@^1.1.4:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9"
- integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==
-
-bn.js@^4.11.9:
- version "4.12.0"
- resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
- integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
-
-bn.js@^5.2.0:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70"
- integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==
-
-brorand@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
- integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==
-
-cosmjs-types@^0.4.0:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/cosmjs-types/-/cosmjs-types-0.4.1.tgz#3b2a53ba60d33159dd075596ce8267cfa7027063"
- integrity sha512-I7E/cHkIgoJzMNQdFF0YVqPlaTqrqKHrskuSTIqlEyxfB5Lf3WKCajSXVK2yHOfOFfSux/RxEdpMzw/eO4DIog==
- dependencies:
- long "^4.0.0"
- protobufjs "~6.11.2"
-
-create-require@^1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
- integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
-
-cross-fetch@^3.1.5:
- version "3.1.5"
- resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f"
- integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==
- dependencies:
- node-fetch "2.6.7"
-
-define-properties@^1.1.3:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1"
- integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==
- dependencies:
- has-property-descriptors "^1.0.0"
- object-keys "^1.1.1"
-
-diff@^4.0.1:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
- integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
-
-elliptic@^6.5.3:
- version "6.5.4"
- resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
- integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==
- dependencies:
- bn.js "^4.11.9"
- brorand "^1.1.0"
- hash.js "^1.0.0"
- hmac-drbg "^1.0.1"
- inherits "^2.0.4"
- minimalistic-assert "^1.0.1"
- minimalistic-crypto-utils "^1.0.1"
-
-follow-redirects@^1.14.0:
- version "1.15.2"
- resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13"
- integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==
-
-function-bind@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
- integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
-
-get-intrinsic@^1.1.1:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385"
- integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==
- dependencies:
- function-bind "^1.1.1"
- has "^1.0.3"
- has-symbols "^1.0.3"
-
-globalthis@^1.0.1:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf"
- integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==
- dependencies:
- define-properties "^1.1.3"
-
-has-property-descriptors@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861"
- integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==
- dependencies:
- get-intrinsic "^1.1.1"
-
-has-symbols@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
- integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
-
-has@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
- integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
- dependencies:
- function-bind "^1.1.1"
-
-hash.js@^1.0.0, hash.js@^1.0.3:
- version "1.1.7"
- resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"
- integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==
- dependencies:
- inherits "^2.0.3"
- minimalistic-assert "^1.0.1"
-
-hmac-drbg@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
- integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==
- dependencies:
- hash.js "^1.0.3"
- minimalistic-assert "^1.0.0"
- minimalistic-crypto-utils "^1.0.1"
-
-inherits@^2.0.3, inherits@^2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
- integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
-
-isomorphic-ws@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc"
- integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==
-
-libsodium-wrappers@^0.7.6:
- version "0.7.10"
- resolved "https://registry.yarnpkg.com/libsodium-wrappers/-/libsodium-wrappers-0.7.10.tgz#13ced44cacb0fc44d6ac9ce67d725956089ce733"
- integrity sha512-pO3F1Q9NPLB/MWIhehim42b/Fwb30JNScCNh8TcQ/kIc+qGLQch8ag8wb0keK3EP5kbGakk1H8Wwo7v+36rNQg==
- dependencies:
- libsodium "^0.7.0"
-
-libsodium@^0.7.0:
- version "0.7.10"
- resolved "https://registry.yarnpkg.com/libsodium/-/libsodium-0.7.10.tgz#c2429a7e4c0836f879d701fec2c8a208af024159"
- integrity sha512-eY+z7hDrDKxkAK+QKZVNv92A5KYkxfvIshtBJkmg5TSiCnYqZP3i9OO9whE79Pwgm4jGaoHgkM4ao/b9Cyu4zQ==
-
-long@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28"
- integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==
-
-long@^5.2.0:
- version "5.2.3"
- resolved "https://registry.yarnpkg.com/long/-/long-5.2.3.tgz#a3ba97f3877cf1d778eccbcb048525ebb77499e1"
- integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==
-
-make-error@^1.1.1:
- version "1.3.6"
- resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
- integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
-
-minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
- integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
-
-minimalistic-crypto-utils@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
- integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==
-
-node-fetch@2.6.7:
- version "2.6.7"
- resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
- integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
- dependencies:
- whatwg-url "^5.0.0"
-
-object-keys@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
- integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
-
-pako@^2.0.2:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86"
- integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==
-
-protobufjs@^6.8.8, protobufjs@~6.11.2, protobufjs@~6.11.3:
- version "6.11.3"
- resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.3.tgz#637a527205a35caa4f3e2a9a4a13ddffe0e7af74"
- integrity sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==
- dependencies:
- "@protobufjs/aspromise" "^1.1.2"
- "@protobufjs/base64" "^1.1.2"
- "@protobufjs/codegen" "^2.0.4"
- "@protobufjs/eventemitter" "^1.1.0"
- "@protobufjs/fetch" "^1.1.0"
- "@protobufjs/float" "^1.0.2"
- "@protobufjs/inquire" "^1.1.0"
- "@protobufjs/path" "^1.1.2"
- "@protobufjs/pool" "^1.1.0"
- "@protobufjs/utf8" "^1.1.0"
- "@types/long" "^4.0.1"
- "@types/node" ">=13.7.0"
- long "^4.0.0"
-
-readonly-date@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/readonly-date/-/readonly-date-1.0.0.tgz#5af785464d8c7d7c40b9d738cbde8c646f97dcd9"
- integrity sha512-tMKIV7hlk0h4mO3JTmmVuIlJVXjKk3Sep9Bf5OH0O+758ruuVkUy2J9SttDLm91IEX/WHlXPSpxMGjPj4beMIQ==
-
-symbol-observable@^2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-2.0.3.tgz#5b521d3d07a43c351055fa43b8355b62d33fd16a"
- integrity sha512-sQV7phh2WCYAn81oAkakC5qjq2Ml0g8ozqz03wOGnx9dDlG1de6yrF+0RAzSJD8fPUow3PTSMf2SAbOGxb93BA==
-
-tr46@~0.0.3:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
- integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==
-
-ts-node@^10.9.1:
- version "10.9.1"
- resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b"
- integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==
- dependencies:
- "@cspotcode/source-map-support" "^0.8.0"
- "@tsconfig/node10" "^1.0.7"
- "@tsconfig/node12" "^1.0.7"
- "@tsconfig/node14" "^1.0.0"
- "@tsconfig/node16" "^1.0.2"
- acorn "^8.4.1"
- acorn-walk "^8.1.1"
- arg "^4.1.0"
- create-require "^1.1.0"
- diff "^4.0.1"
- make-error "^1.1.1"
- v8-compile-cache-lib "^3.0.1"
- yn "3.1.1"
-
-v8-compile-cache-lib@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf"
- integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==
-
-webidl-conversions@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
- integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==
-
-whatwg-url@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
- integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==
- dependencies:
- tr46 "~0.0.3"
- webidl-conversions "^3.0.0"
-
-ws@^7:
- version "7.5.9"
- resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591"
- integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==
-
-xstream@^11.14.0:
- version "11.14.0"
- resolved "https://registry.yarnpkg.com/xstream/-/xstream-11.14.0.tgz#2c071d26b18310523b6877e86b4e54df068a9ae5"
- integrity sha512-1bLb+kKKtKPbgTK6i/BaoAn03g47PpFstlbe1BA+y3pNS/LfvcaghS5BFf9+EE1J+KwSQsEpfJvFN5GqFtiNmw==
- dependencies:
- globalthis "^1.0.1"
- symbol-observable "^2.0.3"
-
-yn@3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
- integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
diff --git a/img/nibijs.png b/img/nibijs.png
index b2c0d0b7b6eb70efbaf4e7b9cb4baff442f12572..59d860056b92ae17edfd306d63ebea9cc27390e8 100644
GIT binary patch
literal 184600
zcmV)?K!U%CP)
CK~#7F?7hvh
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