update type names; fix flashLoan client fn
This commit is contained in:
parent
a151dea893
commit
719b944f89
|
@ -35,9 +35,9 @@ export class MangoAccount {
|
||||||
obj.group,
|
obj.group,
|
||||||
obj.owner,
|
obj.owner,
|
||||||
obj.delegate,
|
obj.delegate,
|
||||||
obj.tokens as { values: TokenAccountDto[] },
|
obj.tokens as { values: TokenPositionDto[] },
|
||||||
obj.serum3 as { values: Serum3AccountDto[] },
|
obj.serum3 as { values: Serum3PositionDto[] },
|
||||||
obj.perps as { accounts: PerpAccountDto[] },
|
obj.perps as { accounts: PerpPositionDto[] },
|
||||||
obj.beingLiquidated,
|
obj.beingLiquidated,
|
||||||
obj.isBankrupt,
|
obj.isBankrupt,
|
||||||
obj.accountNum,
|
obj.accountNum,
|
||||||
|
@ -52,9 +52,9 @@ export class MangoAccount {
|
||||||
public group: PublicKey,
|
public group: PublicKey,
|
||||||
public owner: PublicKey,
|
public owner: PublicKey,
|
||||||
public delegate: PublicKey,
|
public delegate: PublicKey,
|
||||||
tokens: { values: TokenAccountDto[] },
|
tokens: { values: TokenPositionDto[] },
|
||||||
serum3: { values: Serum3AccountDto[] },
|
serum3: { values: Serum3PositionDto[] },
|
||||||
perps: { accounts: PerpAccountDto[] },
|
perps: { accounts: PerpPositionDto[] },
|
||||||
beingLiquidated: number,
|
beingLiquidated: number,
|
||||||
isBankrupt: number,
|
isBankrupt: number,
|
||||||
accountNum: number,
|
accountNum: number,
|
||||||
|
@ -125,7 +125,7 @@ export class MangoAccount {
|
||||||
|
|
||||||
export class TokenPosition {
|
export class TokenPosition {
|
||||||
static TokenIndexUnset: number = 65535;
|
static TokenIndexUnset: number = 65535;
|
||||||
static from(dto: TokenAccountDto) {
|
static from(dto: TokenPositionDto) {
|
||||||
return new TokenPosition(
|
return new TokenPosition(
|
||||||
I80F48.from(dto.indexedPosition),
|
I80F48.from(dto.indexedPosition),
|
||||||
dto.tokenIndex,
|
dto.tokenIndex,
|
||||||
|
@ -179,7 +179,7 @@ export class TokenPosition {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export class TokenAccountDto {
|
export class TokenPositionDto {
|
||||||
constructor(
|
constructor(
|
||||||
public indexedPosition: I80F48Dto,
|
public indexedPosition: I80F48Dto,
|
||||||
public tokenIndex: number,
|
public tokenIndex: number,
|
||||||
|
@ -190,7 +190,7 @@ export class TokenAccountDto {
|
||||||
|
|
||||||
export class Serum3Orders {
|
export class Serum3Orders {
|
||||||
static Serum3MarketIndexUnset = 65535;
|
static Serum3MarketIndexUnset = 65535;
|
||||||
static from(dto: Serum3AccountDto) {
|
static from(dto: Serum3PositionDto) {
|
||||||
return new Serum3Orders(
|
return new Serum3Orders(
|
||||||
dto.openOrders,
|
dto.openOrders,
|
||||||
dto.marketIndex,
|
dto.marketIndex,
|
||||||
|
@ -207,7 +207,7 @@ export class Serum3Orders {
|
||||||
) {}
|
) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
export class Serum3AccountDto {
|
export class Serum3PositionDto {
|
||||||
constructor(
|
constructor(
|
||||||
public openOrders: PublicKey,
|
public openOrders: PublicKey,
|
||||||
public marketIndex: number,
|
public marketIndex: number,
|
||||||
|
@ -219,7 +219,7 @@ export class Serum3AccountDto {
|
||||||
|
|
||||||
export class PerpPositions {
|
export class PerpPositions {
|
||||||
static PerpMarketIndexUnset = 65535;
|
static PerpMarketIndexUnset = 65535;
|
||||||
static from(dto: PerpAccountDto) {
|
static from(dto: PerpPositionDto) {
|
||||||
return new PerpPositions(
|
return new PerpPositions(
|
||||||
dto.marketIndex,
|
dto.marketIndex,
|
||||||
dto.basePositionLots.toNumber(),
|
dto.basePositionLots.toNumber(),
|
||||||
|
@ -242,7 +242,7 @@ export class PerpPositions {
|
||||||
) {}
|
) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
export class PerpAccountDto {
|
export class PerpPositionDto {
|
||||||
constructor(
|
constructor(
|
||||||
public marketIndex: number,
|
public marketIndex: number,
|
||||||
public reserved: [],
|
public reserved: [],
|
||||||
|
|
|
@ -1212,12 +1212,11 @@ export class MangoClient {
|
||||||
])
|
])
|
||||||
.flat();
|
.flat();
|
||||||
|
|
||||||
const banks = Array.from(group.banksMap.values());
|
const keys = instructions.map((ix) => ix.keys).flat();
|
||||||
const bankPks = banks.map((b) => b.publicKey.toString());
|
const vaultIndex = keys.findIndex((k) => k.pubkey.equals(inputBank.vault));
|
||||||
const bankIndex = bankPks.indexOf(inputBank.publicKey.toString());
|
|
||||||
|
|
||||||
const withdraws: FlashLoanWithdraw[] = [
|
const withdraws: FlashLoanWithdraw[] = [
|
||||||
{ index: 3, amount: toU64(amountIn, 9) },
|
{ index: vaultIndex, amount: toU64(amountIn, inputBank.mintDecimals) },
|
||||||
];
|
];
|
||||||
|
|
||||||
let cpiDatas = [];
|
let cpiDatas = [];
|
||||||
|
@ -1250,7 +1249,7 @@ export class MangoClient {
|
||||||
);
|
);
|
||||||
|
|
||||||
return await this.program.methods
|
return await this.program.methods
|
||||||
.flashLoan(withdraws, [cpiDatas])
|
.flashLoan(withdraws, cpiDatas)
|
||||||
.accounts({
|
.accounts({
|
||||||
group: group.publicKey,
|
group: group.publicKey,
|
||||||
account: mangoAccount.publicKey,
|
account: mangoAccount.publicKey,
|
||||||
|
|
|
@ -2,7 +2,7 @@ import { Group } from './accounts/group';
|
||||||
import {
|
import {
|
||||||
MangoAccount,
|
MangoAccount,
|
||||||
TokenPosition,
|
TokenPosition,
|
||||||
TokenAccountDto,
|
TokenPositionDto,
|
||||||
} from './accounts/mangoAccount';
|
} from './accounts/mangoAccount';
|
||||||
import { StubOracle } from './accounts/oracle';
|
import { StubOracle } from './accounts/oracle';
|
||||||
import { MangoClient } from './client';
|
import { MangoClient } from './client';
|
||||||
|
@ -22,7 +22,7 @@ export {
|
||||||
StubOracle,
|
StubOracle,
|
||||||
MangoAccount,
|
MangoAccount,
|
||||||
TokenPosition as TokenAccount,
|
TokenPosition as TokenAccount,
|
||||||
TokenAccountDto,
|
TokenPositionDto,
|
||||||
MangoClient,
|
MangoClient,
|
||||||
MANGO_V4_ID,
|
MANGO_V4_ID,
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue