@tracer-protocol/pools-js
Version:
Javascript library for interacting with Tracer's Perpetual Pools
74 lines (73 loc) • 2.58 kB
TypeScript
import { PoolStateHelper as PoolStateHelperTypeChain } from "@tracer-protocol/pool-state-helper/types";
import BigNumber from "bignumber.js";
import { providers as MCProvider } from '@0xsequence/multicall';
import { ethers } from "ethers";
import { IContract, TotalPoolCommitmentsBN } from "../types";
/**
* Pool State Helper class constructor inputs
*/
export interface IPoolStateHelper extends IContract, _PoolStateHelper {
}
/**
* PoolStateHelper constructor props
*/
export interface _PoolStateHelper {
address: string;
poolAddress: string;
committerAddress: string;
}
declare type ExpectedPoolState = {
longSupply: BigNumber;
longBalance: BigNumber;
pendingLongTokenBurn: BigNumber;
shortSupply: BigNumber;
shortBalance: BigNumber;
pendingShortTokenBurn: BigNumber;
oraclePrice: BigNumber;
};
/**
* PoolStateHelper class for interacting with on chain PoolStateHelper contracts
* The constructor is private so must be instantiated with {@linkcode PoolStateHelper.Create}
*/
export default class PoolStateHelper {
_contract?: PoolStateHelperTypeChain;
address: string;
poolAddress: string;
committerAddress: string;
fullCommitPeriod: number;
provider: ethers.providers.Provider | ethers.Signer | undefined;
multicallProvider: MCProvider.MulticallProvider | ethers.Signer | undefined;
/**
* @private
*/
private constructor();
/**
* Replacement constructor pattern to support async initialisations
* @param tokenINfo {@link IPoolStateHelper | IPoolStateHelper interface props}
* @returns a Promise containing an initialised PoolStateHelper class ready to be used
*/
static Create: (config: IPoolStateHelper) => Promise<PoolStateHelper>;
/**
* Creates an empty PoolStateHelper that can be used as a default
* @returns default constructed poolStateHelper
*/
static CreateDefault: () => PoolStateHelper;
/**
* Private initialisation function called in {@link PoolStateHelper.Create}
* @private
* @param config {@link IPoolStateHelper | IPoolStateHelper interface props}
*/
private init;
/**
* Replaces the provider and connects the contract instance
* @param provider The new provider to connect to
*/
connect: (provider: ethers.providers.Provider | ethers.Signer) => void;
getExpectedPoolState: (args: {
periods: number;
}) => Promise<ExpectedPoolState>;
getCommitQueue: (args: {
periods: number;
}) => Promise<TotalPoolCommitmentsBN[]>;
}
export {};