@algofi/v0
Version:
The official JavaScript SDK for Algofi
252 lines (251 loc) • 12.2 kB
TypeScript
import { Algodv2, Transaction } from "algosdk";
import { getParams, waitForConfirmation } from "./submissionUtils";
export { getParams, waitForConfirmation };
import { getStorageAddress, getGlobalManagerInfo, getUserManagerData, getAccountOptInData } from "./stateUtils";
export { getUserManagerData, getGlobalManagerInfo, getStorageAddress };
import { managerStrings, marketStrings } from "./contractStrings";
export { managerStrings, marketStrings };
import { orderedAssets, orderedAssetsAndPlaceholders, protocolManagerAppId, assetDictionary, orderedOracleAppIds, orderedMarketAppIds, orderedSupportedMarketAppIds, SECONDS_PER_YEAR, PARAMETER_SCALE_FACTOR, SCALE_FACTOR, foreignAppIds } from "./config";
import { Base64Encoder } from "./encoder";
export { getAccountOptInData, orderedAssets, orderedAssetsAndPlaceholders, protocolManagerAppId, assetDictionary, orderedOracleAppIds, orderedMarketAppIds, orderedSupportedMarketAppIds, SECONDS_PER_YEAR, PARAMETER_SCALE_FACTOR, SCALE_FACTOR, Base64Encoder, foreignAppIds };
/**
* Function to create transactions to opt address into our market contracts
*
* @param {Algodv2} algoClient
* @param {string} address
*
* @return {Transaction[]} transaction group to opt into algofi markets contracts
*/
export declare function optInMarkets(algodClient: Algodv2, address: string): Promise<Transaction[]>;
/**
* Function to get opt in transactions for algofi supported assets
*
* @param {Algodv2} algoClient
* @param {string} stakeAsset
* @param {string} address
* @param {string} storageAddress
* @param {number} storageAddressFundingAmount
*
* @return {Transaction[]} create transactions to opt in to Staker and rekey storage address to manager contract
*/
export declare function optInStaker(algodClient: Algodv2, stakeAsset: string, address: string, storageAddress: string, storageAddressFundingAmount: number): Promise<any[]>;
/**
* Function to get opt in transactions for algofi supported assets
*
* @param {Algodv2} algoClient
* @param {string} address
*
* @return {Transaction[]} get opt in transactions for non opted in algofi assets
*/
export declare function optInUnderlyingAssets(algodClient: Algodv2, address: string): Promise<Transaction[][] | Transaction[]>;
/**
* Function to get opt in transactions for algofi supported assets
*
* @param {Algodv2} algoClient
* @param {string} address
* @param {string} storageAddress
* @param {number} storageAddressFundingAmount
*
* @return {Transaction[]} create transactions to opt in to manager and rekey storage address to manager contract
*/
export declare function optInManager(algodClient: Algodv2, address: string, storageAddress: string, storageAddressFundingAmount: number): Promise<Transaction[]>;
/**
* Function to create transaction array for algofi mint operation
*
* @param {AlgodV2} algodClient
* @param {string} address
* @param {string} storageAddress
* @param {int} amount
* @param {string} assetName
*
* @return {Transaction[]} array of transactions to be sent as group transaction to perform mint operation
*/
export declare function mint(algodClient: Algodv2, address: string, storageAddress: string, amount: number, assetName: string): Promise<Transaction[]>;
/**
* Function to create transaction array for algofi mint_to_collateral operation
*
* @param {AlgodV2} algodClient
* @param {string} address
* @param {string} storageAddress
* @param {int} amount
* @param {string} assetName
*
* @return {Transaction[]} array of transactions to be sent as group transaction to perform mint_to_collateral operation
*/
export declare function mintToCollateral(algodClient: Algodv2, address: string, storageAddress: string, amount: number, assetName: string): Promise<Transaction[]>;
/**
* Function to create transaction array for algofi burn operation
*
* @param {AlgodV2} algodClient
* @param {string} address
* @param {string} storageAddress
* @param {int} amount
* @param {string} assetName
*
* @return {Transaction[]} array of transactions to be sent as group transaction to perform burn operation
*/
export declare function burn(algodClient: Algodv2, address: string, storageAddress: string, amount: number, assetName: string): Promise<Transaction[]>;
/**
* Function to create transaction array for algofi add_collateral operation
*
* @param {AlgodV2} algodClient
* @param {string} address
* @param {string} storageAddress
* @param {int} amount
* @param {string} assetName
*
* @return {Transaction[]} array of transactions to be sent as group transaction to perform add_collateral operation
*/
export declare function addCollateral(algodClient: Algodv2, address: string, storageAddress: string, amount: number, assetName: string): Promise<Transaction[]>;
/**
* Function to create transaction array for algofi remove_collateral operation
*
* @param {AlgodV2} algodClient
* @param {string} address
* @param {string} storageAddress
* @param {int} amount
* @param {string} assetName
*
* @return {Transaction[]} array of transactions to be sent as group transaction to perform remove_collateral operation
*/
export declare function removeCollateral(algodClient: Algodv2, address: string, storageAddress: string, amount: number, assetName: string): Promise<Transaction[]>;
/**
* Function to create transaction array for algofi remove_collateral_underlying operation
*
* @param {AlgodV2} algodClient
* @param {string} address
* @param {string} storageAddress
* @param {int} amount
* @param {string} assetName
*
* @return {Transaction[]} array of transactions to be sent as group transaction to perform remove_collateral_underlying operation
*/
export declare function removeCollateralUnderlying(algodClient: Algodv2, address: string, storageAddress: string, amount: number, assetName: string): Promise<Transaction[]>;
/**
* Function to create transaction array for algofi borrow operation
*
* @param {AlgodV2} algodClient
* @param {string} address
* @param {string} storageAddress
* @param {int} amount
* @param {string} assetName
*
* @return {Transaction[]} array of transactions to be sent as group transaction to perform borrow operation
*/
export declare function borrow(algodClient: Algodv2, address: string, storageAddress: string, amount: number, assetName: string): Promise<Transaction[]>;
/**
* Function to create transaction array for algofi repay_borrow operation
*
* @param {AlgodV2} algodClient
* @param {string} address
* @param {string} storageAddress
* @param {int} amount
* @param {string} assetName
*
* @return {Transaction[]} array of transactions to be sent as group transaction to perform repay_borrow operation
*/
export declare function repayBorrow(algodClient: Algodv2, address: string, storageAddress: string, amount: number, assetName: string): Promise<Transaction[]>;
/**
* Function to create transaction array for algofi repay_borrow operation
*
* @param {AlgodV2} algodClient
* @param {string} address
* @param {string} storageAddress
*
* @return {Transaction[]} array of transactions to be sent as group transaction to perform repay_borrow operation
*/
export declare function claimRewards(algodClient: Algodv2, asset: string, address: string, storageAddress: string): Promise<Transaction[]>;
/**
* Function to create transaction array for algofi vault mint_to_collateral operation
*
* @param {AlgodV2} algodClient
* @param {string} address
* @param {string} storageAddress
* @param {int} amount
* @param {string} assetName
*
* @return {Transaction[]} array of transactions to be sent as group transaction to perform mint_to_collateral operation
*/
export declare function sendToVault(algodClient: Algodv2, address: string, storageAddress: string, amount: number, assetName: string): Promise<Transaction[]>;
/**
* Function to create transaction array for algofi remove from vault operation
*
* @param {AlgodV2} algodClient
* @param {string} address
* @param {string} storageAddress
* @param {int} amount
* @param {string} assetName
*
* @return {Transaction[]} array of transactions to be sent as group transaction to perform remove from vault operation
*/
export declare function removeFromVault(algodClient: Algodv2, address: string, storageAddress: string, amount: number, assetName: string): Promise<Transaction[]>;
/**
* Function to create transaction array for algofi sync vault operation
*
* @param {AlgodV2} algodClient
* @param {string} address
* @param {string} storageAddress
* @param {int} amount
* @param {string} assetName
*
* @return {Transaction[]} array of transactions to be sent as group transaction to perform sync vault operation
*/
export declare function syncVault(algodClient: Algodv2, address: string, storageAddress: string, assetName: string): Promise<Transaction[]>;
/**
* Function to create transaction array for algofi sending governance txn operation
*
* @param {AlgodV2} algodClient
* @param {string} address
* @param {string} storageAddress
*
* @return {Transaction[]} array of transactions to be sent as group transaction to perform send_governance_txn operation
*/
export declare function sendGovTxn(algodClient: Algodv2, address: string, storageAddress: string, targetAddress: string, note: string): Promise<Transaction[]>;
/**
* Function to create transaction array for algofi sending keyreg online txn operation
*
* @param {AlgodV2} algodClient
* @param {string} address
* @param {string} storageAddress
*
* @return {Transaction[]} array of transactions to be sent as group transaction to perform send_keyreg_online_txn operation
*/
export declare function sendKeyRegTxn(algodClient: Algodv2, address: string, storageAddress: string, votePK: string, selectionPK: string, stateProofPK: string, voteFirst: number, voteLast: number, voteKeyDilution: number): Promise<Transaction[]>;
/**
* Function to create transaction array for algofi sending keyreg online txn operation
*
* @param {AlgodV2} algodClient
* @param {string} address
* @param {string} storageAddress
*
* @return {Transaction[]} array of transactions to be sent as group transaction to perform send_keyreg_offline_txn operation
*/
export declare function sendKeyRegOfflineTxn(algodClient: Algodv2, address: string, storageAddress: string): Promise<Transaction[]>;
/**
* Funtion to get user data from the protocol as well as totals
*
* @param {Algodv2} algodClient
* @param {string} address
*
* @return {[dict<string,n>, dict<string,n>]} dictionaries containing the aggregated user protocol data
*/
export declare function getProtocolData(algodClient: Algodv2): Promise<any>;
/**
* Funtion to get user data from the protocol as well as totals
*
* @param {Algodv2} algodClient
* @param {string} address
*
* @return {[dict<string,n>, dict<string,n>]} dictionaries containing the aggregated user protocol data
*/
export declare function getUserAndProtocolData(algodClient: Algodv2, address: string): Promise<any>;
/**
* Function to get the list of inner transactions for a given application transaction
*
* @param {Algodv2} algodClient
* @param {string} txId
*
* @return {dict<string,n>[]} innerTxnsList - list of inner transactions with their relevant information
*/
export declare function getInnerTransactionList(algodClient: Algodv2, txId: string): Promise<{}>;
export declare function getCurrentSuperStakingAPR(depegValue: number): Promise<number>;