@algofi/js-sdk
Version:
The official Algofi JavaScript SDK
65 lines (64 loc) • 2.8 kB
TypeScript
import { Algodv2, Transaction } from "algosdk";
import AlgofiUser from "../../algofiUser";
import { StakingQuote } from "../../staking/v2/staking";
import GovernanceClient from "./governanceClient";
export default class VotingEscrow {
governanceClient: GovernanceClient;
algod: Algodv2;
appId: number;
totalLocked: number;
totalVebank: number;
assetId: number;
votingEscrowMaxTimeLockSeconds: number;
votingEscrowMinTimeLockSeconds: number;
/**
* The constructor for the voting escrow object.
*
* @param governanceClient - a governance client
*/
constructor(governanceClient: GovernanceClient);
/**
* Function which will update the data on the voting escrow object to match
* that of the global state of the voting escrow contract.
*/
loadState(): Promise<void>;
getLockQuote(user: AlgofiUser, lockAmount: number, lockEnd: number): [number, {
[key: number]: StakingQuote;
}];
getAirdropTxns(user: AlgofiUser): Promise<Transaction[]>;
getLockedAirdropTxns(user: AlgofiUser): Promise<Transaction[]>;
/**
* Constructs a series of transactions to update a target user's vebank.
*
* @param userCalling - user who is calling the udpate transaction
* @param userUpdating - user whose vebank is actually being updated
* @returns a series of transactions to update a target user's vebank.
*/
getUpdateVeBankDataTxns(userCalling: AlgofiUser, userUpdating: AlgofiUser): Promise<Transaction[]>;
/**
* Constructs a series of transactions that lock a user's BANK.
*
* @param user - user who is locking
* @param amount - amount they are locking
* @param durationSeconds - amount of time they are locking for
* @returns a series of transactions that lock a user's BANK.
*/
getLockTxns(user: AlgofiUser, amount: number, durationSeconds: number): Promise<Transaction[]>;
/**
* Constructs a series of transactions that extend a user's lock.
*
* @param user - user who is locking
* @param durationSeconds - amount of time they are extending for
* @returns a series of transactions that extend a user's lock.
*/
getExtendLockTxns(user: AlgofiUser, durationSeconds: number): Promise<Transaction[]>;
/**
* Constructs a series of transactions that increase a user's lock amount.
*
* @param user - user who is locking
* @param amount - amount they are increasing their lock for
* @returns a series of transactions that increase a user's lock amount.
*/
getIncreaseLockAmountTxns(user: AlgofiUser, amount: number): Promise<Transaction[]>;
getClaimTxns(user: AlgofiUser): Promise<Transaction[]>;
}