🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Book a DemoInstallSign in
Socket

3pi

Package Overview
Dependencies
Maintainers
1
Versions
26
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

3pi

The NPM package to interact with 3PI contracts.

1.0.3
latest
Source
npm
Version published
Weekly downloads
15
-67.39%
Maintainers
1
Weekly downloads
 
Created
Source

SDK

The NPM package to interact with 3PI contracts.

CodeQL Version Downloads

NodeJS TypeScript

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';

Keywords

defi

FAQs

Package last updated on 26 Nov 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts