@brightunion/sdk
Version:
Brightjs is a set of javascript tools to interact with the Bright Union's risk platform aggregator's protocol on Ethereum, Binance Smart Chain and Polygon blockchains.
151 lines (119 loc) • 4.03 kB
text/typescript
import NetConfig from './config/NetConfig';
import {getCovers, getCoversCount} from './dao/Covers'
import CatalogHelper from './helpers/catalogHelper'
export async function getCoversFrom(
_distributorName:string
): Promise<any> {
if(_distributorName == 'bridge'){
return getBridgeCovers();
}else if(_distributorName == "insurace"){
return getInsuraceCovers(global.user.web3);
}else if(_distributorName == "nexus"){
return getNexusCovers();
}else if(_distributorName == "unslashed"){
return getUnslashedCovers();
}else if(_distributorName == "ease"){
return getEaseCovers();
}
// else if(_distributorName == "unore"){
// return getUnoReCovers();
// }
else{
return { error: "Wrong distributor name" }
}
}
export async function getAllCovers(
): Promise<any> {
const coversPromiseArray:any[] = [];
coversPromiseArray.push(getInsuraceCovers(global.user.web3))
//coversPromiseArray.push(getBridgeCovers())
coversPromiseArray.push(getNexusCovers())
coversPromiseArray.push(getEaseCovers())
// coversPromiseArray.push(getUnslashedCovers())
// coversPromiseArray.push(getUnoReCovers())
for (let net of global.user.web3Passive) {
coversPromiseArray.push( getInsuraceCovers(net))
}
return Promise.all(coversPromiseArray)
.then((_data: any) => {
let allCovers: any[] = [];
for(let array of _data){
if(array) {
allCovers = allCovers.concat(array);
}
}
return allCovers;
})
}
export function getBridgeCovers(): Promise<any[]> {
if (CatalogHelper.availableOnNetwork(global.user.networkId, 'BRIDGE_MUTUAL')) {
return getCovers(null, 'bridge');
}
}
export function getNexusCovers(): Promise<any[]> {
if (CatalogHelper.availableOnNetwork(global.user.networkId, 'NEXUS_MUTUAL')) {
return getCovers( null, 'nexus');
}
}
export function getEaseCovers(): Promise<any[]> {
if (CatalogHelper.availableOnNetwork(global.user.networkId, 'EASE')) {
return getCovers( null, 'ease');
}
}
export function getUnslashedCovers(): Promise<any[]> {
if (CatalogHelper.availableOnNetwork(global.user.networkId, 'UNSLASHED')) {
return getCovers( null, 'unslashed');
}
}
export function getUnoReCovers(): Promise<any[]> {
if (CatalogHelper.availableOnNetwork(global.user.networkId, 'UNSLASHED')) {
return getCovers( null, 'unore');
}
}
export function getInsuraceCovers(_web3:any) : Promise<any[]> {
if(!_web3.networkId){ // if not passive net
const newWeb3Instance = {
account: global.user.account,
networkId: global.user.networkId,
symbol: NetConfig.netById(global.user.networkId).symbol,
web3Instance: _web3,
readOnly: false,
}
_web3 = newWeb3Instance;
}
if (CatalogHelper.availableOnNetwork(_web3.networkId, 'INSURACE')) {
return getCovers(_web3, 'insurace');
}
}
export async function getAllCoversCount(
): Promise<any> {
const coversPromiseArray:any[] = [];
if (CatalogHelper.availableOnNetwork(global.user.networkId, 'NEXUS_MUTUAL' )) {
coversPromiseArray.push(getCoversCount('nexus', global.user.account, false))
}
if (CatalogHelper.availableOnNetwork(global.user.networkId, 'INSURACE')) {
coversPromiseArray.push(getCoversCount('insurace', global.user.account, false))
}
if (CatalogHelper.availableOnNetwork(global.user.networkId, 'EASE')) {
coversPromiseArray.push(getCoversCount('ease', global.user.account, false))
}
if (CatalogHelper.availableOnNetwork(global.user.networkId, 'BRIDGE_MUTUAL')) {
coversPromiseArray.push(getCoversCount('bridge', global.user.account, false))
// coversPromiseArray.push(getCoversCountBridge())
}
return Promise.all(coversPromiseArray)
.then((_data: any) => {
let finalCount = 0;
for(let num of _data){
if(num) {
finalCount = finalCount + Number(num);
}
}
return finalCount;
})
}
export default {
getAllCovers,
getAllCoversCount,
getCoversFrom
}