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; /** * 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; /** * 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; /** * 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; /** * 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; /** * 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; /** * 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; /** * 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; /** * 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; /** * 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; /** * 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; /** * 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; /** * 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; /** * 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; /** * 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; /** * 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; /** * 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; /** * 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: Uint8Array, selectionPK: Uint8Array, stateProofPK: Uint8Array, voteFirst: number, voteLast: number, voteKeyDilution: number): Promise; /** * 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; /** * Funtion to get user data from the protocol as well as totals * * @param {Algodv2} algodClient * @param {string} address * * @return {[dict, dict]} dictionaries containing the aggregated user protocol data */ export declare function getProtocolData(algodClient: Algodv2): Promise; /** * Funtion to get user data from the protocol as well as totals * * @param {Algodv2} algodClient * @param {string} address * * @return {[dict, dict]} dictionaries containing the aggregated user protocol data */ export declare function getUserAndProtocolData(algodClient: Algodv2, address: string): Promise; /** * Function to get the list of inner transactions for a given application transaction * * @param {Algodv2} algodClient * @param {string} txId * * @return {dict[]} innerTxnsList - list of inner transactions with their relevant information */ export declare function getInnerTransactionList(algodClient: Algodv2, txId: string): Promise<{}>;