Public
Edited
Apr 13, 2023
Insert cell
Insert cell
Insert cell
{
const query = gql`
{
positions(
first: 1000,
where: {
amm_:{
marginEngine: "0x33ba6a0b16750206195c777879edd8706204154b"
}
},
orderBy: margin,
orderDirection: desc
) {
owner {
id
}
amm {
totalLiquidity
rateOracle{
token{
decimals
}
}
}
updatedTimestamp
margin
fixedTokenBalance
variableTokenBalance
accumulatedFees
positionType
sumOfWeightedFixedRate
totalNotionalTraded
}
}
`;

return Inputs.table(
await request(VOLTZ_SUBGRAPH_URL, query).then((r) =>
r.positions.map((p) => ({
owner: p.owner.id,
"margin (USDC)": new Bignumber(p.margin)
.div(`1e${p.amm.rateOracle.token.decimals}`)
.toNumber(2),
"notional (USDC)": new Bignumber(p.variableTokenBalance)
.div(`1e${p.amm.rateOracle.token.decimals}`)
.toNumber(2),
lastTouched: new Date(p.updatedTimestamp * 1000),
marketLiquidity: p.amm.totalLiquidity,
...p
}))
),
{ width: { owner: 360, "margin (USDC)": 100 } }
);
}
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more