fortress-js
Version:
A JavaScript SDK for Binance Smart Chain and the Fortress Protocol.
92 lines • 3.94 kB
JavaScript
;
/**
* @file Fortress
* @desc This file defines the constructor of the `Fortress` class.
* @hidden
*/
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var ethers_1 = require("ethers");
var eth = require("./eth");
var util = require("./util");
var comptroller = require("./comptroller");
var fToken = require("./fToken");
var priceFeed = require("./priceFeed");
var comp = require("./comp");
var gov = require("./gov");
var api = require("./api");
var constants_1 = require("./constants");
// Turn off Ethers.js warnings
ethers_1.ethers.utils.Logger.setLogLevel(ethers_1.ethers.utils.Logger.levels.ERROR);
/**
* Creates an instance of the Fortress.js SDK.
*
* @param {Provider | string} [provider] Optional Ethereum network provider.
* Defaults to Ethers.js fallback mainnet provider.
* @param {object} [options] Optional provider options.
*
* @example
* ```
* var fortress = new Fortress(window.ethereum); // web browser
*
* var fortress = new Fortress('http://127.0.0.1:8545'); // HTTP provider
*
* var fortress = new Fortress(); // Uses Ethers.js fallback mainnet (for testing only)
*
* var fortress = new Fortress('testnet'); // Uses Ethers.js fallback (for testing only)
*
* // Init with private key (server side)
* var fortress = new Fortress('https://mainnet.infura.io/v3/_your_project_id_', {
* privateKey: '0x_your_private_key_', // preferably with environment variable
* });
*
* // Init with HD mnemonic (server side)
* var fortress = new Fortress('mainnet' {
* mnemonic: 'clutch captain shoe...', // preferably with environment variable
* });
* ```
*
* @returns {object} Returns an instance of the Fortress.js SDK.
*/
var Fortress = function (provider, options) {
if (provider === void 0) { provider = 'mainnet'; }
if (options === void 0) { options = {}; }
var originalProvider = provider;
options.provider = provider || options.provider;
provider = eth._createProvider(options);
// eslint-disable-next-line @typescript-eslint/no-explicit-any
var instance = __assign(__assign(__assign(__assign(__assign({ _originalProvider: originalProvider, _provider: provider }, comptroller), fToken), priceFeed), gov), { claimFortress: comp.claimFortress, delegate: comp.delegate, delegateBySig: comp.delegateBySig, createDelegateSignature: comp.createDelegateSignature, getMintableFAI: comp.getMintableFAI, getFAIMintRate: comp.getFAIMintRate, mintFAIGuardianPaused: comp.mintFAIGuardianPaused, repayFAIGuardianPaused: comp.repayFAIGuardianPaused, mintedFAIOf: comp.mintedFAIOf, mintedFAIs: comp.mintedFAIs, faiController: comp.faiController, faiMintRate: comp.faiMintRate, mintFAI: comp.mintFAI, repayFAI: comp.repayFAI });
// Instance needs to know which network the provider connects to, so it can
// use the correct contract addresses.
instance._networkPromise = eth.getProviderNetwork(provider).then(function (network) {
instance.decimals = constants_1.decimals;
if (network.id === 56 || network.name === "mainnet") {
instance.decimals.USDC = 18;
instance.decimals.USDT = 18;
}
delete instance._networkPromise;
instance._network = network;
});
return instance;
};
Fortress.eth = eth;
Fortress.api = api;
Fortress.util = util;
Fortress._ethers = ethers_1.ethers;
Fortress.decimals = constants_1.decimals;
Fortress.fortress = {
getFortressBalance: comp.getFortressBalance,
getFortressAccrued: comp.getFortressAccrued
};
Object.assign(Fortress, constants_1.constants);
module.exports = Fortress;
//# sourceMappingURL=index.js.map