fortress-js
Version:
A JavaScript SDK for Binance Smart Chain and the Fortress Protocol.
421 lines (420 loc) • 14.7 kB
TypeScript
/**
* @file COMP
* @desc These methods facilitate interactions with the COMP token smart
* contract.
*/
import { CallOptions, TrxResponse, Signature, Provider } from './types';
import { BigNumber } from '@ethersproject/bignumber/lib/bignumber';
/**
* Get the balance of FORTRESS tokens held by an address.
*
* @param {string} _address The address in which to find the FORTRESS balance.
* @param {Provider | string} [_provider] An Ethers.js provider or valid network
* name string.
*
* @returns {string} Returns a string of the numeric balance of FORTRESS. The value
* is scaled up by 18 decimal places.
*
* @example
*
* ```
* (async function () {
* const bal = await Fortress.fortress.getFortressBalance('0x2775b1c75658Be0F640272CCb8c72ac986009e38');
* console.log('Balance', bal);
* })().catch(console.error);
* ```
*/
export declare function getFortressBalance(_address: string, _provider?: Provider | string): Promise<string>;
/**
* Get the amount of FORTRESS tokens accrued but not yet claimed by an address.
*
* @param {string} _address The address in which to find the FORTRESS accrued.
* @param {Provider | string} [_provider] An Ethers.js provider or valid network
* name string.
*
* @returns {string} Returns a string of the numeric accruement of FORTRESS. The
* value is scaled up by 18 decimal places.
*
* @example
*
* ```
* (async function () {
* const acc = await Fortress.fortress.getFortressAccrued('0x4Ddc2D193948926D02f9B1fE9e1daa0718270ED5');
* console.log('Accrued', acc);
* })().catch(console.error);
* ```
*/
export declare function getFortressAccrued(_address: string, _provider?: Provider | string): Promise<string>;
/**
* Create a transaction to claim accrued FORTRESS tokens for the user.
*
* @param {CallOptions} [options] Options to set for a transaction and Ethers.js
* method overrides.
*
* @returns {object} Returns an Ethers.js transaction object of the vote
* transaction.
*
* @example
*
* ```
* const fortress = new Fortress(window.ethereum);
*
* (async function() {
*
* console.log('Claiming Fortress...');
* const trx = await fortress.claimFortress();
* console.log('Ethers.js transaction object', trx);
*
* })().catch(console.error);
* ```
*/
export declare function claimFortress(options?: CallOptions): Promise<TrxResponse>;
/**
* Create a transaction to delegate Fortress Governance voting rights to an
* address.
*
* @param {string} _address The address in which to delegate voting rights to.
* @param {CallOptions} [options] Options to set for `eth_call`, optional ABI
* (as JSON object), and Ethers.js method overrides. The ABI can be a string
* of the single intended method, an array of many methods, or a JSON object
* of the ABI generated by a Solidity compiler.
*
* @returns {object} Returns an Ethers.js transaction object of the vote
* transaction.
*
* @example
*
* ```
* const fortress = new Fortress(window.ethereum);
*
* (async function() {
* const delegateTx = await fortress.delegate('0xa0df350d2637096571F7A701CBc1C5fdE30dF76A');
* console.log('Ethers.js transaction object', delegateTx);
* })().catch(console.error);
* ```
*/
export declare function delegate(_address: string, options?: CallOptions): Promise<TrxResponse>;
/**
* Delegate voting rights in Fortress Governance using an EIP-712 signature.
*
* @param {string} _address The address to delegate the user's voting rights to.
* @param {number} nonce The contract state required to match the signature.
* This can be retrieved from the FORTRESS contract's public nonces mapping.
* @param {number} expiry The time at which to expire the signature. A block
* timestamp as seconds since the unix epoch.
* @param {object} signature An object that contains the v, r, and, s values of
* an EIP-712 signature.
* @param {CallOptions} [options] Options to set for `eth_call`, optional ABI
* (as JSON object), and Ethers.js method overrides. The ABI can be a string
* of the single intended method, an array of many methods, or a JSON object
* of the ABI generated by a Solidity compiler.
*
* @returns {object} Returns an Ethers.js transaction object of the vote
* transaction.
*
* @example
*
* ```
* const fortress = new Fortress(window.ethereum);
*
* (async function() {
* const delegateTx = await fortress.delegateBySig(
* '0xa0df350d2637096571F7A701CBc1C5fdE30dF76A',
* 42,
* 9999999999,
* {
* v: '0x1b',
* r: '0x130dbca2fafa07424c033b4479687cc1deeb65f08809e3ab397988cc4c6f2e78',
* s: '0x1debeb8250262f23906b1177161f0c7c9aa3641e8bff5b6f5c88a6bb78d5d8cd'
* }
* );
* console.log('Ethers.js transaction object', delegateTx);
* })().catch(console.error);
* ```
*/
export declare function delegateBySig(_address: string, nonce: number, expiry: number, signature?: Signature, options?: CallOptions): Promise<TrxResponse>;
/**
* Create a delegate signature for Fortress Governance using EIP-712. The
* signature can be created without burning gas. Anyone can post it to the
* blockchain using the `delegateBySig` method, which does have gas costs.
*
* @param {string} delegatee The address to delegate the user's voting rights
* to.
* @param {number} [expiry] The time at which to expire the signature. A block
* timestamp as seconds since the unix epoch. Defaults to `10e9`.
*
* @returns {object} Returns an object that contains the `v`, `r`, and `s`
* components of an Ethereum signature as hexadecimal strings.
*
* @example
*
* ```
* const fortress = new Fortress(window.ethereum);
*
* (async () => {
*
* const delegateSignature = await fortress.createDelegateSignature('0xa0df350d2637096571F7A701CBc1C5fdE30dF76A');
* console.log('delegateSignature', delegateSignature);
*
* })().catch(console.error);
* ```
*/
export declare function createDelegateSignature(delegatee: string, expiry?: number): Promise<Signature>;
/**
* Get the mintable FAI amount of address.
*
* @param {string} _address The address in which to get mintable FAI amount.
* @param {CallOptions} [options] Options to set for `eth_call`, optional ABI
* (as JSON object), and Ethers.js method overrides. The ABI can be a string
* of the single intended method, an array of many methods, or a JSON object
* of the ABI generated by a Solidity compiler.
*
* @returns {string} Returns a string of the numeric amount of mintable FAI. The
* value is scaled up by 18 decimal places.
*
* @example
*
* ```
* const fortress = new Fortress(window.ethereum);
*
* (async () => {
*
* const amount = await fortress.getMintableFAI('0x4Ddc2D193948926D02f9B1fE9e1daa0718270ED5');
* console.log('MintableFAI amount', amount);
*
* })().catch(console.error);
* ```
*/
export declare function getMintableFAI(_address: string, options?: CallOptions): Promise<string>;
/**
* Get the FAI mint rate.
*
* @param {CallOptions} [options] Options to set for `eth_call`, optional ABI
* (as JSON object), and Ethers.js method overrides. The ABI can be a string
* of the single intended method, an array of many methods, or a JSON object
* of the ABI generated by a Solidity compiler.
*
* @returns {string} Returns a string of the numeric FAI mint rate.
*
* @example
*
* ```
* const fortress = new Fortress(window.ethereum);
*
* (async () => {
*
* const rate = await fortress.getFAIMintRate();
* console.log('FAI mint rate', rate);
*
* })().catch(console.error);
* ```
*/
export declare function getFAIMintRate(options?: CallOptions): Promise<string>;
/**
* Get the mintFAIGuardianPaused.
*
* @param {CallOptions} [options] Options to set for `eth_call`, optional ABI
* (as JSON object), and Ethers.js method overrides. The ABI can be a string
* of the single intended method, an array of many methods, or a JSON object
* of the ABI generated by a Solidity compiler.
*
* @returns {boolean} Returns a string of the boolean mintFAIGuardianPaused.
*
* @example
*
* ```
* const fortress = new Fortress(window.ethereum);
*
* (async () => {
*
* const _mintFAIGuardianPaused = await fortress.mintFAIGuardianPaused();
* console.log('mintFAIGuardianPaused', _mintFAIGuardianPaused);
*
* })().catch(console.error);
* ```
*/
export declare function mintFAIGuardianPaused(options?: CallOptions): Promise<string>;
/**
* Get the repayFAIGuardianPaused.
*
* @param {CallOptions} [options] Options to set for `eth_call`, optional ABI
* (as JSON object), and Ethers.js method overrides. The ABI can be a string
* of the single intended method, an array of many methods, or a JSON object
* of the ABI generated by a Solidity compiler.
*
* @returns {boolean} Returns a string of the boolean repayFAIGuardianPaused.
*
* @example
*
* ```
* const fortress = new Fortress(window.ethereum);
*
* (async () => {
*
* const _repayFAIGuardianPaused = await fortress.repayFAIGuardianPaused();
* console.log('repayFAIGuardianPaused', _repayFAIGuardianPaused);
*
* })().catch(console.error);
* ```
*/
export declare function repayFAIGuardianPaused(options?: CallOptions): Promise<string>;
/**
* Get the minted FAI amount of the address.
*
* @param {string} _address The address in which to get the minted FAI amount.
* @param {CallOptions} [options] Options to set for `eth_call`, optional ABI
* (as JSON object), and Ethers.js method overrides. The ABI can be a string
* of the single intended method, an array of many methods, or a JSON object
* of the ABI generated by a Solidity compiler.
*
* @returns {string} Returns a string of the numeric amount of minted FAI. The
* value is scaled up by 18 decimal places.
*
* @example
*
* ```
* const fortress = new Fortress(window.ethereum);
*
* (async () => {
*
* const amount = await fortress.mintedFAIOf('0x4Ddc2D193948926D02f9B1fE9e1daa0718270ED5');
* console.log('Minted FAI amount', amount);
*
* })().catch(console.error);
* ```
*/
export declare function mintedFAIOf(_address: string, options?: CallOptions): Promise<string>;
/**
* Get the minted FAI amount of the address.
*
* @param {string} _address The address in which to get the minted FAI amount.
* @param {CallOptions} [options] Options to set for `eth_call`, optional ABI
* (as JSON object), and Ethers.js method overrides. The ABI can be a string
* of the single intended method, an array of many methods, or a JSON object
* of the ABI generated by a Solidity compiler.
*
* @returns {string} Returns a string of the numeric amount of minted FAI. The
* value is scaled up by 18 decimal places.
*
* @example
*
* ```
* const fortress = new Fortress(window.ethereum);
*
* (async () => {
*
* const amount = await fortress.mintedFAIs('0x4Ddc2D193948926D02f9B1fE9e1daa0718270ED5');
* console.log('Minted FAI amount', amount);
*
* })().catch(console.error);
* ```
*/
export declare function mintedFAIs(_address: string, options?: CallOptions): Promise<string>;
/**
* Get the faiController.
*
* @param {CallOptions} [options] Options to set for `eth_call`, optional ABI
* (as JSON object), and Ethers.js method overrides. The ABI can be a string
* of the single intended method, an array of many methods, or a JSON object
* of the ABI generated by a Solidity compiler.
*
* @returns {string} Returns a string of the faiController address.
*
* @example
*
* ```
* const fortress = new Fortress(window.ethereum);
*
* (async () => {
*
* const faiControllerAddress = await fortress.faiController();
* console.log('faiControllerAddress', faiControllerAddress);
*
* })().catch(console.error);
* ```
*/
export declare function faiController(options?: CallOptions): Promise<string>;
/**
* Get the faiMintRate.
*
* @param {CallOptions} [options] Options to set for `eth_call`, optional ABI
* (as JSON object), and Ethers.js method overrides. The ABI can be a string
* of the single intended method, an array of many methods, or a JSON object
* of the ABI generated by a Solidity compiler.
*
* @returns {string} Returns a string of the numeric faiMintRate.
*
* @example
*
* ```
* const fortress = new Fortress(window.ethereum);
*
* (async () => {
*
* const faiMintRate = await fortress.faiMintRate();
* console.log('faiMintRate', faiMintRate);
*
* })().catch(console.error);
* ```
*/
export declare function faiMintRate(options?: CallOptions): Promise<string>;
/**
* Mint FAI in the Fortress Protocol.
*
* @param {number | string | BigNumber} mintFAIAmount A string, number, or BigNumber
* object of the amount of an asset to mintFAI. Use the `mantissa` boolean in
* the `options` parameter to indicate if this value is scaled up (so there
* are no decimals) or in its natural scale.
* @param {CallOptions} [options] Call options and Ethers.js overrides for the
* transaction.
*
* @returns {object} Returns an Ethers.js transaction object of the mintFAI
* transaction.
*
* @example
*
* ```
* const fortress = new Fortress(window.ethereum);
*
* // const trxOptions = { gasLimit: 250000, mantissa: false };
*
* (async function() {
*
* console.log('Minting FAI in the Fortress Protocol...');
* const trx = await fortress.mintFAI(1);
* console.log('Ethers.js transaction object', trx);
*
* })().catch(console.error);
* ```
*/
export declare function mintFAI(mintFAIAmount: string | number | BigNumber, options?: CallOptions): Promise<TrxResponse>;
/**
* Repay FAI in the Fortress Protocol.
*
* @param {number | string | BigNumber} repayFAIAmount A string, number, or BigNumber
* object of the amount of an asset to repay. Use the `mantissa` boolean in
* the `options` parameter to indicate if this value is scaled up (so there
* are no decimals) or in its natural scale.
* @param {CallOptions} [options] Call options and Ethers.js overrides for the
* transaction.
*
* @returns {object} Returns an Ethers.js transaction object of the repayFAI
* transaction.
*
* @example
*
* ```
* const fortress = new Fortress(window.ethereum);
*
* // const trxOptions = { gasLimit: 250000, mantissa: false };
*
* (async function() {
*
* console.log('Repaying FAI in the Fortress Protocol...');
* const trx = await fortress.repayFAI(1);
* console.log('Ethers.js transaction object', trx);
*
* })().catch(console.error);
* ```
*/
export declare function repayFAI(repayFAIAmount: string | number | BigNumber, options?: CallOptions): Promise<TrxResponse>;