olympus-protocol-connector
Version:
Module made by Olympus Labs for easier access to the Olympus protocol through Javascript/Typescript
112 lines (101 loc) • 2.56 kB
text/typescript
import { DerivativeFactory } from '../lib/derivatives/DerivativeFactory';
/**
* example for how to use factory to get OlympusFund data
* @param address address
*/
async function getOlympusFundData(address: string) {
const factory = DerivativeFactory.get();
const service = await factory.getOlympusFund(address);
const version = await service.getVersion();
const [totalSupply, productStatus, fundType] = await Promise.all([
service.getTotalSupply(),
service.getProductStatus(),
service.fundType(),
]);
const [
name,
symbol,
description,
decimals,
status,
owner,
price,
tokensValue,
ethBalance,
accumulatedFee,
] = await Promise.all([
service.getName(),
service.getSymbol(),
service.getDescription(),
service.decimals(),
service.getStatus(),
service.getOwner(),
service.getPrice(),
service.getTotalWeiAssetsValue(),
service.getETHBalance(),
service.getAccumulatedFee(),
]);
return {
name,
symbol,
description,
decimals,
status,
owner,
price,
tokensValue,
ethBalance,
accumulatedFee,
version,
};
}
/**
* example for how to use factory to get OlympusIndex data
* @param address address
*/
async function getOlympusIndexData(address: string) {
const factory = DerivativeFactory.get();
const service = await factory.getOlympusIndex(address);
const version = await service.getVersion();
const [totalSupply, productStatus, fundType] = await Promise.all([
service.getTotalSupply(),
service.getProductStatus(),
service.fundType(),
]);
const [
name,
symbol,
description,
decimals,
status,
owner,
price,
tokensValue,
ethBalance,
accumulatedFee,
] = await Promise.all([
service.getName(),
service.getSymbol(),
service.getDescription(),
service.decimals(),
service.getStatus(),
service.getOwner(),
service.getPrice(),
service.getTotalWeiAssetsValue(),
service.getETHBalance(),
service.getAccumulatedFee(),
]);
return {
name,
symbol,
description,
decimals,
status,
owner,
price,
tokensValue,
ethBalance,
accumulatedFee,
version,
};
}