Skip to content

Commit

Permalink
Simplify options to connect to near network (#8)
Browse files Browse the repository at this point in the history
  • Loading branch information
shelegdmitriy authored Apr 21, 2022
1 parent 43cf25e commit b666fe3
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 19 deletions.
10 changes: 5 additions & 5 deletions src/lib/lockup.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import BN from "bn.js";
import { ConnectConfig } from "near-api-js/lib/connect";
import { CodeResult } from "near-api-js/lib/providers/provider";
import { BinaryReader } from "near-api-js/lib/utils/serialize";

import {
AccountLockup,
BlockReference,
ConnectOptions,
LockupState,
ViewAccount,
ViewAccountQuery,
Expand All @@ -32,7 +32,7 @@ import {
*/
export const viewLockupState = async (
contractId: string,
nearConfig?: ConnectConfig,
nearConfig?: ConnectOptions,
blockReference: BlockReference = { finality: "final" }
): Promise<LockupState> => {
const near = await nearApi(nearConfig);
Expand Down Expand Up @@ -95,7 +95,7 @@ export const viewLockupState = async (
*/
export const getAccountBalance = async (
contractId: string,
nearConfig?: ConnectConfig,
nearConfig?: ConnectOptions,
blockReference: BlockReference = { finality: "final" }
): Promise<string | null> => {
const near = await nearApi(nearConfig);
Expand Down Expand Up @@ -127,7 +127,7 @@ export const getAccountBalance = async (
*/
export const viewAccountBalance = async (
accountId: string,
nearConfig?: ConnectConfig,
nearConfig?: ConnectOptions,
blockReference: BlockReference = { finality: "final" }
): Promise<ViewAccount | null> => {
const near = await nearApi(nearConfig);
Expand Down Expand Up @@ -159,7 +159,7 @@ export const viewAccountBalance = async (
*/
export const viewLockupAccount = async (
lockupAccountId: string,
nearConfig?: ConnectConfig,
nearConfig?: ConnectOptions,
blockReference?: BlockReference
): Promise<AccountLockup | null> => {
try {
Expand Down
14 changes: 10 additions & 4 deletions src/lib/near.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@ import * as near from "near-api-js";
import { ConnectConfig } from "near-api-js/lib/connect";
import { InMemoryKeyStore } from "near-api-js/lib/key_stores";

export const connectOptions: ConnectConfig = {
import { ConnectOptions } from "../types/types";

const connectOptions: ConnectConfig = {
nodeUrl: "https://rpc.mainnet.near.org",
networkId: "mainnet",
keyStore: new InMemoryKeyStore(),
Expand All @@ -11,10 +13,14 @@ export const connectOptions: ConnectConfig = {

/**
* Connect to NEAR rpc.
* @param connectOptions connection options {@link ConnectConfig}.
* @param config connection options {@link ConnectConfig}.
* @returns connection to Near network.
*/
export const nearApi = async (config: ConnectConfig = connectOptions) => {
const options = config ?? connectOptions;
export const nearApi = async (config?: ConnectOptions) => {
const options = {
...connectOptions,
...config
};

return await near.connect(options)
};
11 changes: 1 addition & 10 deletions src/tests/lockup.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
import test from "ava";

import { getAccountBalance, viewLockupAccount, viewLockupState } from "../lib/lockup";
import { connectOptions } from "../lib/near";

import { lockupAccountSnapshots } from "./snapshots";

Expand All @@ -24,19 +23,11 @@ test("view all info about lockup account on 'finality' block", async (t) => {
test("view all info about account on particular block using arhival credencials", async (t) => {
const items = lockupAccountSnapshots.length;
t.plan(items);

const arhivalConfig = {
nodeUrl: "https://archival-rpc.mainnet.near.org",
networkId: "mainnet",
keyStore: connectOptions.keyStore,
headers: connectOptions.headers
};

// eslint-disable-next-line functional/no-let
for (let i = 0; i < items; i++) {
const res = await viewLockupAccount(
lockupAccountSnapshots[i].lockupAccountId,
arhivalConfig,
{ nodeUrl: "https://archival-rpc.mainnet.near.org" },
{ block_id: lockupAccountSnapshots[i].calculatedAtBlockHeight }
);
t.deepEqual(res, lockupAccountSnapshots[i]);
Expand Down
10 changes: 10 additions & 0 deletions src/types/types.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import BN from "bn.js";
import { ConnectConfig } from "near-api-js/lib/connect";
import { KeyStore } from "near-api-js/lib/key_stores/keystore";
import { QueryResponseKind } from "near-api-js/lib/providers/provider";

export type LockupState = {
Expand Down Expand Up @@ -73,3 +75,11 @@ export type ViewAccount = {
readonly codeHash: string;
readonly blockHeight: number;
};

export type ConnectOptions = Omit<ConnectConfig, "networkId" | "keyStore" | "headers"> & {
readonly networkId?: string;
readonly keyStore?: KeyStore;
readonly headers?: {
readonly [key: string]: string | number;
}
};

0 comments on commit b666fe3

Please sign in to comment.