add hasBorrows to marginaccount layout, add function to get all accounts with borrows
This commit is contained in:
parent
3e1130c0c4
commit
90b5a0a2c0
|
@ -1335,23 +1335,27 @@ export class MangoClient {
|
|||
async getAllMarginAccounts(
|
||||
connection: Connection,
|
||||
programId: PublicKey,
|
||||
mangoGroup: MangoGroup
|
||||
mangoGroup: MangoGroup,
|
||||
filters?: [any]
|
||||
): Promise<MarginAccount[]> {
|
||||
|
||||
const filters = [
|
||||
const marginAccountsFilters = [
|
||||
{
|
||||
memcmp: {
|
||||
offset: MarginAccountLayout.offsetOf('mangoGroup'),
|
||||
bytes: mangoGroup.publicKey.toBase58(),
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
dataSize: MarginAccountLayout.span,
|
||||
},
|
||||
];
|
||||
|
||||
const marginAccountsProms = getFilteredProgramAccounts(connection, programId, filters)
|
||||
if(filters && filters.length) {
|
||||
marginAccountsFilters.push(...filters);
|
||||
}
|
||||
|
||||
const marginAccountsProms = getFilteredProgramAccounts(connection, programId, marginAccountsFilters)
|
||||
.then((accounts) => (
|
||||
accounts.map(({ publicKey, accountInfo }) =>
|
||||
new MarginAccount(publicKey, MarginAccountLayout.decode(accountInfo == null ? undefined : accountInfo.data))
|
||||
|
@ -1400,6 +1404,19 @@ export class MangoClient {
|
|||
return marginAccounts
|
||||
}
|
||||
|
||||
async getAllMarginAccountsWithBorrows(
|
||||
connection: Connection,
|
||||
programId: PublicKey,
|
||||
mangoGroup: MangoGroup
|
||||
): Promise<MarginAccount[]> {
|
||||
return await this.getAllMarginAccounts(connection, programId, mangoGroup, [{
|
||||
memcmp: {
|
||||
offset: MarginAccountLayout.offsetOf('hasBorrows'),
|
||||
bytes: 1
|
||||
}
|
||||
}])
|
||||
}
|
||||
|
||||
async getMarginAccountsForOwner(
|
||||
connection: Connection,
|
||||
programId: PublicKey,
|
||||
|
|
|
@ -156,7 +156,8 @@ export const MarginAccountLayout = struct([
|
|||
seq(U64F64(), NUM_TOKENS, 'borrows'),
|
||||
seq(publicKeyLayout(), NUM_MARKETS, 'openOrders'),
|
||||
u8('beingLiquidated'),
|
||||
seq(u8(), 7, 'padding')
|
||||
u8('hasBorrows'),
|
||||
seq(u8(), 6, 'padding')
|
||||
]);
|
||||
|
||||
export const MangoSrmAccountLayout = struct([
|
||||
|
|
Loading…
Reference in New Issue