3pi
v1.0.3
Published
The NPM package to interact with 3PI contracts.
Downloads
118
Maintainers
Readme
SDK
The NPM package to interact with 3PI contracts.
Usage
Install the package using the following:
npm i 3pi
Importing the package can be done through the following:
import { KeyManager } from '3pi';
The KeyManager
class includes all the functionality of 3PI, including functions like isKeyActive()
, getExpiry()
, extendKey()
, etc.
It also exposes attributes like contractAddress
, providers
and contractToken
for ease of use.
In order to initialize KeyManager
, you will need to provide it with the contract address of your 3PI Key Manager contract on-chain, as well as at least 1 RPC URL to use when querying data. The more RPCs you add, the more robust the queries will be, since extra RPCs are used when any call fails.
You can initialize KeyManager
as follows:
const keyManager = new KeyManager('<YOUR_CONTRACT_ADDRESS_HERE>', ['<YOUR_RPC_URL_HERE>']);
Functions Available
Read Only
isTierActive(tierID)
getTierPrice(tierID)
getNumTiers()
getNumKeys()
isKeyActive(hash)
keyExists(hash)
getKeyHash(id)
getUserKeys(address)
getRemainingBalance(hash)
getUsedBalance(hash)
getKeyInfo(hash)
findUnrealizedAccounts()
getRealizedProfit()
getUnrealizedProfit()
Key Management
approve(amountInWei, signer)
activateKey(hash, duration, tierID, signer)
extendKey(hash, duration, signer)
deactivateKey(hash, signer)
Admin Controls
addTier(price, signer)
archiveTier(tierId, signer)
realizeProfit(hash, signer)
withdraw(signer)
Other
getPublicHash(apiKey)
generateNewKey()
getWalletBalance(wallet)
getWalletAllowance(wallet)
Types
The SDK is written entirely in TypeScript, and any types used within the SDK are located in the src/types.ts
file.
If needed, these can be imported from 3pi/dist/types
as follows:
import type { Address, ABIEntry } from '3pi/dist/types';