Modules
Modules
Accounts
, where each field is
a Pubkey
. This is useful for specifying accounts for a client.#[program]
mod is
diff --git a/ts/client/classes/As.html b/ts/client/classes/As.html
index c95144b71..e374c396f 100644
--- a/ts/client/classes/As.html
+++ b/ts/client/classes/As.html
@@ -1 +1 @@
-Class As<Tag>
Type parameters
Tag: keyof never
Hierarchy
- As
Index
Constructors
Properties
Constructors
constructor
Type parameters
Tag: string | number | symbol
Returns As<Tag>
Properties
Private [$as$]
Static Private Readonly $as$
Generated using TypeDoc
Class As<Tag>
Type parameters
Tag: keyof never
Hierarchy
- As
Index
Constructors
Properties
Constructors
constructor
Type parameters
Tag: string | number | symbol
Returns As<Tag>
Properties
Private [$as$]
Static Private Readonly $as$
Generated using TypeDoc
Class Bank
Hierarchy
- Bank
Implements
Index
Constructors
Properties
- _oracle
Last Updated Slot - _oracle
Provider - _price
- _ui
Price - adjustment
Factor - avg
Utilization - bank
Num - bank
Rate Last Updated - borrow
Index - borrow
Weight Scale Start Quote - collected
Fees Native - deposit
Index - deposit
Weight Scale Start Quote - dust
- fees
Withdrawn - flash
Loan Approved Amount - flash
Loan Deposit Fee Rate - flash
Loan Token Account Initial - force
Close - group
- index
Last Updated - indexed
Borrows - indexed
Deposits - init
Asset Weight - init
Liab Weight - last
Net Borrows Window Start Ts - liquidation
Fee - loan
Fee Rate - loan
Origination Fee Rate - maint
Asset Weight - maint
Liab Weight - max
Rate - min
Vault To Deposits Ratio - mint
- mint
Decimals - name
- net
Borrow Limit Per Window Quote - net
Borrow Limit Window Size Ts - net
Borrows In Window - oracle
- oracle
Config - public
Key - rate0
- rate1
- reduce
Only - stable
Price Model - token
Conditional Swap Maker Fee Rate - token
Conditional Swap Taker Fee Rate - token
Index - util0
- util1
- vault
Accessors
Methods
- are
Borrows Reduce Only - are
Deposits Reduce Only - get
Asset Price - get
Borrow Limit Left In Window - get
Borrow Rate - get
Borrow Rate Ui - get
Borrow Rate Without Upkeep Rate - get
Deposit Rate - get
Deposit Rate Ui - get
Liab Price - get
Max Withdraw - get
Net Borrow Limit Per Window - get
Net Borrow Limit Per Window Ui - get
Time To Next Borrow Limit Window Starts Ts - native
Borrows - native
Deposits - scaled
Init Asset Weight - scaled
Init Liab Weight - to
String - ui
Borrows - ui
Deposits - from
Constructors
constructor
Parameters
publicKey: PublicKey
group: PublicKey
name: number[]
mint: PublicKey
vault: PublicKey
oracle: PublicKey
oracleConfig: OracleConfigDto
stablePriceModel: StablePriceModel
depositIndex: I80F48Dto
borrowIndex: I80F48Dto
indexedDeposits: I80F48Dto
indexedBorrows: I80F48Dto
indexLastUpdated: BN
bankRateLastUpdated: BN
avgUtilization: I80F48Dto
adjustmentFactor: I80F48Dto
util0: I80F48Dto
rate0: I80F48Dto
util1: I80F48Dto
rate1: I80F48Dto
maxRate: I80F48Dto
collectedFeesNative: I80F48Dto
loanOriginationFeeRate: I80F48Dto
loanFeeRate: I80F48Dto
maintAssetWeight: I80F48Dto
initAssetWeight: I80F48Dto
maintLiabWeight: I80F48Dto
initLiabWeight: I80F48Dto
liquidationFee: I80F48Dto
dust: I80F48Dto
flashLoanTokenAccountInitial: BN
flashLoanApprovedAmount: BN
tokenIndex: TokenIndex
mintDecimals: number
bankNum: number
minVaultToDepositsRatio: number
netBorrowLimitWindowSizeTs: BN
lastNetBorrowsWindowStartTs: BN
netBorrowLimitPerWindowQuote: BN
netBorrowsInWindow: BN
borrowWeightScaleStartQuote: number
depositWeightScaleStartQuote: number
reduceOnly: number
forceClose: boolean
feesWithdrawn: BN
tokenConditionalSwapTakerFeeRate: number
tokenConditionalSwapMakerFeeRate: number
flashLoanDepositFeeRate: number
Returns Bank
Properties
_oracle Last Updated Slot
_oracle Provider
_price
_ui Price
adjustment Factor
avg Utilization
bank Num
bank Rate Last Updated
borrow Index
borrow Weight Scale Start Quote
collected Fees Native
deposit Index
deposit Weight Scale Start Quote
dust
fees Withdrawn
flash Loan Approved Amount
flash Loan Deposit Fee Rate
flash Loan Token Account Initial
force Close
group
index Last Updated
indexed Borrows
indexed Deposits
init Asset Weight
init Liab Weight
last Net Borrows Window Start Ts
liquidation Fee
loan Fee Rate
loan Origination Fee Rate
maint Asset Weight
maint Liab Weight
max Rate
min Vault To Deposits Ratio
mint
mint Decimals
name
net Borrow Limit Per Window Quote
net Borrow Limit Window Size Ts
net Borrows In Window
oracle
oracle Config
public Key
rate0
rate1
reduce Only
stable Price Model
token Conditional Swap Maker Fee Rate
token Conditional Swap Taker Fee Rate
token Index
util0
util1
vault
Accessors
oracle Last Updated Slot
Returns number
oracle Provider
Returns OracleProvider
price
Returns I80F48
ui Price
Returns number
Methods
are Borrows Reduce Only
Returns boolean
are Deposits Reduce Only
Returns boolean
get Asset Price
Returns I80F48
get Borrow Limit Left In Window
Returns I80F48
get Borrow Rate
Returns I80F48
total borrow rate, 0 is 0% where 1 is 100% (including loan upkeep rate)
-
get Borrow Rate Ui
Returns number
total borrow rate percentage (including loan upkeep rate)
-
get Borrow Rate Without Upkeep Rate
Returns I80F48
borrow rate, 0 is 0% where 1 is 100%; not including loan upkeep rate
-
get Deposit Rate
Returns I80F48
deposit rate, 0 is 0% where 1 is 100%
-
get Deposit Rate Ui
Returns number
deposit rate percentage
-
get Liab Price
Returns I80F48
get Max Withdraw
get Net Borrow Limit Per Window
Returns I80F48
get Net Borrow Limit Per Window Ui
Returns number
get Time To Next Borrow Limit Window Starts Ts
Returns number
native Borrows
Returns I80F48
native Deposits
Returns I80F48
scaled Init Asset Weight
scaled Init Liab Weight
to String
Returns string
ui Borrows
Returns number
ui Deposits
Returns number
Static from
Parameters
publicKey: PublicKey
obj: { adjustmentFactor: I80F48Dto; avgUtilization: I80F48Dto; bankNum: number; bankRateLastUpdated: BN; borrowIndex: I80F48Dto; borrowWeightScaleStartQuote: number; collectedFeesNative: I80F48Dto; depositIndex: I80F48Dto; depositWeightScaleStartQuote: number; dust: I80F48Dto; feesWithdrawn: BN; flashLoanApprovedAmount: BN; flashLoanDepositFeeRate: number; flashLoanTokenAccountInitial: BN; forceClose: number; group: PublicKey; indexLastUpdated: BN; indexedBorrows: I80F48Dto; indexedDeposits: I80F48Dto; initAssetWeight: I80F48Dto; initLiabWeight: I80F48Dto; lastNetBorrowsWindowStartTs: BN; liquidationFee: I80F48Dto; loanFeeRate: I80F48Dto; loanOriginationFeeRate: I80F48Dto; maintAssetWeight: I80F48Dto; maintLiabWeight: I80F48Dto; maxRate: I80F48Dto; minVaultToDepositsRatio: number; mint: PublicKey; mintDecimals: number; name: number[]; netBorrowLimitPerWindowQuote: BN; netBorrowLimitWindowSizeTs: BN; netBorrowsInWindow: BN; oracle: PublicKey; oracleConfig: OracleConfigDto; rate0: I80F48Dto; rate1: I80F48Dto; reduceOnly: number; stablePriceModel: StablePriceModel; tokenConditionalSwapMakerFeeRate: number; tokenConditionalSwapTakerFeeRate: number; tokenIndex: number; util0: I80F48Dto; util1: I80F48Dto; vault: PublicKey }
adjustment
Factor: I80F48Dto avg
Utilization: I80F48Dto bank
Num: number bank
Rate Last Updated: BN borrow
Index: I80F48Dto borrow
Weight Scale Start Quote: number collected
Fees Native: I80F48Dto deposit
Index: I80F48Dto deposit
Weight Scale Start Quote: number dust: I80F48Dto
fees
Withdrawn: BN flash
Loan Approved Amount: BN flash
Loan Deposit Fee Rate: number flash
Loan Token Account Initial: BN force
Close: number group: PublicKey
index
Last Updated: BN indexed
Borrows: I80F48Dto indexed
Deposits: I80F48Dto init
Asset Weight: I80F48Dto init
Liab Weight: I80F48Dto last
Net Borrows Window Start Ts: BN liquidation
Fee: I80F48Dto loan
Fee Rate: I80F48Dto loan
Origination Fee Rate: I80F48Dto maint
Asset Weight: I80F48Dto maint
Liab Weight: I80F48Dto max
Rate: I80F48Dto min
Vault To Deposits Ratio: number mint: PublicKey
mint
Decimals: number name: number[]
net
Borrow Limit Per Window Quote: BN net
Borrow Limit Window Size Ts: BN net
Borrows In Window: BN oracle: PublicKey
oracle
Config: OracleConfigDto rate0: I80F48Dto
rate1: I80F48Dto
reduce
Only: number stable
Price Model: StablePriceModel token
Conditional Swap Maker Fee Rate: number token
Conditional Swap Taker Fee Rate: number token
Index: number util0: I80F48Dto
util1: I80F48Dto
vault: PublicKey
Returns Bank
Generated using TypeDoc
Class Bank
Hierarchy
- Bank
Implements
Index
Constructors
Properties
- _oracle
Last Updated Slot - _oracle
Provider - _price
- _ui
Price - adjustment
Factor - avg
Utilization - bank
Num - bank
Rate Last Updated - borrow
Index - borrow
Weight Scale Start Quote - collected
Fees Native - deposit
Index - deposit
Weight Scale Start Quote - dust
- fees
Withdrawn - flash
Loan Approved Amount - flash
Loan Deposit Fee Rate - flash
Loan Token Account Initial - force
Close - group
- index
Last Updated - indexed
Borrows - indexed
Deposits - init
Asset Weight - init
Liab Weight - last
Net Borrows Window Start Ts - liquidation
Fee - loan
Fee Rate - loan
Origination Fee Rate - maint
Asset Weight - maint
Liab Weight - max
Rate - min
Vault To Deposits Ratio - mint
- mint
Decimals - name
- net
Borrow Limit Per Window Quote - net
Borrow Limit Window Size Ts - net
Borrows In Window - oracle
- oracle
Config - public
Key - rate0
- rate1
- reduce
Only - stable
Price Model - token
Conditional Swap Maker Fee Rate - token
Conditional Swap Taker Fee Rate - token
Index - util0
- util1
- vault
Accessors
Methods
- are
Borrows Reduce Only - are
Deposits Reduce Only - get
Asset Price - get
Borrow Limit Left In Window - get
Borrow Rate - get
Borrow Rate Ui - get
Borrow Rate Without Upkeep Rate - get
Deposit Rate - get
Deposit Rate Ui - get
Liab Price - get
Max Withdraw - get
Net Borrow Limit Per Window - get
Net Borrow Limit Per Window Ui - get
Time To Next Borrow Limit Window Starts Ts - native
Borrows - native
Deposits - scaled
Init Asset Weight - scaled
Init Liab Weight - to
String - ui
Borrows - ui
Deposits - from
Constructors
constructor
Parameters
publicKey: PublicKey
group: PublicKey
name: number[]
mint: PublicKey
vault: PublicKey
oracle: PublicKey
oracleConfig: OracleConfigDto
stablePriceModel: StablePriceModel
depositIndex: I80F48Dto
borrowIndex: I80F48Dto
indexedDeposits: I80F48Dto
indexedBorrows: I80F48Dto
indexLastUpdated: BN
bankRateLastUpdated: BN
avgUtilization: I80F48Dto
adjustmentFactor: I80F48Dto
util0: I80F48Dto
rate0: I80F48Dto
util1: I80F48Dto
rate1: I80F48Dto
maxRate: I80F48Dto
collectedFeesNative: I80F48Dto
loanOriginationFeeRate: I80F48Dto
loanFeeRate: I80F48Dto
maintAssetWeight: I80F48Dto
initAssetWeight: I80F48Dto
maintLiabWeight: I80F48Dto
initLiabWeight: I80F48Dto
liquidationFee: I80F48Dto
dust: I80F48Dto
flashLoanTokenAccountInitial: BN
flashLoanApprovedAmount: BN
tokenIndex: TokenIndex
mintDecimals: number
bankNum: number
minVaultToDepositsRatio: number
netBorrowLimitWindowSizeTs: BN
lastNetBorrowsWindowStartTs: BN
netBorrowLimitPerWindowQuote: BN
netBorrowsInWindow: BN
borrowWeightScaleStartQuote: number
depositWeightScaleStartQuote: number
reduceOnly: number
forceClose: boolean
feesWithdrawn: BN
tokenConditionalSwapTakerFeeRate: number
tokenConditionalSwapMakerFeeRate: number
flashLoanDepositFeeRate: number
Returns Bank
Properties
_oracle Last Updated Slot
_oracle Provider
_price
_ui Price
adjustment Factor
avg Utilization
bank Num
bank Rate Last Updated
borrow Index
borrow Weight Scale Start Quote
collected Fees Native
deposit Index
deposit Weight Scale Start Quote
dust
fees Withdrawn
flash Loan Approved Amount
flash Loan Deposit Fee Rate
flash Loan Token Account Initial
force Close
group
index Last Updated
indexed Borrows
indexed Deposits
init Asset Weight
init Liab Weight
last Net Borrows Window Start Ts
liquidation Fee
loan Fee Rate
loan Origination Fee Rate
maint Asset Weight
maint Liab Weight
max Rate
min Vault To Deposits Ratio
mint
mint Decimals
name
net Borrow Limit Per Window Quote
net Borrow Limit Window Size Ts
net Borrows In Window
oracle
oracle Config
public Key
rate0
rate1
reduce Only
stable Price Model
token Conditional Swap Maker Fee Rate
token Conditional Swap Taker Fee Rate
token Index
util0
util1
vault
Accessors
oracle Last Updated Slot
Returns number
oracle Provider
Returns OracleProvider
price
Returns I80F48
ui Price
Returns number
Methods
are Borrows Reduce Only
Returns boolean
are Deposits Reduce Only
Returns boolean
get Asset Price
Returns I80F48
get Borrow Limit Left In Window
Returns I80F48
get Borrow Rate
Returns I80F48
total borrow rate, 0 is 0% where 1 is 100% (including loan upkeep rate)
+
get Borrow Rate Ui
Returns number
total borrow rate percentage (including loan upkeep rate)
+
get Borrow Rate Without Upkeep Rate
Returns I80F48
borrow rate, 0 is 0% where 1 is 100%; not including loan upkeep rate
+
get Deposit Rate
Returns I80F48
deposit rate, 0 is 0% where 1 is 100%
+
get Deposit Rate Ui
Returns number
deposit rate percentage
+
get Liab Price
Returns I80F48
get Max Withdraw
get Net Borrow Limit Per Window
Returns I80F48
get Net Borrow Limit Per Window Ui
Returns number
get Time To Next Borrow Limit Window Starts Ts
Returns number
native Borrows
Returns I80F48
native Deposits
Returns I80F48
scaled Init Asset Weight
scaled Init Liab Weight
to String
Returns string
ui Borrows
Returns number
ui Deposits
Returns number
Static from
Parameters
publicKey: PublicKey
obj: { adjustmentFactor: I80F48Dto; avgUtilization: I80F48Dto; bankNum: number; bankRateLastUpdated: BN; borrowIndex: I80F48Dto; borrowWeightScaleStartQuote: number; collectedFeesNative: I80F48Dto; depositIndex: I80F48Dto; depositWeightScaleStartQuote: number; dust: I80F48Dto; feesWithdrawn: BN; flashLoanApprovedAmount: BN; flashLoanDepositFeeRate: number; flashLoanTokenAccountInitial: BN; forceClose: number; group: PublicKey; indexLastUpdated: BN; indexedBorrows: I80F48Dto; indexedDeposits: I80F48Dto; initAssetWeight: I80F48Dto; initLiabWeight: I80F48Dto; lastNetBorrowsWindowStartTs: BN; liquidationFee: I80F48Dto; loanFeeRate: I80F48Dto; loanOriginationFeeRate: I80F48Dto; maintAssetWeight: I80F48Dto; maintLiabWeight: I80F48Dto; maxRate: I80F48Dto; minVaultToDepositsRatio: number; mint: PublicKey; mintDecimals: number; name: number[]; netBorrowLimitPerWindowQuote: BN; netBorrowLimitWindowSizeTs: BN; netBorrowsInWindow: BN; oracle: PublicKey; oracleConfig: OracleConfigDto; rate0: I80F48Dto; rate1: I80F48Dto; reduceOnly: number; stablePriceModel: StablePriceModel; tokenConditionalSwapMakerFeeRate: number; tokenConditionalSwapTakerFeeRate: number; tokenIndex: number; util0: I80F48Dto; util1: I80F48Dto; vault: PublicKey }
adjustment
Factor: I80F48Dto avg
Utilization: I80F48Dto bank
Num: number bank
Rate Last Updated: BN borrow
Index: I80F48Dto borrow
Weight Scale Start Quote: number collected
Fees Native: I80F48Dto deposit
Index: I80F48Dto deposit
Weight Scale Start Quote: number dust: I80F48Dto
fees
Withdrawn: BN flash
Loan Approved Amount: BN flash
Loan Deposit Fee Rate: number flash
Loan Token Account Initial: BN force
Close: number group: PublicKey
index
Last Updated: BN indexed
Borrows: I80F48Dto indexed
Deposits: I80F48Dto init
Asset Weight: I80F48Dto init
Liab Weight: I80F48Dto last
Net Borrows Window Start Ts: BN liquidation
Fee: I80F48Dto loan
Fee Rate: I80F48Dto loan
Origination Fee Rate: I80F48Dto maint
Asset Weight: I80F48Dto maint
Liab Weight: I80F48Dto max
Rate: I80F48Dto min
Vault To Deposits Ratio: number mint: PublicKey
mint
Decimals: number name: number[]
net
Borrow Limit Per Window Quote: BN net
Borrow Limit Window Size Ts: BN net
Borrows In Window: BN oracle: PublicKey
oracle
Config: OracleConfigDto rate0: I80F48Dto
rate1: I80F48Dto
reduce
Only: number stable
Price Model: StablePriceModel token
Conditional Swap Maker Fee Rate: number token
Conditional Swap Taker Fee Rate: number token
Index: number util0: I80F48Dto
util1: I80F48Dto
vault: PublicKey
Returns Bank
Generated using TypeDoc
Class BookSide
Hierarchy
- BookSide
Index
Constructors
constructor
Parameters
client: MangoClient
perpMarket: PerpMarket
type: BookSideType
rootFixed: OrderTreeRoot
rootOraclePegged: OrderTreeRoot
orderTreeNodes: OrderTreeNodes
Optional maxBookDelay: number
Returns BookSide
Properties
client
now
order Tree Nodes
perp Market
root Fixed
root Oracle Pegged
type
Static Private INNER_ NODE_ TAG
Static Private LEAF_ NODE_ TAG
Methods
best
Returns undefined | PerpOrder
fixed Items
Returns Generator<PerpOrder, any, unknown>
get Impact Price Ui
Parameters
baseLots: BN
Returns undefined | number
get L2
Parameters
depth: number
Returns [number, number, BN, BN][]
get L2 Ui
Parameters
depth: number
Returns [number, number][]
items
Returns Generator<PerpOrder, any, unknown>
oracle Pegged Items
Returns Generator<PerpOrder, any, unknown>
Static from
Parameters
client: MangoClient
perpMarket: PerpMarket
bookSideType: BookSideType
obj: { nodes: OrderTreeNodes; roots: OrderTreeRoot[] }
nodes: OrderTreeNodes
roots: OrderTreeRoot[]
Returns BookSide
Static get Price From Key
Parameters
key: BN
Returns BN
Static to Inner Node
Parameters
client: MangoClient
data: [number]
Returns InnerNode
Static to Leaf Node
Parameters
client: MangoClient
data: [number]
Returns LeafNode
Generated using TypeDoc
Class BookSideType
Hierarchy
- BookSideType
Index
Constructors
Properties
Constructors
constructor
Returns BookSideType
Properties
Static asks
Type declaration
asks: {}
Static bids
Type declaration
bids: {}
Generated using TypeDoc
Class BookSideType
Hierarchy
- BookSideType
Index
Constructors
Properties
Constructors
constructor
Returns BookSideType
Properties
Static asks
Type declaration
asks: {}
Static bids
Type declaration
bids: {}
Generated using TypeDoc
Class FlashLoanType
Hierarchy
- FlashLoanType
Index
Constructors
Properties
Constructors
constructor
Returns FlashLoanType
Properties
Static swap
Type declaration
swap: {}
Static unknown
Type declaration
unknown: {}
Generated using TypeDoc
Class FlashLoanType
Hierarchy
- FlashLoanType
Index
Constructors
Properties
Constructors
constructor
Returns FlashLoanType
Properties
Static swap
Type declaration
swap: {}
Static unknown
Type declaration
unknown: {}
Generated using TypeDoc
Class FlashLoanWithdraw
Hierarchy
- FlashLoanWithdraw
Index
Constructors
Properties
Constructors
constructor
Returns FlashLoanWithdraw
Properties
Static amount
Static index
Generated using TypeDoc
Class FlashLoanWithdraw
Hierarchy
- FlashLoanWithdraw
Index
Constructors
Properties
Constructors
constructor
Returns FlashLoanWithdraw
Properties
Static amount
Static index
Generated using TypeDoc
Class Group
Hierarchy
- Group
Index
Constructors
Properties
- address
Lookup Tables - address
Lookup Tables List - admin
- banks
Map By Mint - banks
Map By Name - banks
Map By Token Index - buyback
Fees - buyback
Fees Expiry Interval - buyback
Fees Mngo Bonus Factor - buyback
Fees Swap Mango Account - creator
- deposit
Limit Quote - fast
Listing Admin - group
Num - insurance
Mint - insurance
Vault - ix
Gate - mint
Infos Map By Mint - mint
Infos Map By Token Index - mngo
Token Index - perp
Markets Map By Market Index - perp
Markets Map By Name - perp
Markets Map By Oracle - pis
- public
Key - security
Admin - serum3
External Markets Map - serum3
Markets Map By External - serum3
Markets Map By Market Index - testing
- vault
Amounts Map - version
Methods
- console
Log Banks - decode
Price From Oracle Ai - find
Perp Market - get
First Bank By Mint - get
First Bank By Token Index - get
First Bank For Mngo - get
First Bank For Perp Settlement - get
Insurance Mint Decimals - get
Mint Decimals - get
Mint Decimals By Token Index - get
Perp Market By Market Index - get
Perp Market By Name - get
Perp Market By Oracle - get
Price Impact By Token Index - get
Serum3 External Market - get
Serum3 Market By External Market - get
Serum3 Market By Market Index - get
Serum3 Market By Name - get
Token Vault Balance By Mint - get
Token Vault Balance By Mint Ui - load
Perp Asks For Market - load
Perp Bids For Market - load
Serum3 Asks For Market - load
Serum3 Bids For Market - reload
All - reload
Alts - reload
Bank Oracle Prices - reload
Banks - reload
Mint Infos - reload
Perp Market Oracle Prices - reload
Perp Markets - reload
Price Impact Data - reload
Serum3 External Markets - reload
Serum3 Markets - reload
Vaults - to
Native Decimals - to
Native Price - to
String - to
Ui Price - from
Constructors
constructor
Parameters
publicKey: PublicKey
creator: PublicKey
groupNum: number
admin: PublicKey
fastListingAdmin: PublicKey
mngoTokenIndex: TokenIndex
insuranceMint: PublicKey
insuranceVault: PublicKey
testing: number
version: number
buybackFees: boolean
buybackFeesMngoBonusFactor: number
addressLookupTables: PublicKey[]
securityAdmin: PublicKey
depositLimitQuote: any
ixGate: BN
buybackFeesSwapMangoAccount: PublicKey
buybackFeesExpiryInterval: BN
addressLookupTablesList: AddressLookupTableAccount[]
banksMapByName: Map<string, Bank[]>
banksMapByMint: Map<string, Bank[]>
banksMapByTokenIndex: Map<TokenIndex, Bank[]>
serum3MarketsMapByExternal: Map<string, Serum3Market>
serum3MarketsMapByMarketIndex: Map<MarketIndex, Serum3Market>
serum3ExternalMarketsMap: Map<string, Market>
perpMarketsMapByOracle: Map<string, PerpMarket>
perpMarketsMapByMarketIndex: Map<PerpMarketIndex, PerpMarket>
perpMarketsMapByName: Map<string, PerpMarket>
mintInfosMapByTokenIndex: Map<TokenIndex, MintInfo>
mintInfosMapByMint: Map<string, MintInfo>
vaultAmountsMap: Map<string, BN>
pis: PriceImpact[]
Returns Group
Properties
address Lookup Tables
address Lookup Tables List
admin
banks Map By Mint
banks Map By Name
banks Map By Token Index
buyback Fees
buyback Fees Expiry Interval
buyback Fees Mngo Bonus Factor
buyback Fees Swap Mango Account
creator
deposit Limit Quote
fast Listing Admin
group Num
insurance Mint
insurance Vault
ix Gate
mint Infos Map By Mint
mint Infos Map By Token Index
mngo Token Index
perp Markets Map By Market Index
perp Markets Map By Name
perp Markets Map By Oracle
pis
public Key
security Admin
serum3 External Markets Map
serum3 Markets Map By External
serum3 Markets Map By Market Index
testing
vault Amounts Map
version
Methods
console Log Banks
Returns void
decode Price From Oracle Ai
Parameters
coder: BorshAccountsCoder<string>
oracle: PublicKey
ai: AccountInfo<Buffer>
baseDecimals: number
client: MangoClient
Returns Promise<{ lastUpdatedSlot: number; price: I80F48; provider: OracleProvider; uiPrice: number }>
find Perp Market
Parameters
marketIndex: PerpMarketIndex
Returns PerpMarket
get First Bank By Mint
Parameters
mintPk: PublicKey
Returns Bank
get First Bank By Token Index
Parameters
tokenIndex: TokenIndex
Returns Bank
get First Bank For Mngo
Returns Bank
get First Bank For Perp Settlement
Returns Bank
get Insurance Mint Decimals
Returns number
get Mint Decimals
Parameters
mintPk: PublicKey
Returns number
get Mint Decimals By Token Index
Parameters
tokenIndex: TokenIndex
Returns number
get Perp Market By Market Index
Parameters
marketIndex: PerpMarketIndex
Returns PerpMarket
get Perp Market By Name
Parameters
perpMarketName: string
Returns PerpMarket
get Perp Market By Oracle
Parameters
oracle: PublicKey
Returns PerpMarket
get Price Impact By Token Index
- +
Group | @blockworks-foundation/mango-v4 Class Group
Hierarchy
- Group
Index
Constructors
Properties
- address
Lookup Tables - address
Lookup Tables List - admin
- banks
Map By Mint - banks
Map By Name - banks
Map By Token Index - buyback
Fees - buyback
Fees Expiry Interval - buyback
Fees Mngo Bonus Factor - buyback
Fees Swap Mango Account - creator
- deposit
Limit Quote - fast
Listing Admin - group
Num - insurance
Mint - insurance
Vault - ix
Gate - mint
Infos Map By Mint - mint
Infos Map By Token Index - mngo
Token Index - perp
Markets Map By Market Index - perp
Markets Map By Name - perp
Markets Map By Oracle - pis
- public
Key - security
Admin - serum3
External Markets Map - serum3
Markets Map By External - serum3
Markets Map By Market Index - testing
- vault
Amounts Map - version
Methods
- console
Log Banks - decode
Price From Oracle Ai - find
Perp Market - get
First Bank By Mint - get
First Bank By Token Index - get
First Bank For Mngo - get
First Bank For Perp Settlement - get
Insurance Mint Decimals - get
Mint Decimals - get
Mint Decimals By Token Index - get
Perp Market By Market Index - get
Perp Market By Name - get
Perp Market By Oracle - get
Price Impact By Token Index - get
Serum3 External Market - get
Serum3 Market By External Market - get
Serum3 Market By Market Index - get
Serum3 Market By Name - get
Token Vault Balance By Mint - get
Token Vault Balance By Mint Ui - load
Perp Asks For Market - load
Perp Bids For Market - load
Serum3 Asks For Market - load
Serum3 Bids For Market - reload
All - reload
Alts - reload
Bank Oracle Prices - reload
Banks - reload
Mint Infos - reload
Perp Market Oracle Prices - reload
Perp Markets - reload
Price Impact Data - reload
Serum3 External Markets - reload
Serum3 Markets - reload
Vaults - to
Native Decimals - to
Native Price - to
String - to
Ui Price - from
Constructors
constructor
Parameters
publicKey: PublicKey
creator: PublicKey
groupNum: number
admin: PublicKey
fastListingAdmin: PublicKey
mngoTokenIndex: TokenIndex
insuranceMint: PublicKey
insuranceVault: PublicKey
testing: number
version: number
buybackFees: boolean
buybackFeesMngoBonusFactor: number
addressLookupTables: PublicKey[]
securityAdmin: PublicKey
depositLimitQuote: any
ixGate: BN
buybackFeesSwapMangoAccount: PublicKey
buybackFeesExpiryInterval: BN
addressLookupTablesList: AddressLookupTableAccount[]
banksMapByName: Map<string, Bank[]>
banksMapByMint: Map<string, Bank[]>
banksMapByTokenIndex: Map<TokenIndex, Bank[]>
serum3MarketsMapByExternal: Map<string, Serum3Market>
serum3MarketsMapByMarketIndex: Map<MarketIndex, Serum3Market>
serum3ExternalMarketsMap: Map<string, Market>
perpMarketsMapByOracle: Map<string, PerpMarket>
perpMarketsMapByMarketIndex: Map<PerpMarketIndex, PerpMarket>
perpMarketsMapByName: Map<string, PerpMarket>
mintInfosMapByTokenIndex: Map<TokenIndex, MintInfo>
mintInfosMapByMint: Map<string, MintInfo>
vaultAmountsMap: Map<string, BN>
pis: PriceImpact[]
Returns Group
Properties
address
Lookup Tables address
Lookup Tables List admin
banks
Map By Mint banks
Map By Name banks
Map By Token Index buyback
Fees buyback
Fees Expiry Interval buyback
Fees Mngo Bonus Factor buyback
Fees Swap Mango Account creator
deposit
Limit Quote fast
Listing Admin group
Num insurance
Mint insurance
Vault ix
Gate mint
Infos Map By Mint mint
Infos Map By Token Index mngo
Token Index perp
Markets Map By Market Index perp
Markets Map By Name perp
Markets Map By Oracle pis
public
Key security
Admin serum3
External Markets Map serum3
Markets Map By External serum3
Markets Map By Market Index testing
vault
Amounts Map version
Methods
console
Log Banks Returns void
decode
Price From Oracle Ai Parameters
coder: BorshAccountsCoder<string>
oracle: PublicKey
ai: AccountInfo<Buffer>
baseDecimals: number
client: MangoClient
Returns Promise<{ lastUpdatedSlot: number; price: I80F48; provider: OracleProvider; uiPrice: number }>
find
Perp Market Parameters
marketIndex: PerpMarketIndex
Returns PerpMarket
get
First Bank By Mint Parameters
mintPk: PublicKey
Returns Bank
get
First Bank By Token Index Parameters
tokenIndex: TokenIndex
Returns Bank
get
First Bank For Mngo Returns Bank
get
First Bank For Perp Settlement Returns Bank
get
Insurance Mint Decimals Returns number
get
Mint Decimals Parameters
mintPk: PublicKey
Returns number
get
Mint Decimals By Token Index Parameters
tokenIndex: TokenIndex
Returns number
get
Perp Market By Market Index Parameters
marketIndex: PerpMarketIndex
Returns PerpMarket
get
Perp Market By Name Parameters
perpMarketName: string
Returns PerpMarket
get
Perp Market By Oracle Parameters
oracle: PublicKey
Returns PerpMarket
get
Price Impact By Token Index Returns a price impact in percentage, between 0 to 100 for a token, returns -1 if data is bad
-Parameters
tokenIndex: TokenIndex
usdcAmountUi: number
Returns number
get
Serum3 External Market Parameters
externalMarketPk: PublicKey
Returns Market
get
Serum3 Market By External Market Parameters
externalMarketPk: PublicKey
Returns Serum3Market
get
Serum3 Market By Market Index Parameters
marketIndex: MarketIndex
Returns Serum3Market
get
Serum3 Market By Name Parameters
name: string
Returns Serum3Market
get
Token Vault Balance By Mint Parameters
mintPk: PublicKey
Returns BN
get
Token Vault Balance By Mint Ui Parameters
mintPk: PublicKey
Returns number
sum of ui balances of vaults for all banks for a token
-
load
Perp Asks For Market Parameters
client: MangoClient
group: Group
perpMarketIndex: PerpMarketIndex
Returns Promise<BookSide>
load
Perp Bids For Market Parameters
client: MangoClient
perpMarketIndex: PerpMarketIndex
Returns Promise<BookSide>
load
Serum3 Asks For Market Parameters
client: MangoClient
externalMarketPk: PublicKey
Returns Promise<Orderbook>
load
Serum3 Bids For Market Parameters
client: MangoClient
externalMarketPk: PublicKey
Returns Promise<Orderbook>
reload
All Parameters
client: MangoClient
Returns Promise<void>
reload
Alts Parameters
client: MangoClient
Returns Promise<void>
reload
Bank Oracle Prices Parameters
client: MangoClient
Returns Promise<void>
reload
Banks Parameters
client: MangoClient
Optional ids: Id
Returns Promise<void>
reload
Mint Infos Parameters
client: MangoClient
Optional ids: Id
Returns Promise<void>
reload
Perp Market Oracle Prices Parameters
client: MangoClient
Returns Promise<void>
reload
Perp Markets Parameters
client: MangoClient
Optional ids: Id
Returns Promise<void>
reload
Price Impact Data Returns Promise<void>
reload
Serum3 External Markets Parameters
client: MangoClient
Optional ids: Id
Returns Promise<void>
reload
Serum3 Markets Parameters
client: MangoClient
Optional ids: Id
Returns Promise<void>
reload
Vaults Parameters
client: MangoClient
Returns Promise<void>
to
Native Decimals Parameters
uiAmount: number
mintPk: PublicKey
Returns BN
to
Native Price Parameters
uiPrice: number
baseDecimals: number
Returns I80F48
to
String Returns string
to
Ui Price Parameters
price: number | I80F48
baseDecimals: number
Returns number
Static from
Parameters
publicKey: PublicKey
obj: { addressLookupTables: PublicKey[]; admin: PublicKey; buybackFees: number; buybackFeesExpiryInterval: BN; buybackFeesMngoBonusFactor: number; buybackFeesSwapMangoAccount: PublicKey; creator: PublicKey; depositLimitQuote: BN; fastListingAdmin: PublicKey; groupNum: number; insuranceMint: PublicKey; insuranceVault: PublicKey; ixGate: BN; mngoTokenIndex: number; securityAdmin: PublicKey; testing: number; version: number }
address
Lookup Tables: PublicKey[] admin: PublicKey
buyback
Fees: number buyback
Fees Expiry Interval: BN buyback
Fees Mngo Bonus Factor: number buyback
Fees Swap Mango Account: PublicKey creator: PublicKey
deposit
Limit Quote: BN fast
Listing Admin: PublicKey group
Num: number insurance
Mint: PublicKey insurance
Vault: PublicKey ix
Gate: BN mngo
Token Index: number security
Admin: PublicKey testing: number
version: number
Returns Group
\ No newline at end of file +Generated using TypeDoc
Parameters
tokenIndex: TokenIndex
usdcAmountUi: number
Returns number
get Serum3 External Market
Parameters
externalMarketPk: PublicKey
Returns Market
get Serum3 Market By External Market
Parameters
externalMarketPk: PublicKey
Returns Serum3Market
get Serum3 Market By Market Index
Parameters
marketIndex: MarketIndex
Returns Serum3Market
get Serum3 Market By Name
Parameters
name: string
Returns Serum3Market
get Token Vault Balance By Mint
Parameters
mintPk: PublicKey
Returns BN
get Token Vault Balance By Mint Ui
Parameters
mintPk: PublicKey
Returns number
sum of ui balances of vaults for all banks for a token
+
load Perp Asks For Market
Parameters
client: MangoClient
group: Group
perpMarketIndex: PerpMarketIndex
Returns Promise<BookSide>
load Perp Bids For Market
Parameters
client: MangoClient
perpMarketIndex: PerpMarketIndex
Returns Promise<BookSide>
load Serum3 Asks For Market
Parameters
client: MangoClient
externalMarketPk: PublicKey
Returns Promise<Orderbook>
load Serum3 Bids For Market
Parameters
client: MangoClient
externalMarketPk: PublicKey
Returns Promise<Orderbook>
reload All
Parameters
client: MangoClient
Returns Promise<void>
reload Alts
Parameters
client: MangoClient
Returns Promise<void>
reload Bank Oracle Prices
Parameters
client: MangoClient
Returns Promise<void>
reload Banks
Parameters
client: MangoClient
Optional ids: Id
Returns Promise<void>
reload Mint Infos
Parameters
client: MangoClient
Optional ids: Id
Returns Promise<void>
reload Perp Market Oracle Prices
Parameters
client: MangoClient
Returns Promise<void>
reload Perp Markets
Parameters
client: MangoClient
Optional ids: Id
Returns Promise<void>
reload Price Impact Data
Returns Promise<void>
reload Serum3 External Markets
Parameters
client: MangoClient
Optional ids: Id
Returns Promise<void>
reload Serum3 Markets
Parameters
client: MangoClient
Optional ids: Id
Returns Promise<void>
reload Vaults
Parameters
client: MangoClient
Returns Promise<void>
to Native Decimals
Parameters
uiAmount: number
mintPk: PublicKey
Returns BN
to Native Price
Parameters
uiPrice: number
baseDecimals: number
Returns I80F48
to String
Returns string
to Ui Price
Parameters
price: number | I80F48
baseDecimals: number
Returns number
Static from
Parameters
publicKey: PublicKey
obj: { addressLookupTables: PublicKey[]; admin: PublicKey; buybackFees: number; buybackFeesExpiryInterval: BN; buybackFeesMngoBonusFactor: number; buybackFeesSwapMangoAccount: PublicKey; creator: PublicKey; depositLimitQuote: BN; fastListingAdmin: PublicKey; groupNum: number; insuranceMint: PublicKey; insuranceVault: PublicKey; ixGate: BN; mngoTokenIndex: number; securityAdmin: PublicKey; testing: number; version: number }
address
Lookup Tables: PublicKey[] admin: PublicKey
buyback
Fees: number buyback
Fees Expiry Interval: BN buyback
Fees Mngo Bonus Factor: number buyback
Fees Swap Mango Account: PublicKey creator: PublicKey
deposit
Limit Quote: BN fast
Listing Admin: PublicKey group
Num: number insurance
Mint: PublicKey insurance
Vault: PublicKey ix
Gate: BN mngo
Token Index: number security
Admin: PublicKey testing: number
version: number
Returns Group
Generated using TypeDoc
Class HealthType
Hierarchy
- HealthType
Index
Constructors
Properties
Constructors
constructor
Returns HealthType
Properties
Static init
Type declaration
init: {}
Static liquidation End
Type declaration
liquidation
End: {}
Static maint
Type declaration
maint: {}
Generated using TypeDoc
Class HealthType
Hierarchy
- HealthType
Index
Constructors
Properties
Constructors
constructor
Returns HealthType
Properties
Static init
Type declaration
init: {}
Static liquidation End
Type declaration
liquidation
End: {}
Static maint
Type declaration
maint: {}
Generated using TypeDoc
Class I80F48
Hierarchy
- I80F48
Index
Constructors
Properties
Methods
Constructors
constructor
Parameters
data: BN
Returns I80F48
Properties
data
Static FRACTIONS
Static MAX_ BN
Static MAX_ SIZE
Class I80F48
Hierarchy
- I80F48
Index
Constructors
Properties
Methods
Constructors
constructor
Parameters
data: BN
Returns I80F48
Properties
data
Static FRACTIONS
Static MAX_ BN
Static MAX_ SIZE
This is represented by a 128 bit signed integer underneath The first 80 bits are treated as an integer and last 48 bits are treated as fractional part after binary point It's possible to think of an I80F48 as an i128 divided by 2 ^ 40
Read up on how fixed point math works: https://inst.eecs.berkeley.edu/~cs61c/sp06/handout/fixedpt.html Read up on how 2s complement works: https://en.wikipedia.org/wiki/Two%27s_complement
-Static MIN_ BN
Static MULTIPLIER_ BIG
Static MULTIPLIER_ BN
Static MULTIPLIER_ NUMBER
Methods
abs
Returns I80F48
add
ceil
Returns I80F48
cmp
Parameters
x: I80F48
Returns 0 | 1 | -1
div
eq
Parameters
x: I80F48
Returns boolean
floor
Returns I80F48
frac
Returns I80F48
get Binary Layout
Returns string
get Data
Returns BN
gt
Parameters
x: I80F48
Returns boolean
gte
Parameters
x: I80F48
Returns boolean
iadd
idiv
imul
is Neg
Returns boolean
is Pos
Returns boolean
is Zero
Returns boolean
isub
lt
Parameters
x: I80F48
Returns boolean
lte
Parameters
x: I80F48
Returns boolean
max
min
mul
- +
Static MIN_ BN
Static MULTIPLIER_ BIG
Static MULTIPLIER_ BN
Static MULTIPLIER_ NUMBER
Methods
abs
Returns I80F48
add
ceil
Returns I80F48
cmp
Parameters
x: I80F48
Returns 0 | 1 | -1
div
eq
Parameters
x: I80F48
Returns boolean
floor
Returns I80F48
frac
Returns I80F48
get Binary Layout
Returns string
get Data
Returns BN
gt
Parameters
x: I80F48
Returns boolean
gte
Parameters
x: I80F48
Returns boolean
iadd
idiv
imul
is Neg
Returns boolean
is Pos
Returns boolean
is Zero
Returns boolean
isub
lt
Parameters
x: I80F48
Returns boolean
lte
Parameters
x: I80F48
Returns boolean
max
min
mul
neg
Returns I80F48
sub
to Array
Returns Uint8Array
to Array Like
Parameters
ArrayType: BufferConstructor
Optional endian: Endianness
Optional length: number
Returns Buffer
to Big
Returns Big
to Fixed
neg
Returns I80F48
sub
to Array
Returns Uint8Array
to Array Like
Parameters
ArrayType: BufferConstructor
Optional endian: Endianness
Optional length: number
Returns Buffer
to Big
Returns Big
to Fixed
The number will be rounded first for UI sensibilities, then toFixed
-Parameters
Optional decimals: number
Returns string
to Locale String
Parameters
Optional locales: string | string[]
Optional options: NumberFormatOptions
Returns string
to Number
Returns number
to String
Returns string
to Twos
Returns BN
Static from
Static from Array
Parameters
src: Uint8Array
Returns I80F48
Static from Big
Parameters
x: Big
Returns I80F48
Static from I64
Parameters
x: BN
Returns I80F48
Static from Number
Parameters
x: number
Returns I80F48
Static from Number Or Undef
Parameters
Optional x: number
Returns undefined | I80F48
Static from Optional String
Parameters
Optional x: string
Returns undefined | I80F48
Static from String
Parameters
x: string
Returns I80F48
Static from U64
Parameters
x: BN
Returns I80F48
Generated using TypeDoc
Parameters
Optional decimals: number
Returns string
to Locale String
Parameters
Optional locales: string | string[]
Optional options: NumberFormatOptions
Returns string
to Number
Returns number
to String
Returns string
to Twos
Returns BN
Static from
Static from Array
Parameters
src: Uint8Array
Returns I80F48
Static from Big
Parameters
x: Big
Returns I80F48
Static from I64
Parameters
x: BN
Returns I80F48
Static from Number
Parameters
x: number
Returns I80F48
Static from Number Or Undef
Parameters
Optional x: number
Returns undefined | I80F48
Static from Optional String
Parameters
Optional x: string
Returns undefined | I80F48
Static from String
Parameters
x: string
Returns I80F48
Static from U64
Parameters
x: BN
Returns I80F48
Generated using TypeDoc
Class I80F48Dto
Hierarchy
- I80F48Dto
Index
Constructors
Properties
Constructors
constructor
Parameters
val: BN
Returns I80F48Dto
Properties
val
Generated using TypeDoc
Class I80F48Dto
Hierarchy
- I80F48Dto
Index
Constructors
Properties
Constructors
constructor
Parameters
val: BN
Returns I80F48Dto
Properties
val
Generated using TypeDoc
Class InnerNode
Generated using TypeDoc
Class InnerNode
Generated using TypeDoc
Class InterestRateParams
Hierarchy
- InterestRateParams
Index
Constructors
Properties
Constructors
constructor
Returns InterestRateParams
Properties
adjustment Factor
max Rate
rate0
rate1
util0
util1
Generated using TypeDoc
Class InterestRateParams
Hierarchy
- InterestRateParams
Index
Constructors
Properties
Constructors
constructor
Returns InterestRateParams
Properties
adjustment Factor
max Rate
rate0
rate1
util0
util1
Generated using TypeDoc
Class LeafNode
Hierarchy
- LeafNode
Index
Constructors
Properties
Methods
Constructors
constructor
Parameters
ownerSlot: number
orderType: PerpOrderType
timeInForce: number
key: BN
owner: PublicKey
quantity: BN
timestamp: BN
pegLimit: BN
Returns LeafNode
Properties
key
order Type
owner
owner Slot
peg Limit
quantity
time In Force
timestamp
Methods
Static from
Parameters
obj: { key: BN; orderType: PerpOrderType; owner: PublicKey; ownerSlot: number; pegLimit: BN; quantity: BN; timeInForce: number; timestamp: BN }
key: BN
order
Type: PerpOrderType owner: PublicKey
owner
Slot: number peg
Limit: BN quantity: BN
time
In Force: number timestamp: BN
Returns LeafNode
Generated using TypeDoc
Class LeafNode
Hierarchy
- LeafNode
Index
Constructors
Properties
Methods
Constructors
constructor
Parameters
ownerSlot: number
orderType: PerpOrderType
timeInForce: number
key: BN
owner: PublicKey
quantity: BN
timestamp: BN
pegLimit: BN
Returns LeafNode
Properties
key
order Type
owner
owner Slot
peg Limit
quantity
time In Force
timestamp
Methods
Static from
Parameters
obj: { key: BN; orderType: PerpOrderType; owner: PublicKey; ownerSlot: number; pegLimit: BN; quantity: BN; timeInForce: number; timestamp: BN }
key: BN
order
Type: PerpOrderType owner: PublicKey
owner
Slot: number peg
Limit: BN quantity: BN
time
In Force: number timestamp: BN
Returns LeafNode
Generated using TypeDoc
Class MangoAccount
Hierarchy
- MangoAccount
Index
Constructors
Properties
- account
Num - being
Liquidated - buyback
Fees Accrued Current - buyback
Fees Accrued Previous - buyback
Fees Expiry Timestamp - delegate
- frozen
Until - group
- header
Version - health
Region Begin Init Health - in
Health Region - name
- net
Deposits - owner
- perp
Open Orders - perp
Spot Transfers - perps
- public
Key - serum3
- serum3
Oos Map By Market Index - token
Conditional Swaps - tokens
Methods
- get
Assets Value - get
Buyback Fees Accrued - get
Buyback Fees Accrued Ui - get
Collateral Value - get
Cumulative Interest - get
Effective Token Balance - get
Equity - get
Health - get
Health Contribution Per Asset Ui - get
Health Ratio - get
Health Ratio Ui - get
Liabs Value - get
Max Base For Perp Ask Ui - get
Max Base For Serum3 Ask Ui - get
Max Fees Buyback - get
Max Fees Buyback Ui - get
Max Quote For Perp Bid Ui - get
Max Quote For Serum3 Bid Ui - get
Max Source Ui For Token Swap - get
Max Withdraw With Borrow For Token - get
Max Withdraw With Borrow For Token Ui - get
Perp Position - get
Perp Position Ui - get
Pnl - get
Serum3 Account - get
Serum3 Oo Account - get
Token - get
Token Balance - get
Token Balance Ui - get
Token Borrows - get
Token Borrows Ui - get
Token Deposits - get
Token Deposits Ui - is
Delegate - is
Operational - load
Perp Open Orders For Market - load
Serum3 Open Orders - load
Serum3 Open Orders Accounts - load
Serum3 Open Orders For Market - perp
Active - perp
Max Settle - perp
Order Exists For Market - perp
Orders Active - perp
Position Exists For Market - reload
- reload
Serum3 Open Orders - reload
With Slot - serum3
Active - serum3
Cancel All Orders For All Markets - serum3
Settle Funds For All Markets - sim
Health Ratio With Perp Ask Ui Changes - sim
Health Ratio With Perp Bid Ui Changes - sim
Health Ratio With Serum3 Ask Ui Changes - sim
Health Ratio With Serum3 Bid Ui Changes - sim
Health Ratio With Token Position Ui Changes - to
String - token
Conditional Swaps Active - tokens
Active - from
Constructors
constructor
Parameters
publicKey: PublicKey
group: PublicKey
owner: PublicKey
name: number[]
delegate: PublicKey
accountNum: number
beingLiquidated: boolean
inHealthRegion: boolean
netDeposits: BN
perpSpotTransfers: BN
healthRegionBeginInitHealth: BN
frozenUntil: BN
buybackFeesAccruedCurrent: BN
buybackFeesAccruedPrevious: BN
buybackFeesExpiryTimestamp: BN
headerVersion: number
tokens: TokenPositionDto[]
serum3: Serum3PositionDto[]
perps: PerpPositionDto[]
perpOpenOrders: PerpOoDto[]
tokenConditionalSwaps: TokenConditionalSwapDto[]
serum3OosMapByMarketIndex: Map<number, OpenOrders>
Returns MangoAccount
Properties
account Num
being Liquidated
buyback Fees Accrued Current
buyback Fees Accrued Previous
buyback Fees Expiry Timestamp
delegate
frozen Until
group
header Version
health Region Begin Init Health
in Health Region
name
net Deposits
owner
perp Open Orders
perp Spot Transfers
perps
public Key
serum3
serum3 Oos Map By Market Index
token Conditional Swaps
tokens
Methods
get Assets Value
- +
MangoAccount | @blockworks-foundation/mango-v4 Class MangoAccount
Hierarchy
- MangoAccount
Index
Constructors
Properties
- account
Num - being
Liquidated - buyback
Fees Accrued Current - buyback
Fees Accrued Previous - buyback
Fees Expiry Timestamp - delegate
- frozen
Until - group
- header
Version - health
Region Begin Init Health - in
Health Region - name
- net
Deposits - owner
- perp
Open Orders - perp
Spot Transfers - perps
- public
Key - serum3
- serum3
Oos Map By Market Index - token
Conditional Swaps - tokens
Methods
- get
Assets Value - get
Buyback Fees Accrued - get
Buyback Fees Accrued Ui - get
Collateral Value - get
Cumulative Interest - get
Effective Token Balance - get
Equity - get
Health - get
Health Contribution Per Asset Ui - get
Health Ratio - get
Health Ratio Ui - get
Liabs Value - get
Max Base For Perp Ask Ui - get
Max Base For Serum3 Ask Ui - get
Max Fees Buyback - get
Max Fees Buyback Ui - get
Max Quote For Perp Bid Ui - get
Max Quote For Serum3 Bid Ui - get
Max Source Ui For Token Swap - get
Max Withdraw With Borrow For Token - get
Max Withdraw With Borrow For Token Ui - get
Perp Position - get
Perp Position Ui - get
Pnl - get
Serum3 Account - get
Serum3 Oo Account - get
Token - get
Token Balance - get
Token Balance Ui - get
Token Borrows - get
Token Borrows Ui - get
Token Deposits - get
Token Deposits Ui - is
Delegate - is
Operational - load
Perp Open Orders For Market - load
Serum3 Open Orders - load
Serum3 Open Orders Accounts - load
Serum3 Open Orders For Market - perp
Active - perp
Max Settle - perp
Order Exists For Market - perp
Orders Active - perp
Position Exists For Market - reload
- reload
Serum3 Open Orders - reload
With Slot - serum3
Active - serum3
Cancel All Orders For All Markets - serum3
Settle Funds For All Markets - sim
Health Ratio With Perp Ask Ui Changes - sim
Health Ratio With Perp Bid Ui Changes - sim
Health Ratio With Serum3 Ask Ui Changes - sim
Health Ratio With Serum3 Bid Ui Changes - sim
Health Ratio With Token Position Ui Changes - to
String - token
Conditional Swaps Active - tokens
Active - from
Constructors
constructor
Parameters
publicKey: PublicKey
group: PublicKey
owner: PublicKey
name: number[]
delegate: PublicKey
accountNum: number
beingLiquidated: boolean
inHealthRegion: boolean
netDeposits: BN
perpSpotTransfers: BN
healthRegionBeginInitHealth: BN
frozenUntil: BN
buybackFeesAccruedCurrent: BN
buybackFeesAccruedPrevious: BN
buybackFeesExpiryTimestamp: BN
headerVersion: number
tokens: TokenPositionDto[]
serum3: Serum3PositionDto[]
perps: PerpPositionDto[]
perpOpenOrders: PerpOoDto[]
tokenConditionalSwaps: TokenConditionalSwapDto[]
serum3OosMapByMarketIndex: Map<number, OpenOrders>
Returns MangoAccount
Properties
account
Num being
Liquidated buyback
Fees Accrued Current buyback
Fees Accrued Previous buyback
Fees Expiry Timestamp delegate
frozen
Until group
header
Version health
Region Begin Init Health in
Health Region name
net
Deposits owner
perp
Open Orders perp
Spot Transfers perps
public
Key serum3
serum3
Oos Map By Market Index token
Conditional Swaps tokens
Methods
get
Assets Value Sum of all positive assets.
Parameters
group: Group
Optional healthType: HealthType
Returns I80F48
assets, in native quote
-
get
Buyback Fees Accrued Returns BN
get
Buyback Fees Accrued Ui Returns number
get
Collateral Value - +
get
Buyback Fees Accrued Returns BN
get
Buyback Fees Accrued Ui Returns number
get
Collateral Value get
Cumulative Interest Parameters
bank: Bank
Returns number
token cumulative interest, in native token units. Sum of deposit and borrow interest. +
get
Cumulative Interest Parameters
bank: Bank
Returns number
token cumulative interest, in native token units. Sum of deposit and borrow interest. Caveat: This will only return cumulative interest since the tokenPosition was last opened. If the tokenPosition was closed and reopened multiple times it is necessary to add this result to cumulative interest at each of the prior tokenPosition closings (from mango API) to get the all time cumulative interest.
-
get
Effective Token Balance get
Equity - +
get
Effective Token Balance get
Equity get
Health - +
get
Health Health, see health.rs or https://docs.mango.markets/mango-markets/health-overview
Parameters
group: Group
healthType: HealthType
Returns I80F48
raw health number, in native quote
-
get
Health Contribution Per Asset Ui Parameters
group: Group
healthType: HealthType
Returns { asset: string; contribution: number; contributionDetails: undefined | { perpMarketContributions: { contributionUi: number; market: string }[]; spotUi: number } }[]
get
Health Ratio - +
get
Health Contribution Per Asset Ui Parameters
group: Group
healthType: HealthType
Returns { asset: string; contribution: number; contributionDetails: undefined | { perpMarketContributions: { contributionUi: number; market: string }[]; spotUi: number } }[]
get
Health Ratio Health ratio, which is computed so
100 * (assets-liabs)/liabs
Note: health ratio is technically ∞ if liabs are 0Parameters
group: Group
healthType: HealthType
Returns I80F48
health ratio, in percentage form
-
get
Health Ratio Ui - +
get
Health Ratio Ui Health ratio
Parameters
group: Group
healthType: HealthType
Returns number
health ratio, in percentage form, capped to 100
-
get
Liabs Value - +
get
Liabs Value get
Max Base For Perp Ask Ui - +
get
Max Base For Perp Ask Ui TODO: also think about limit orders
The max ui base you can place a market/ioc ask on the market, price is the ui price at which you think the order would materialiase.
Parameters
group: Group
perpMarketIndex: PerpMarketIndex
Returns number
max ui base ask
-
get
Max Base For Serum3 Ask Ui - +
get
Max Base For Serum3 Ask Ui TODO REWORK, know to break in binary search, also make work for limit orders
Parameters
group: Group
externalMarketPk: PublicKey
Returns number
maximum ui base which can be traded at oracle price for quote token given current health
-
get
Max Fees Buyback Parameters
group: Group
Returns BN
get
Max Fees Buyback Ui Parameters
group: Group
Returns number
get
Max Quote For Perp Bid Ui - +
get
Max Fees Buyback Parameters
group: Group
Returns BN
get
Max Fees Buyback Ui Parameters
group: Group
Returns number
get
Max Quote For Perp Bid Ui TODO: also think about limit orders
The max ui quote you can place a market/ioc bid on the market, price is the ui price at which you think the order would materialiase.
Parameters
group: Group
perpMarketIndex: PerpMarketIndex
Returns number
maximum ui quote which can be traded at oracle price for quote token given current health
-
get
Max Quote For Serum3 Bid Ui - +
get
Max Quote For Serum3 Bid Ui TODO REWORK, know to break in binary search, also make work for limit orders
Parameters
group: Group
externalMarketPk: PublicKey
Returns number
maximum ui quote which can be traded at oracle price for base token given current health
-
get
Max Source Ui For Token Swap - +
get
Max Source Ui For Token Swap The max amount of given source ui token you can swap to a target token.
Parameters
group: Group
sourceMintPk: PublicKey
targetMintPk: PublicKey
slippageAndFeesFactor: number = 1
Returns number
max amount of given source ui token you can swap to a target token, in ui token
-
get
Max Withdraw With Borrow For Token - +
get
Max Withdraw With Borrow For Token The amount of given native token you can withdraw including borrows, considering all existing assets as collateral.
Parameters
group: Group
mintPk: PublicKey
Returns I80F48
amount of given native token you can borrow, considering all existing assets as collateral, in native token
TODO: take into account net_borrow_limit and min_vault_to_deposits_ratio TODO: see max_borrow_for_health_fn
-
get
Max Withdraw With Borrow For Token Ui Parameters
group: Group
mintPk: PublicKey
Returns number
get
Perp Position Parameters
perpMarketIndex: PerpMarketIndex
Returns undefined | PerpPosition
get
Perp Position Ui Parameters
group: Group
perpMarketIndex: PerpMarketIndex
Optional useEventQueue: boolean
Returns number
get
Pnl get
Max Withdraw With Borrow For Token Ui Parameters
group: Group
mintPk: PublicKey
Returns number
get
Perp Position Parameters
perpMarketIndex: PerpMarketIndex
Returns undefined | PerpPosition
get
Perp Position Ui Parameters
group: Group
perpMarketIndex: PerpMarketIndex
Optional useEventQueue: boolean
Returns number
get
Pnl Parameters
group: Group
Returns I80F48
Overall PNL, in native quote PNL is defined here as spot value + serum3 open orders value + perp value - net deposits value (evaluated at native quote price at the time of the deposit/withdraw) spot value + serum3 open orders value + perp value is returned by getEquity (open orders values are added to spot token values implicitly)
-
get
Serum3 Account Parameters
marketIndex: MarketIndex
Returns undefined | Serum3Orders
get
Serum3 Oo Account Parameters
marketIndex: MarketIndex
Returns OpenOrders
get
Token Parameters
tokenIndex: TokenIndex
Returns undefined | TokenPosition
get
Token Balance get
Token Balance Ui Parameters
bank: Bank
Returns number
UI balance for a token, is signed
-
get
Token Borrows get
Token Borrows Ui Parameters
bank: Bank
Returns number
UI borrows for a token, 0 or less
-
get
Token Deposits get
Token Deposits Ui Parameters
bank: Bank
Returns number
UI deposits for a token, 0 or more
-
is
Delegate Parameters
client: MangoClient
Returns boolean
is
Operational Returns boolean
load
Perp Open Orders For Market Parameters
client: MangoClient
group: Group
perpMarketIndex: PerpMarketIndex
Optional forceReload: boolean
Returns Promise<PerpOrder[]>
load
Serum3 Open Orders Parameters
serum3OosMapByOo: Map<string, OpenOrders>
Returns void
load
Serum3 Open Orders Accounts Parameters
client: MangoClient
Returns Promise<OpenOrders[]>
load
Serum3 Open Orders For Market Parameters
client: MangoClient
group: Group
externalMarketPk: PublicKey
Returns Promise<Order[]>
perp
Active Returns PerpPosition[]
perp
Max Settle Parameters
group: Group
perpMarketSettleTokenIndex: TokenIndex
Returns I80F48
perp
Order Exists For Market Parameters
perpMarket: PerpMarket
Returns boolean
perp
Orders Active Returns PerpOo[]
perp
Position Exists For Market Parameters
perpMarket: PerpMarket
Returns boolean
reload
Parameters
client: MangoClient
Returns Promise<MangoAccount>
reload
Serum3 Open Orders Parameters
client: MangoClient
Returns Promise<MangoAccount>
reload
With Slot Parameters
client: MangoClient
Returns Promise<{ slot: number; value: MangoAccount }>
serum3
Active Returns Serum3Orders[]
serum3
Cancel All Orders For All Markets Parameters
client: MangoClient
group: Group
Returns Promise<MangoSignatureStatus[]>
serum3
Settle Funds For All Markets Parameters
client: MangoClient
group: Group
Returns Promise<MangoSignatureStatus[]>
sim
Health Ratio With Perp Ask Ui Changes Parameters
group: Group
perpMarketIndex: PerpMarketIndex
size: number
healthType: HealthType = HealthType.init
Returns number
sim
Health Ratio With Perp Bid Ui Changes Parameters
group: Group
perpMarketIndex: PerpMarketIndex
size: number
healthType: HealthType = HealthType.init
Returns number
sim
Health Ratio With Serum3 Ask Ui Changes Parameters
group: Group
uiBaseAmount: number
externalMarketPk: PublicKey
healthType: HealthType = HealthType.init
Returns number
health ratio after an ask with uiBaseAmount is placed
-
sim
Health Ratio With Serum3 Bid Ui Changes Parameters
group: Group
uiQuoteAmount: number
externalMarketPk: PublicKey
healthType: HealthType = HealthType.init
Returns number
health ratio after a bid with uiQuoteAmount is placed
-
sim
Health Ratio With Token Position Ui Changes - +
get
Serum3 Account Parameters
marketIndex: MarketIndex
Returns undefined | Serum3Orders
get
Serum3 Oo Account Parameters
marketIndex: MarketIndex
Returns OpenOrders
get
Token Parameters
tokenIndex: TokenIndex
Returns undefined | TokenPosition
get
Token Balance get
Token Balance Ui Parameters
bank: Bank
Returns number
UI balance for a token, is signed
+
get
Token Borrows get
Token Borrows Ui Parameters
bank: Bank
Returns number
UI borrows for a token, 0 or less
+
get
Token Deposits get
Token Deposits Ui Parameters
bank: Bank
Returns number
UI deposits for a token, 0 or more
+
is
Delegate Parameters
client: MangoClient
Returns boolean
is
Operational Returns boolean
load
Perp Open Orders For Market Parameters
client: MangoClient
group: Group
perpMarketIndex: PerpMarketIndex
Optional forceReload: boolean
Returns Promise<PerpOrder[]>
load
Serum3 Open Orders Parameters
serum3OosMapByOo: Map<string, OpenOrders>
Returns void
load
Serum3 Open Orders Accounts Parameters
client: MangoClient
Returns Promise<OpenOrders[]>
load
Serum3 Open Orders For Market Parameters
client: MangoClient
group: Group
externalMarketPk: PublicKey
Returns Promise<Order[]>
perp
Active Returns PerpPosition[]
perp
Max Settle Parameters
group: Group
perpMarketSettleTokenIndex: TokenIndex
Returns I80F48
perp
Order Exists For Market Parameters
perpMarket: PerpMarket
Returns boolean
perp
Orders Active Returns PerpOo[]
perp
Position Exists For Market Parameters
perpMarket: PerpMarket
Returns boolean
reload
Parameters
client: MangoClient
Returns Promise<MangoAccount>
reload
Serum3 Open Orders Parameters
client: MangoClient
Returns Promise<MangoAccount>
reload
With Slot Parameters
client: MangoClient
Returns Promise<{ slot: number; value: MangoAccount }>
serum3
Active Returns Serum3Orders[]
serum3
Cancel All Orders For All Markets Parameters
client: MangoClient
group: Group
Returns Promise<MangoSignatureStatus[]>
serum3
Settle Funds For All Markets Parameters
client: MangoClient
group: Group
Returns Promise<MangoSignatureStatus[]>
sim
Health Ratio With Perp Ask Ui Changes Parameters
group: Group
perpMarketIndex: PerpMarketIndex
size: number
healthType: HealthType = HealthType.init
Returns number
sim
Health Ratio With Perp Bid Ui Changes Parameters
group: Group
perpMarketIndex: PerpMarketIndex
size: number
healthType: HealthType = HealthType.init
Returns number
sim
Health Ratio With Serum3 Ask Ui Changes Parameters
group: Group
uiBaseAmount: number
externalMarketPk: PublicKey
healthType: HealthType = HealthType.init
Returns number
health ratio after an ask with uiBaseAmount is placed
+
sim
Health Ratio With Serum3 Bid Ui Changes Parameters
group: Group
uiQuoteAmount: number
externalMarketPk: PublicKey
healthType: HealthType = HealthType.init
Returns number
health ratio after a bid with uiQuoteAmount is placed
+
sim
Health Ratio With Token Position Ui Changes Simulates new health ratio after applying tokenChanges to the token positions. Note: token changes are expected in ui amounts
e.g. useful to simulate health after a potential swap. Note: health ratio is technically ∞ if liabs are 0
Parameters
group: Group
uiTokenChanges: { mintPk: PublicKey; uiTokenAmount: number }[]
healthType: HealthType = HealthType.init
Returns number
health ratio, in percentage form
-
to
String Parameters
Optional group: Group
onlyTokens: boolean = false
Returns string
token
Conditional Swaps Active Returns TokenConditionalSwap[]
tokens
Active Returns TokenPosition[]
Static from
Parameters
publicKey: PublicKey
obj: { accountNum: number; beingLiquidated: number; buybackFeesAccruedCurrent: BN; buybackFeesAccruedPrevious: BN; buybackFeesExpiryTimestamp: BN; delegate: PublicKey; frozenUntil: BN; group: PublicKey; headerVersion: number; healthRegionBeginInitHealth: BN; inHealthRegion: number; name: number[]; netDeposits: BN; owner: PublicKey; perpOpenOrders: unknown; perpSpotTransfers: BN; perps: unknown; serum3: unknown; tokens: unknown }
account
Num: number being
Liquidated: number buyback
Fees Accrued Current: BN buyback
Fees Accrued Previous: BN buyback
Fees Expiry Timestamp: BN delegate: PublicKey
frozen
Until: BN group: PublicKey
header
Version: number health
Region Begin Init Health: BN in
Health Region: number name: number[]
net
Deposits: BN owner: PublicKey
perp
Open Orders: unknown perp
Spot Transfers: BN perps: unknown
serum3: unknown
tokens: unknown
tokenConditionalSwaps: TokenConditionalSwapDto[]
Returns MangoAccount
\ No newline at end of file +Generated using TypeDoc
to
String Parameters
Optional group: Group
onlyTokens: boolean = false
Returns string
token
Conditional Swaps Active Returns TokenConditionalSwap[]
tokens
Active Returns TokenPosition[]
Static from
Parameters
publicKey: PublicKey
obj: { accountNum: number; beingLiquidated: number; buybackFeesAccruedCurrent: BN; buybackFeesAccruedPrevious: BN; buybackFeesExpiryTimestamp: BN; delegate: PublicKey; frozenUntil: BN; group: PublicKey; headerVersion: number; healthRegionBeginInitHealth: BN; inHealthRegion: number; name: number[]; netDeposits: BN; owner: PublicKey; perpOpenOrders: unknown; perpSpotTransfers: BN; perps: unknown; serum3: unknown; tokens: unknown }
account
Num: number being
Liquidated: number buyback
Fees Accrued Current: BN buyback
Fees Accrued Previous: BN buyback
Fees Expiry Timestamp: BN delegate: PublicKey
frozen
Until: BN group: PublicKey
header
Version: number health
Region Begin Init Health: BN in
Health Region: number name: number[]
net
Deposits: BN owner: PublicKey
perp
Open Orders: unknown perp
Spot Transfers: BN perps: unknown
serum3: unknown
tokens: unknown
tokenConditionalSwaps: TokenConditionalSwapDto[]
Returns MangoAccount
\ No newline at end of file diff --git a/ts/client/classes/MangoClient.html b/ts/client/classes/MangoClient.html index 80265a9b5..2a3c0d65f 100644 --- a/ts/client/classes/MangoClient.html +++ b/ts/client/classes/MangoClient.html @@ -1,4 +1,4 @@ -Generated using TypeDoc
MangoClient | @blockworks-foundation/mango-v4 Class MangoClient
Hierarchy
- MangoClient
Index
Constructors
Properties
Accessors
Methods
- account
Buyback Fees With Mngo - account
Buyback Fees With Mngo Ix - account
Expand V2 - account
Expand V2 Ix - admin
Perp Withdraw Fees - admin
Token Withdraw Fees - alt
Extend - alt
Set - build
Health Remaining Accounts - close
Mango Account - create
Mango Account - edit
Mango Account - empty
And Close Mango Account - estimate
Prioritization Fee - expand
Mango Account - get
All Mango Accounts - get
Banks For Group - get
Group - get
Group For Creator - get
Groups For Creator - get
Ids - get
Mango Account - get
Mango Account For Owner - get
Mango Account From Ai - get
Mango Account From Pk - get
Mango Account With Slot - get
Mango Accounts For Delegate - get
Mango Accounts For Owner - get
Mint Info For Token Index - get
Mint Infos For Group - get
Stub Oracle - group
Close - group
Create - group
Edit - health
Region Begin Ix - health
Region End Ix - ix
Gate Set - liq
Token With Token - margin
Trade - modify
Perp Order - modify
Serum3 Order - perp
Cancel All Orders - perp
Cancel All Orders Ix - perp
Cancel Order - perp
Cancel Order By Client Order Id Ix - perp
Cancel Order Ix - perp
Close All - perp
Close Market - perp
Consume All Events - perp
Consume Events - perp
Consume Events Ix - perp
Create Market - perp
Deactivate Position - perp
Deactivate Position Ix - perp
Edit Market - perp
Force Close Position - perp
Get Markets - perp
Place Order - perp
Place Order Ix - perp
Place Order Pegged - perp
Place Order Pegged Ix - perp
Place Order Pegged V2 Ix - perp
Place Order V2 Ix - perp
Settle Fees - perp
Settle Fees Ix - perp
Settle Pnl - perp
Settle Pnl And Fees - perp
Settle Pnl Ix - perp
Update Funding Ix - send
And Confirm Transaction - send
And Confirm Transaction For Group - serum3
Cancel All Orders - serum3
Cancel All Orders Ix - serum3
Cancel Order - serum3
Cancel Order Ix - serum3
Close Open Orders - serum3
Close Open Orders Ix - serum3
Create Open Orders - serum3
Create Open Orders Ix - serum3
Edit Market - serum3
Get Markets - serum3
Liq Force Cancel Orders - serum3
Place Order - serum3
Place Order Ix - serum3
Register Market - serum3
Settle Funds - serum3
Settle Funds Ix - serum3
Settle Funds V2 Ix - serum3deregister
Market - settle
All - stub
Oracle Close - stub
Oracle Create - stub
Oracle Set - tcs
Stop Loss On Borrow - tcs
Stop Loss On Deposit - tcs
Take Profit On Borrow - tcs
Take Profit On Deposit - toggle
Mango Account Freeze - token
Conditional Swap Cancel - token
Conditional Swap Cancel All - token
Conditional Swap Create - token
Conditional Swap Create Raw - token
Conditional Swap Trigger - token
Deposit - token
Deposit Native - token
Deregister - token
Edit - token
Force Close Borrows With Token - token
Register - token
Register Trustless - token
Update Index And Rate - token
Update Index And Rate Ix - token
Withdraw - token
Withdraw Native - token
Withdraw Native Ix - connect
- connect
Default - connect
For Group Name
Constructors
constructor
Parameters
program: Program<MangoV4>
programId: PublicKey
cluster: Cluster
opts: MangoClientOptions = {}
Returns MangoClient
Properties
cluster
Private estimate
Fee Private ids
Source Private openbook
Fees To Dao opts
Private Optional post
Send Tx Callback Type declaration
Parameters
__namedParameters: Object
Returns void
Private prepended
Global Additional Instructions Private prioritization
Fee program
program
Id Private tx
Confirmation Commitment Accessors
connection
Returns Connection
wallet
Pk Returns PublicKey
Methods
account
Buyback Fees With Mngo Parameters
group: Group
mangoAccount: MangoAccount
Optional maxBuyback: number
Returns Promise<MangoSignatureStatus>
account
Buyback Fees With Mngo Ix Parameters
group: Group
mangoAccount: MangoAccount
Optional maxBuybackUsd: number
Returns Promise<TransactionInstruction>
account
Expand V2 Parameters
group: Group
account: MangoAccount
tokenCount: number
serum3Count: number
perpCount: number
perpOoCount: number
tokenConditionalSwapCount: number
Returns Promise<MangoSignatureStatus>
account
Expand V2 Ix Parameters
group: Group
account: MangoAccount
tokenCount: number
serum3Count: number
perpCount: number
perpOoCount: number
tokenConditionalSwapCount: number
Returns Promise<TransactionInstruction>
admin
Perp Withdraw Fees Parameters
group: Group
perpMarket: PerpMarket
tokenAccountPk: PublicKey
Returns Promise<MangoSignatureStatus>
admin
Token Withdraw Fees Parameters
Returns Promise<MangoSignatureStatus>
alt
Extend Parameters
group: Group
addressLookupTable: PublicKey
index: number
pks: PublicKey[]
Returns Promise<MangoSignatureStatus>
alt
Set Parameters
group: Group
addressLookupTable: PublicKey
index: number
Returns Promise<MangoSignatureStatus>
build
Health Remaining Accounts - +
MangoClient | @blockworks-foundation/mango-v4 Class MangoClient
Hierarchy
- MangoClient
Index
Constructors
Properties
Accessors
Methods
- account
Buyback Fees With Mngo - account
Buyback Fees With Mngo Ix - account
Expand V2 - account
Expand V2 Ix - admin
Perp Withdraw Fees - admin
Token Withdraw Fees - alt
Extend - alt
Set - build
Health Remaining Accounts - close
Mango Account - create
Mango Account - edit
Mango Account - empty
And Close Mango Account - estimate
Prioritization Fee - expand
Mango Account - get
All Mango Accounts - get
Banks For Group - get
Group - get
Group For Creator - get
Groups For Creator - get
Ids - get
Mango Account - get
Mango Account For Owner - get
Mango Account From Ai - get
Mango Account From Pk - get
Mango Account With Slot - get
Mango Accounts For Delegate - get
Mango Accounts For Owner - get
Mint Info For Token Index - get
Mint Infos For Group - get
Stub Oracle - group
Close - group
Create - group
Edit - health
Region Begin Ix - health
Region End Ix - ix
Gate Set - liq
Token With Token - margin
Trade - modify
Perp Order - modify
Serum3 Order - perp
Cancel All Orders - perp
Cancel All Orders Ix - perp
Cancel Order - perp
Cancel Order By Client Order Id Ix - perp
Cancel Order Ix - perp
Close All - perp
Close Market - perp
Consume All Events - perp
Consume Events - perp
Consume Events Ix - perp
Create Market - perp
Deactivate Position - perp
Deactivate Position Ix - perp
Edit Market - perp
Force Close Position - perp
Get Markets - perp
Place Order - perp
Place Order Ix - perp
Place Order Pegged - perp
Place Order Pegged Ix - perp
Place Order Pegged V2 Ix - perp
Place Order V2 Ix - perp
Settle Fees - perp
Settle Fees Ix - perp
Settle Pnl - perp
Settle Pnl And Fees - perp
Settle Pnl Ix - perp
Update Funding Ix - send
And Confirm Transaction - send
And Confirm Transaction For Group - serum3
Cancel All Orders - serum3
Cancel All Orders Ix - serum3
Cancel Order - serum3
Cancel Order Ix - serum3
Close Open Orders - serum3
Close Open Orders Ix - serum3
Create Open Orders - serum3
Create Open Orders Ix - serum3
Edit Market - serum3
Get Markets - serum3
Liq Force Cancel Orders - serum3
Place Order - serum3
Place Order Ix - serum3
Register Market - serum3
Settle Funds - serum3
Settle Funds Ix - serum3
Settle Funds V2 Ix - serum3deregister
Market - settle
All - stub
Oracle Close - stub
Oracle Create - stub
Oracle Set - tcs
Stop Loss On Borrow - tcs
Stop Loss On Deposit - tcs
Take Profit On Borrow - tcs
Take Profit On Deposit - toggle
Mango Account Freeze - token
Conditional Swap Cancel - token
Conditional Swap Cancel All - token
Conditional Swap Create - token
Conditional Swap Create Raw - token
Conditional Swap Trigger - token
Deposit - token
Deposit Native - token
Deregister - token
Edit - token
Force Close Borrows With Token - token
Register - token
Register Trustless - token
Update Index And Rate - token
Update Index And Rate Ix - token
Withdraw - token
Withdraw Native - token
Withdraw Native Ix - connect
- connect
Default - connect
For Group Name
Constructors
constructor
Parameters
program: Program<MangoV4>
programId: PublicKey
cluster: Cluster
opts: MangoClientOptions = {}
Returns MangoClient
Properties
cluster
Private estimate
Fee Private ids
Source Private openbook
Fees To Dao opts
Private Optional post
Send Tx Callback Type declaration
Parameters
__namedParameters: Object
Returns void
Private prepended
Global Additional Instructions Private prioritization
Fee program
program
Id Private tx
Confirmation Commitment Accessors
connection
Returns Connection
wallet
Pk Returns PublicKey
Methods
account
Buyback Fees With Mngo Parameters
group: Group
mangoAccount: MangoAccount
Optional maxBuyback: number
Returns Promise<MangoSignatureStatus>
account
Buyback Fees With Mngo Ix Parameters
group: Group
mangoAccount: MangoAccount
Optional maxBuybackUsd: number
Returns Promise<TransactionInstruction>
account
Expand V2 Parameters
group: Group
account: MangoAccount
tokenCount: number
serum3Count: number
perpCount: number
perpOoCount: number
tokenConditionalSwapCount: number
Returns Promise<MangoSignatureStatus>
account
Expand V2 Ix Parameters
group: Group
account: MangoAccount
tokenCount: number
serum3Count: number
perpCount: number
perpOoCount: number
tokenConditionalSwapCount: number
Returns Promise<TransactionInstruction>
admin
Perp Withdraw Fees Parameters
group: Group
perpMarket: PerpMarket
tokenAccountPk: PublicKey
Returns Promise<MangoSignatureStatus>
admin
Token Withdraw Fees Parameters
Returns Promise<MangoSignatureStatus>
alt
Extend Parameters
group: Group
addressLookupTable: PublicKey
index: number
pks: PublicKey[]
Returns Promise<MangoSignatureStatus>
alt
Set Parameters
group: Group
addressLookupTable: PublicKey
index: number
Returns Promise<MangoSignatureStatus>
build
Health Remaining Accounts Builds health remaining accounts.
For single mango account it builds a list of PublicKeys which is compatbile with Fixed account retriever.
@@ -11,17 +11,17 @@ should always be compatible with Scanning account retriever.markets in which new positions might be opened
openOrdersForMarket: [Serum3Market, PublicKey][] = []
markets in which new positions might be opened
-
Returns PublicKey[]
close
Mango Account - +
Returns PublicKey[]
close
Mango Account Note: this ix doesn't settle liabs, reduce open positions, or withdraw tokens to wallet, it simply closes the account. To close successfully ensure all positions are closed, or use forceClose flag
-Parameters
group: Group
mangoAccount: MangoAccount
forceClose: boolean = false
Returns Promise<MangoSignatureStatus>
create
Mango Account Parameters
group: Group
Optional accountNumber: number
Optional name: string
Optional tokenCount: number
Optional serum3Count: number
Optional perpCount: number
Optional perpOoCount: number
Returns Promise<MangoSignatureStatus>
edit
Mango Account Parameters
group: Group
mangoAccount: MangoAccount
Optional name: string
Optional delegate: PublicKey
Optional temporaryDelegate: PublicKey
Optional delegateExpiry: number
Returns Promise<MangoSignatureStatus>
empty
And Close Mango Account Parameters
group: Group
mangoAccount: MangoAccount
Returns Promise<MangoSignatureStatus>
estimate
Prioritization Fee - +
Parameters
group: Group
mangoAccount: MangoAccount
forceClose: boolean = false
Returns Promise<MangoSignatureStatus>
create
Mango Account Parameters
group: Group
Optional accountNumber: number
Optional name: string
Optional tokenCount: number
Optional serum3Count: number
Optional perpCount: number
Optional perpOoCount: number
Returns Promise<MangoSignatureStatus>
edit
Mango Account Parameters
group: Group
mangoAccount: MangoAccount
Optional name: string
Optional delegate: PublicKey
Optional temporaryDelegate: PublicKey
Optional delegateExpiry: number
Returns Promise<MangoSignatureStatus>
empty
And Close Mango Account Parameters
group: Group
mangoAccount: MangoAccount
Returns Promise<MangoSignatureStatus>
estimate
Prioritization Fee Returns an estimate of a prioritization fee for a set of instructions.
The estimate is based on the median fees of writable accounts that will be involved in the transaction.
Parameters
ixs: TransactionInstruction[]
the instructions that make up the transaction
Returns Promise<number>
prioritizationFeeEstimate -- in microLamports
-
expand
Mango Account Parameters
group: Group
account: MangoAccount
tokenCount: number
serum3Count: number
perpCount: number
perpOoCount: number
Returns Promise<MangoSignatureStatus>
get
All Mango Accounts Parameters
group: Group
loadSerum3Oo: boolean = false
Returns Promise<MangoAccount[]>
get
Banks For Group get
Group Parameters
groupPk: PublicKey
Returns Promise<Group>
get
Group For Creator Parameters
creatorPk: PublicKey
groupNum: number
Returns Promise<Group>
get
Groups For Creator Parameters
creatorPk: PublicKey
Returns Promise<Group[]>
get
Ids Parameters
groupPk: PublicKey
Returns Promise<undefined | Id>
get
Mango Account Parameters
mangoAccountPk: PublicKey
loadSerum3Oo: boolean = false
Returns Promise<MangoAccount>
get
Mango Account For Owner Parameters
group: Group
ownerPk: PublicKey
accountNumber: number
loadSerum3Oo: boolean = false
Returns Promise<undefined | MangoAccount>
get
Mango Account From Ai Parameters
mangoAccountPk: PublicKey
ai: AccountInfo<Buffer>
Returns MangoAccount
Private get
Mango Account From Pk Parameters
mangoAccountPk: PublicKey
Returns Promise<MangoAccount>
get
Mango Account With Slot Parameters
mangoAccountPk: PublicKey
loadSerum3Oo: boolean = false
Returns Promise<undefined | { slot: number; value: MangoAccount }>
get
Mango Accounts For Delegate Parameters
group: Group
delegate: PublicKey
loadSerum3Oo: boolean = false
Returns Promise<MangoAccount[]>
get
Mango Accounts For Owner Parameters
group: Group
ownerPk: PublicKey
loadSerum3Oo: boolean = false
Returns Promise<MangoAccount[]>
get
Mint Info For Token Index Parameters
group: Group
tokenIndex: TokenIndex
Returns Promise<MintInfo[]>
get
Mint Infos For Group get
Stub Oracle Parameters
group: Group
Optional mintPk: PublicKey
Returns Promise<StubOracle[]>
group
Close Parameters
group: Group
Returns Promise<MangoSignatureStatus>
group
Create Parameters
groupNum: number
testing: boolean
version: number
insuranceMintPk: PublicKey
Returns Promise<MangoSignatureStatus>
group
Edit Parameters
group: Group
Optional admin: PublicKey
Optional fastListingAdmin: PublicKey
Optional securityAdmin: PublicKey
Optional testing: number
Optional version: number
Optional depositLimitQuote: BN
Optional feesPayWithMngo: boolean
Optional feesMngoBonusRate: number
Optional feesSwapMangoAccount: PublicKey
Optional feesMngoTokenIndex: TokenIndex
Optional feesExpiryInterval: BN
Returns Promise<MangoSignatureStatus>
health
Region Begin Ix Parameters
group: Group
account: MangoAccount
banks: Bank[] = []
perpMarkets: PerpMarket[] = []
Returns Promise<TransactionInstruction>
health
Region End Ix Parameters
group: Group
account: MangoAccount
banks: Bank[] = []
perpMarkets: PerpMarket[] = []
Returns Promise<TransactionInstruction>
ix
Gate Set Parameters
group: Group
ixGateParams: IxGateParams
Returns Promise<MangoSignatureStatus>
liq
Token With Token Parameters
group: Group
liqor: MangoAccount
liqee: MangoAccount
assetMintPk: PublicKey
liabMintPk: PublicKey
maxLiabTransfer: number
Returns Promise<MangoSignatureStatus>
margin
Trade Parameters
__namedParameters: { amountIn: number; flashLoanType: FlashLoanType; group: Group; inputMintPk: PublicKey; mangoAccount: MangoAccount; outputMintPk: PublicKey; userDefinedAlts: AddressLookupTableAccount[]; userDefinedInstructions: TransactionInstruction[] }
amount
In: number flash
Loan Type: FlashLoanType group: Group
input
Mint Pk: PublicKey mango
Account: MangoAccount output
Mint Pk: PublicKey user
Defined Alts: AddressLookupTableAccount[] user
Defined Instructions: TransactionInstruction[]
Returns Promise<MangoSignatureStatus>
modify
Perp Order Parameters
group: Group
mangoAccount: MangoAccount
perpMarketIndex: PerpMarketIndex
orderId: BN
side: PerpOrderSide
price: number
quantity: number
Optional maxQuoteQuantity: number
Optional clientOrderId: number
Optional orderType: PerpOrderType
Optional reduceOnly: boolean
Optional expiryTimestamp: number
Optional limit: number
Returns Promise<MangoSignatureStatus>
modify
Serum3 Order Parameters
group: Group
orderId: BN
mangoAccount: MangoAccount
externalMarketPk: PublicKey
side: Serum3Side
price: number
size: number
selfTradeBehavior: Serum3SelfTradeBehavior
orderType: Serum3OrderType
clientOrderId: number
limit: number
Returns Promise<MangoSignatureStatus>
perp
Cancel All Orders Parameters
group: Group
mangoAccount: MangoAccount
perpMarketIndex: PerpMarketIndex
limit: number
Returns Promise<MangoSignatureStatus>
perp
Cancel All Orders Ix Parameters
group: Group
mangoAccount: MangoAccount
perpMarketIndex: PerpMarketIndex
limit: number
Returns Promise<TransactionInstruction>
perp
Cancel Order Parameters
group: Group
mangoAccount: MangoAccount
perpMarketIndex: PerpMarketIndex
orderId: BN
Returns Promise<MangoSignatureStatus>
perp
Cancel Order By Client Order Id Ix Parameters
group: Group
mangoAccount: MangoAccount
perpMarketIndex: PerpMarketIndex
clientOrderId: BN
Returns Promise<TransactionInstruction>
perp
Cancel Order Ix Parameters
group: Group
mangoAccount: MangoAccount
perpMarketIndex: PerpMarketIndex
orderId: BN
Returns Promise<TransactionInstruction>
perp
Close All Parameters
group: Group
mangoAccount: MangoAccount
slippage: number = 0.01
Returns Promise<MangoSignatureStatus>
perp
Close Market Parameters
group: Group
perpMarketIndex: PerpMarketIndex
Returns Promise<MangoSignatureStatus>
perp
Consume All Events Parameters
group: Group
perpMarketIndex: PerpMarketIndex
Returns Promise<void>
perp
Consume Events Parameters
group: Group
perpMarketIndex: PerpMarketIndex
accounts: PublicKey[]
limit: number
Returns Promise<MangoSignatureStatus>
perp
Consume Events Ix Parameters
group: Group
perpMarketIndex: PerpMarketIndex
accounts: PublicKey[]
limit: number
Returns Promise<TransactionInstruction>
perp
Create Market Parameters
group: Group
oraclePk: PublicKey
perpMarketIndex: number
name: string
oracleConfig: OracleConfigParams
baseDecimals: number
quoteLotSize: number
baseLotSize: number
maintBaseAssetWeight: number
initBaseAssetWeight: number
maintBaseLiabWeight: number
initBaseLiabWeight: number
maintOverallAssetWeight: number
initOverallAssetWeight: number
baseLiquidationFee: number
makerFee: number
takerFee: number
feePenalty: number
minFunding: number
maxFunding: number
impactQuantity: number
groupInsuranceFund: boolean
settleFeeFlat: number
settleFeeAmountThreshold: number
settleFeeFractionLowHealth: number
settleTokenIndex: number
settlePnlLimitFactor: number
settlePnlLimitWindowSize: number
positivePnlLiquidationFee: number
Returns Promise<MangoSignatureStatus>
perp
Deactivate Position Parameters
group: Group
mangoAccount: MangoAccount
perpMarketIndex: PerpMarketIndex
Returns Promise<MangoSignatureStatus>
perp
Deactivate Position Ix Parameters
group: Group
mangoAccount: MangoAccount
perpMarketIndex: PerpMarketIndex
Returns Promise<TransactionInstruction>
perp
Edit Market Parameters
group: Group
perpMarketIndex: PerpMarketIndex
params: PerpEditParams
Returns Promise<MangoSignatureStatus>
perp
Force Close Position Parameters
group: Group
perpMarketIndex: PerpMarketIndex
accountA: MangoAccount
accountB: MangoAccount
Returns Promise<MangoSignatureStatus>
perp
Get Markets Parameters
group: Group
Returns Promise<PerpMarket[]>
perp
Place Order Parameters
group: Group
mangoAccount: MangoAccount
perpMarketIndex: PerpMarketIndex
side: PerpOrderSide
price: number
quantity: number
Optional maxQuoteQuantity: number
Optional clientOrderId: number
Optional orderType: PerpOrderType
Optional reduceOnly: boolean
Optional expiryTimestamp: number
Optional limit: number
Returns Promise<MangoSignatureStatus>
perp
Place Order Ix Parameters
group: Group
mangoAccount: MangoAccount
perpMarketIndex: PerpMarketIndex
side: PerpOrderSide
price: number
quantity: number
Optional maxQuoteQuantity: number
Optional clientOrderId: number
Optional orderType: PerpOrderType
Optional reduceOnly: boolean
Optional expiryTimestamp: number
Optional limit: number
Returns Promise<TransactionInstruction>
perp
Place Order Pegged Parameters
group: Group
mangoAccount: MangoAccount
perpMarketIndex: PerpMarketIndex
side: PerpOrderSide
priceOffset: number
quantity: number
Optional pegLimit: number
Optional maxQuoteQuantity: number
Optional clientOrderId: number
Optional orderType: PerpOrderType
Optional reduceOnly: boolean
Optional expiryTimestamp: number
Optional limit: number
Returns Promise<MangoSignatureStatus>
perp
Place Order Pegged Ix Parameters
group: Group
mangoAccount: MangoAccount
perpMarketIndex: PerpMarketIndex
side: PerpOrderSide
priceOffset: number
quantity: number
Optional pegLimit: number
Optional maxQuoteQuantity: number
Optional clientOrderId: number
Optional orderType: PerpOrderType
Optional reduceOnly: boolean
Optional expiryTimestamp: number
Optional limit: number
Returns Promise<TransactionInstruction>
perp
Place Order Pegged V2 Ix Parameters
group: Group
mangoAccount: MangoAccount
perpMarketIndex: PerpMarketIndex
side: PerpOrderSide
priceOffset: number
quantity: number
Optional pegLimit: number
Optional maxQuoteQuantity: number
Optional clientOrderId: number
Optional orderType: PerpOrderType
Optional selfTradeBehavior: PerpSelfTradeBehavior
Optional reduceOnly: boolean
Optional expiryTimestamp: number
Optional limit: number
Returns Promise<TransactionInstruction>
perp
Place Order V2 Ix Parameters
group: Group
mangoAccount: MangoAccount
perpMarketIndex: PerpMarketIndex
side: PerpOrderSide
price: number
quantity: number
Optional maxQuoteQuantity: number
Optional clientOrderId: number
Optional orderType: PerpOrderType
Optional selfTradeBehavior: PerpSelfTradeBehavior
Optional reduceOnly: boolean
Optional expiryTimestamp: number
Optional limit: number
Returns Promise<TransactionInstruction>
perp
Settle Fees Parameters
group: Group
account: MangoAccount
perpMarketIndex: PerpMarketIndex
Optional maxSettleAmount: number
Returns Promise<MangoSignatureStatus>
perp
Settle Fees Ix Parameters
group: Group
account: MangoAccount
perpMarketIndex: PerpMarketIndex
Optional maxSettleAmount: number
Returns Promise<TransactionInstruction>
perp
Settle Pnl Parameters
group: Group
profitableAccount: MangoAccount
unprofitableAccount: MangoAccount
settler: MangoAccount
perpMarketIndex: PerpMarketIndex
Returns Promise<MangoSignatureStatus>
perp
Settle Pnl And Fees Parameters
group: Group
profitableAccount: MangoAccount
unprofitableAccount: MangoAccount
accountToSettleFeesFor: MangoAccount
settler: MangoAccount
perpMarketIndex: PerpMarketIndex
Optional maxSettleAmount: number
Returns Promise<MangoSignatureStatus>
perp
Settle Pnl Ix Parameters
group: Group
profitableAccount: MangoAccount
unprofitableAccount: MangoAccount
settler: MangoAccount
perpMarketIndex: PerpMarketIndex
Returns Promise<TransactionInstruction>
perp
Update Funding Ix Parameters
group: Group
perpMarket: PerpMarket
Returns Promise<TransactionInstruction>
send
And Confirm Transaction Parameters
ixs: TransactionInstruction[]
opts: any = {}
Returns Promise<MangoSignatureStatus>
send
And Confirm Transaction For Group Parameters
group: Group
ixs: TransactionInstruction[]
opts: any = {}
Returns Promise<MangoSignatureStatus>
serum3
Cancel All Orders Parameters
group: Group
mangoAccount: MangoAccount
externalMarketPk: PublicKey
Optional limit: number
Returns Promise<MangoSignatureStatus>
serum3
Cancel All Orders Ix Parameters
group: Group
mangoAccount: MangoAccount
externalMarketPk: PublicKey
Optional limit: number
Returns Promise<TransactionInstruction>
serum3
Cancel Order Parameters
group: Group
mangoAccount: MangoAccount
externalMarketPk: PublicKey
side: Serum3Side
orderId: BN
Returns Promise<MangoSignatureStatus>
serum3
Cancel Order Ix Parameters
group: Group
mangoAccount: MangoAccount
externalMarketPk: PublicKey
side: Serum3Side
orderId: BN
Returns Promise<TransactionInstruction>
serum3
Close Open Orders Parameters
group: Group
mangoAccount: MangoAccount
externalMarketPk: PublicKey
Returns Promise<MangoSignatureStatus>
serum3
Close Open Orders Ix Parameters
group: Group
mangoAccount: MangoAccount
externalMarketPk: PublicKey
Returns Promise<TransactionInstruction>
serum3
Create Open Orders Parameters
group: Group
mangoAccount: MangoAccount
externalMarketPk: PublicKey
Returns Promise<MangoSignatureStatus>
serum3
Create Open Orders Ix Parameters
group: Group
mangoAccount: MangoAccount
externalMarketPk: PublicKey
Returns Promise<TransactionInstruction>
serum3
Edit Market Parameters
group: Group
serum3MarketIndex: MarketIndex
reduceOnly: null | boolean
forceClose: null | boolean
name: null | string
Returns Promise<MangoSignatureStatus>
serum3
Get Markets Parameters
group: Group
Optional baseTokenIndex: number
Optional quoteTokenIndex: number
Returns Promise<Serum3Market[]>
serum3
Liq Force Cancel Orders Parameters
group: Group
mangoAccount: MangoAccount
externalMarketPk: PublicKey
Optional limit: number
Returns Promise<MangoSignatureStatus>
serum3
Place Order Parameters
group: Group
mangoAccount: MangoAccount
externalMarketPk: PublicKey
side: Serum3Side
price: number
size: number
selfTradeBehavior: Serum3SelfTradeBehavior
orderType: Serum3OrderType
clientOrderId: number
limit: number
Returns Promise<MangoSignatureStatus>
serum3
Place Order Ix Parameters
group: Group
mangoAccount: MangoAccount
externalMarketPk: PublicKey
side: Serum3Side
price: number
size: number
selfTradeBehavior: Serum3SelfTradeBehavior
orderType: Serum3OrderType
clientOrderId: number
limit: number
Returns Promise<TransactionInstruction[]>
serum3
Register Market Parameters
group: Group
serum3MarketExternalPk: PublicKey
baseBank: Bank
quoteBank: Bank
marketIndex: number
name: string
Returns Promise<MangoSignatureStatus>
serum3
Settle Funds Parameters
group: Group
mangoAccount: MangoAccount
externalMarketPk: PublicKey
Returns Promise<MangoSignatureStatus>
serum3
Settle Funds Ix Parameters
group: Group
mangoAccount: MangoAccount
externalMarketPk: PublicKey
Returns Promise<TransactionInstruction>
serum3
Settle Funds V2 Ix Parameters
group: Group
mangoAccount: MangoAccount
externalMarketPk: PublicKey
Returns Promise<TransactionInstruction>
serum3deregister
Market Parameters
group: Group
externalMarketPk: PublicKey
Returns Promise<MangoSignatureStatus>
settle
All Parameters
client: MangoClient
group: Group
mangoAccount: MangoAccount
Optional allMangoAccounts: MangoAccount[]
Returns Promise<MangoSignatureStatus>
stub
Oracle Close Parameters
group: Group
oracle: PublicKey
Returns Promise<MangoSignatureStatus>
stub
Oracle Create Parameters
group: Group
mintPk: PublicKey
price: number
Returns Promise<MangoSignatureStatus>
stub
Oracle Set Parameters
group: Group
oraclePk: PublicKey
price: number
Returns Promise<MangoSignatureStatus>
tcs
Stop Loss On Borrow Parameters
group: Group
account: MangoAccount
sellBank: Bank
buyBank: Bank
thresholdPriceUi: number
thresholdPriceInSellPerBuyToken: boolean
maxBuyUi: null | number
pricePremium: null | number
allowMargin: null | boolean
expiryTimestamp: null | number
Returns Promise<MangoSignatureStatus>
tcs
Stop Loss On Deposit Parameters
group: Group
account: MangoAccount
sellBank: Bank
buyBank: Bank
thresholdPriceUi: number
thresholdPriceInSellPerBuyToken: boolean
maxSellUi: null | number
pricePremium: null | number
expiryTimestamp: null | number
Returns Promise<MangoSignatureStatus>
tcs
Take Profit On Borrow Parameters
group: Group
account: MangoAccount
sellBank: Bank
buyBank: Bank
thresholdPriceUi: number
thresholdPriceInSellPerBuyToken: boolean
maxBuyUi: null | number
pricePremium: null | number
allowMargin: null | boolean
expiryTimestamp: null | number
Returns Promise<MangoSignatureStatus>
tcs
Take Profit On Deposit Parameters
group: Group
account: MangoAccount
sellBank: Bank
buyBank: Bank
thresholdPriceUi: number
thresholdPriceInSellPerBuyToken: boolean
maxSellUi: null | number
pricePremium: null | number
expiryTimestamp: null | number
Returns Promise<MangoSignatureStatus>
toggle
Mango Account Freeze Parameters
group: Group
mangoAccount: MangoAccount
freeze: boolean
Returns Promise<MangoSignatureStatus>
token
Conditional Swap Cancel Parameters
group: Group
account: MangoAccount
tokenConditionalSwapId: BN
Returns Promise<MangoSignatureStatus>
token
Conditional Swap Cancel All Parameters
group: Group
account: MangoAccount
Returns Promise<MangoSignatureStatus>
token
Conditional Swap Create Parameters
group: Group
account: MangoAccount
sellBank: Bank
buyBank: Bank
lowerLimit: number
upperLimit: number
maxBuyUi: number
maxSellUi: number
tcsIntention: null | "TakeProfitOnDeposit" | "StopLossOnDeposit" | "TakeProfitOnBorrow" | "StopLossOnBorrow"
pricePremium: null | number
allowCreatingDeposits: boolean
allowCreatingBorrows: boolean
expiryTimestamp: null | number
displayPriceInSellTokenPerBuyToken: boolean
Returns Promise<MangoSignatureStatus>
token
Conditional Swap Create Raw Parameters
group: Group
account: MangoAccount
buyMintPk: PublicKey
sellMintPk: PublicKey
maxBuy: BN
maxSell: BN
expiryTimestamp: null | number
priceLowerLimit: number
priceUpperLimit: number
pricePremiumRate: number
allowCreatingDeposits: boolean
allowCreatingBorrows: boolean
priceDisplayStyle: TokenConditionalSwapDisplayPriceStyle
intention: TokenConditionalSwapIntention
Returns Promise<MangoSignatureStatus>
token
Conditional Swap Trigger Parameters
group: Group
liqee: MangoAccount
liqor: MangoAccount
tokenConditionalSwapId: BN
maxBuyTokenToLiqee: number
maxSellTokenToLiqor: number
Returns Promise<MangoSignatureStatus>
token
Deposit Parameters
group: Group
mangoAccount: MangoAccount
mintPk: PublicKey
amount: number
reduceOnly: boolean = false
Returns Promise<MangoSignatureStatus>
token
Deposit Native Parameters
group: Group
mangoAccount: MangoAccount
mintPk: PublicKey
nativeAmount: BN
reduceOnly: boolean = false
Returns Promise<MangoSignatureStatus>
token
Deregister Parameters
group: Group
mintPk: PublicKey
Returns Promise<MangoSignatureStatus>
token
Edit Parameters
group: Group
mintPk: PublicKey
params: TokenEditParams
Returns Promise<MangoSignatureStatus>
token
Force Close Borrows With Token Parameters
group: Group
liqor: MangoAccount
liqee: MangoAccount
assetTokenIndex: TokenIndex
liabTokenIndex: TokenIndex
Optional maxLiabTransfer: number
Returns Promise<MangoSignatureStatus>
token
Register Parameters
group: Group
mintPk: PublicKey
oraclePk: PublicKey
tokenIndex: number
name: string
params: TokenRegisterParams
Returns Promise<MangoSignatureStatus>
token
Register Trustless Parameters
group: Group
mintPk: PublicKey
oraclePk: PublicKey
tokenIndex: number
name: string
Returns Promise<MangoSignatureStatus>
token
Update Index And Rate Parameters
group: Group
mintPk: PublicKey
Returns Promise<MangoSignatureStatus>
token
Update Index And Rate Ix Parameters
group: Group
mintPk: PublicKey
Returns Promise<TransactionInstruction>
token
Withdraw Parameters
group: Group
mangoAccount: MangoAccount
mintPk: PublicKey
amount: number
allowBorrow: boolean
Returns Promise<MangoSignatureStatus>
token
Withdraw Native Parameters
group: Group
mangoAccount: MangoAccount
mintPk: PublicKey
nativeAmount: BN
allowBorrow: boolean
Returns Promise<MangoSignatureStatus>
token
Withdraw Native Ix Parameters
group: Group
mangoAccount: MangoAccount
mintPk: PublicKey
nativeAmount: BN
allowBorrow: boolean
Returns Promise<TransactionInstruction[]>
Static connect
Parameters
provider: default
cluster: Cluster
programId: PublicKey
Optional opts: MangoClientOptions
Returns MangoClient
Static connect
Default - +
expand
Mango Account Parameters
group: Group
account: MangoAccount
tokenCount: number
serum3Count: number
perpCount: number
perpOoCount: number
Returns Promise<MangoSignatureStatus>
get
All Mango Accounts Parameters
group: Group
loadSerum3Oo: boolean = false
Returns Promise<MangoAccount[]>
get
Banks For Group get
Group Parameters
groupPk: PublicKey
Returns Promise<Group>
get
Group For Creator Parameters
creatorPk: PublicKey
groupNum: number
Returns Promise<Group>
get
Groups For Creator Parameters
creatorPk: PublicKey
Returns Promise<Group[]>
get
Ids Parameters
groupPk: PublicKey
Returns Promise<undefined | Id>
get
Mango Account Parameters
mangoAccountPk: PublicKey
loadSerum3Oo: boolean = false
Returns Promise<MangoAccount>
get
Mango Account For Owner Parameters
group: Group
ownerPk: PublicKey
accountNumber: number
loadSerum3Oo: boolean = false
Returns Promise<undefined | MangoAccount>
get
Mango Account From Ai Parameters
mangoAccountPk: PublicKey
ai: AccountInfo<Buffer>
Returns MangoAccount
Private get
Mango Account From Pk Parameters
mangoAccountPk: PublicKey
Returns Promise<MangoAccount>
get
Mango Account With Slot Parameters
mangoAccountPk: PublicKey
loadSerum3Oo: boolean = false
Returns Promise<undefined | { slot: number; value: MangoAccount }>
get
Mango Accounts For Delegate Parameters
group: Group
delegate: PublicKey
loadSerum3Oo: boolean = false
Returns Promise<MangoAccount[]>
get
Mango Accounts For Owner Parameters
group: Group
ownerPk: PublicKey
loadSerum3Oo: boolean = false
Returns Promise<MangoAccount[]>
get
Mint Info For Token Index Parameters
group: Group
tokenIndex: TokenIndex
Returns Promise<MintInfo[]>
get
Mint Infos For Group get
Stub Oracle Parameters
group: Group
Optional mintPk: PublicKey
Returns Promise<StubOracle[]>
group
Close Parameters
group: Group
Returns Promise<MangoSignatureStatus>
group
Create Parameters
groupNum: number
testing: boolean
version: number
insuranceMintPk: PublicKey
Returns Promise<MangoSignatureStatus>
group
Edit Parameters
group: Group
Optional admin: PublicKey
Optional fastListingAdmin: PublicKey
Optional securityAdmin: PublicKey
Optional testing: number
Optional version: number
Optional depositLimitQuote: BN
Optional feesPayWithMngo: boolean
Optional feesMngoBonusRate: number
Optional feesSwapMangoAccount: PublicKey
Optional feesMngoTokenIndex: TokenIndex
Optional feesExpiryInterval: BN
Returns Promise<MangoSignatureStatus>
health
Region Begin Ix Parameters
group: Group
account: MangoAccount
banks: Bank[] = []
perpMarkets: PerpMarket[] = []
Returns Promise<TransactionInstruction>
health
Region End Ix Parameters
group: Group
account: MangoAccount
banks: Bank[] = []
perpMarkets: PerpMarket[] = []
Returns Promise<TransactionInstruction>
ix
Gate Set Parameters
group: Group
ixGateParams: IxGateParams
Returns Promise<MangoSignatureStatus>
liq
Token With Token Parameters
group: Group
liqor: MangoAccount
liqee: MangoAccount
assetMintPk: PublicKey
liabMintPk: PublicKey
maxLiabTransfer: number
Returns Promise<MangoSignatureStatus>
margin
Trade Parameters
__namedParameters: { amountIn: number; flashLoanType: FlashLoanType; group: Group; inputMintPk: PublicKey; mangoAccount: MangoAccount; outputMintPk: PublicKey; userDefinedAlts: AddressLookupTableAccount[]; userDefinedInstructions: TransactionInstruction[] }
amount
In: number flash
Loan Type: FlashLoanType group: Group
input
Mint Pk: PublicKey mango
Account: MangoAccount output
Mint Pk: PublicKey user
Defined Alts: AddressLookupTableAccount[] user
Defined Instructions: TransactionInstruction[]
Returns Promise<MangoSignatureStatus>
modify
Perp Order Parameters
group: Group
mangoAccount: MangoAccount
perpMarketIndex: PerpMarketIndex
orderId: BN
side: PerpOrderSide
price: number
quantity: number
Optional maxQuoteQuantity: number
Optional clientOrderId: number
Optional orderType: PerpOrderType
Optional reduceOnly: boolean
Optional expiryTimestamp: number
Optional limit: number
Returns Promise<MangoSignatureStatus>
modify
Serum3 Order Parameters
group: Group
orderId: BN
mangoAccount: MangoAccount
externalMarketPk: PublicKey
side: Serum3Side
price: number
size: number
selfTradeBehavior: Serum3SelfTradeBehavior
orderType: Serum3OrderType
clientOrderId: number
limit: number
Returns Promise<MangoSignatureStatus>
perp
Cancel All Orders Parameters
group: Group
mangoAccount: MangoAccount
perpMarketIndex: PerpMarketIndex
limit: number
Returns Promise<MangoSignatureStatus>
perp
Cancel All Orders Ix Parameters
group: Group
mangoAccount: MangoAccount
perpMarketIndex: PerpMarketIndex
limit: number
Returns Promise<TransactionInstruction>
perp
Cancel Order Parameters
group: Group
mangoAccount: MangoAccount
perpMarketIndex: PerpMarketIndex
orderId: BN
Returns Promise<MangoSignatureStatus>
perp
Cancel Order By Client Order Id Ix Parameters
group: Group
mangoAccount: MangoAccount
perpMarketIndex: PerpMarketIndex
clientOrderId: BN
Returns Promise<TransactionInstruction>
perp
Cancel Order Ix Parameters
group: Group
mangoAccount: MangoAccount
perpMarketIndex: PerpMarketIndex
orderId: BN
Returns Promise<TransactionInstruction>
perp
Close All Parameters
group: Group
mangoAccount: MangoAccount
slippage: number = 0.01
Returns Promise<MangoSignatureStatus>
perp
Close Market Parameters
group: Group
perpMarketIndex: PerpMarketIndex
Returns Promise<MangoSignatureStatus>
perp
Consume All Events Parameters
group: Group
perpMarketIndex: PerpMarketIndex
Returns Promise<void>
perp
Consume Events Parameters
group: Group
perpMarketIndex: PerpMarketIndex
accounts: PublicKey[]
limit: number
Returns Promise<MangoSignatureStatus>
perp
Consume Events Ix Parameters
group: Group
perpMarketIndex: PerpMarketIndex
accounts: PublicKey[]
limit: number
Returns Promise<TransactionInstruction>
perp
Create Market Parameters
group: Group
oraclePk: PublicKey
perpMarketIndex: number
name: string
oracleConfig: OracleConfigParams
baseDecimals: number
quoteLotSize: number
baseLotSize: number
maintBaseAssetWeight: number
initBaseAssetWeight: number
maintBaseLiabWeight: number
initBaseLiabWeight: number
maintOverallAssetWeight: number
initOverallAssetWeight: number
baseLiquidationFee: number
makerFee: number
takerFee: number
feePenalty: number
minFunding: number
maxFunding: number
impactQuantity: number
groupInsuranceFund: boolean
settleFeeFlat: number
settleFeeAmountThreshold: number
settleFeeFractionLowHealth: number
settleTokenIndex: number
settlePnlLimitFactor: number
settlePnlLimitWindowSize: number
positivePnlLiquidationFee: number
Returns Promise<MangoSignatureStatus>
perp
Deactivate Position Parameters
group: Group
mangoAccount: MangoAccount
perpMarketIndex: PerpMarketIndex
Returns Promise<MangoSignatureStatus>
perp
Deactivate Position Ix Parameters
group: Group
mangoAccount: MangoAccount
perpMarketIndex: PerpMarketIndex
Returns Promise<TransactionInstruction>
perp
Edit Market Parameters
group: Group
perpMarketIndex: PerpMarketIndex
params: PerpEditParams
Returns Promise<MangoSignatureStatus>
perp
Force Close Position Parameters
group: Group
perpMarketIndex: PerpMarketIndex
accountA: MangoAccount
accountB: MangoAccount
Returns Promise<MangoSignatureStatus>
perp
Get Markets Parameters
group: Group
Returns Promise<PerpMarket[]>
perp
Place Order Parameters
group: Group
mangoAccount: MangoAccount
perpMarketIndex: PerpMarketIndex
side: PerpOrderSide
price: number
quantity: number
Optional maxQuoteQuantity: number
Optional clientOrderId: number
Optional orderType: PerpOrderType
Optional reduceOnly: boolean
Optional expiryTimestamp: number
Optional limit: number
Returns Promise<MangoSignatureStatus>
perp
Place Order Ix Parameters
group: Group
mangoAccount: MangoAccount
perpMarketIndex: PerpMarketIndex
side: PerpOrderSide
price: number
quantity: number
Optional maxQuoteQuantity: number
Optional clientOrderId: number
Optional orderType: PerpOrderType
Optional reduceOnly: boolean
Optional expiryTimestamp: number
Optional limit: number
Returns Promise<TransactionInstruction>
perp
Place Order Pegged Parameters
group: Group
mangoAccount: MangoAccount
perpMarketIndex: PerpMarketIndex
side: PerpOrderSide
priceOffset: number
quantity: number
Optional pegLimit: number
Optional maxQuoteQuantity: number
Optional clientOrderId: number
Optional orderType: PerpOrderType
Optional reduceOnly: boolean
Optional expiryTimestamp: number
Optional limit: number
Returns Promise<MangoSignatureStatus>
perp
Place Order Pegged Ix Parameters
group: Group
mangoAccount: MangoAccount
perpMarketIndex: PerpMarketIndex
side: PerpOrderSide
priceOffset: number
quantity: number
Optional pegLimit: number
Optional maxQuoteQuantity: number
Optional clientOrderId: number
Optional orderType: PerpOrderType
Optional reduceOnly: boolean
Optional expiryTimestamp: number
Optional limit: number
Returns Promise<TransactionInstruction>
perp
Place Order Pegged V2 Ix Parameters
group: Group
mangoAccount: MangoAccount
perpMarketIndex: PerpMarketIndex
side: PerpOrderSide
priceOffset: number
quantity: number
Optional pegLimit: number
Optional maxQuoteQuantity: number
Optional clientOrderId: number
Optional orderType: PerpOrderType
Optional selfTradeBehavior: PerpSelfTradeBehavior
Optional reduceOnly: boolean
Optional expiryTimestamp: number
Optional limit: number
Returns Promise<TransactionInstruction>
perp
Place Order V2 Ix Parameters
group: Group
mangoAccount: MangoAccount
perpMarketIndex: PerpMarketIndex
side: PerpOrderSide
price: number
quantity: number
Optional maxQuoteQuantity: number
Optional clientOrderId: number
Optional orderType: PerpOrderType
Optional selfTradeBehavior: PerpSelfTradeBehavior
Optional reduceOnly: boolean
Optional expiryTimestamp: number
Optional limit: number
Returns Promise<TransactionInstruction>
perp
Settle Fees Parameters
group: Group
account: MangoAccount
perpMarketIndex: PerpMarketIndex
Optional maxSettleAmount: number
Returns Promise<MangoSignatureStatus>
perp
Settle Fees Ix Parameters
group: Group
account: MangoAccount
perpMarketIndex: PerpMarketIndex
Optional maxSettleAmount: number
Returns Promise<TransactionInstruction>
perp
Settle Pnl Parameters
group: Group
profitableAccount: MangoAccount
unprofitableAccount: MangoAccount
settler: MangoAccount
perpMarketIndex: PerpMarketIndex
Returns Promise<MangoSignatureStatus>
perp
Settle Pnl And Fees Parameters
group: Group
profitableAccount: MangoAccount
unprofitableAccount: MangoAccount
accountToSettleFeesFor: MangoAccount
settler: MangoAccount
perpMarketIndex: PerpMarketIndex
Optional maxSettleAmount: number
Returns Promise<MangoSignatureStatus>
perp
Settle Pnl Ix Parameters
group: Group
profitableAccount: MangoAccount
unprofitableAccount: MangoAccount
settler: MangoAccount
perpMarketIndex: PerpMarketIndex
Returns Promise<TransactionInstruction>
perp
Update Funding Ix Parameters
group: Group
perpMarket: PerpMarket
Returns Promise<TransactionInstruction>
send
And Confirm Transaction Parameters
ixs: TransactionInstruction[]
opts: any = {}
Returns Promise<MangoSignatureStatus>
send
And Confirm Transaction For Group Parameters
group: Group
ixs: TransactionInstruction[]
opts: any = {}
Returns Promise<MangoSignatureStatus>
serum3
Cancel All Orders Parameters
group: Group
mangoAccount: MangoAccount
externalMarketPk: PublicKey
Optional limit: number
Returns Promise<MangoSignatureStatus>
serum3
Cancel All Orders Ix Parameters
group: Group
mangoAccount: MangoAccount
externalMarketPk: PublicKey
Optional limit: number
Returns Promise<TransactionInstruction>
serum3
Cancel Order Parameters
group: Group
mangoAccount: MangoAccount
externalMarketPk: PublicKey
side: Serum3Side
orderId: BN
Returns Promise<MangoSignatureStatus>
serum3
Cancel Order Ix Parameters
group: Group
mangoAccount: MangoAccount
externalMarketPk: PublicKey
side: Serum3Side
orderId: BN
Returns Promise<TransactionInstruction>
serum3
Close Open Orders Parameters
group: Group
mangoAccount: MangoAccount
externalMarketPk: PublicKey
Returns Promise<MangoSignatureStatus>
serum3
Close Open Orders Ix Parameters
group: Group
mangoAccount: MangoAccount
externalMarketPk: PublicKey
Returns Promise<TransactionInstruction>
serum3
Create Open Orders Parameters
group: Group
mangoAccount: MangoAccount
externalMarketPk: PublicKey
Returns Promise<MangoSignatureStatus>
serum3
Create Open Orders Ix Parameters
group: Group
mangoAccount: MangoAccount
externalMarketPk: PublicKey
Returns Promise<TransactionInstruction>
serum3
Edit Market Parameters
group: Group
serum3MarketIndex: MarketIndex
reduceOnly: null | boolean
forceClose: null | boolean
name: null | string
Returns Promise<MangoSignatureStatus>
serum3
Get Markets Parameters
group: Group
Optional baseTokenIndex: number
Optional quoteTokenIndex: number
Returns Promise<Serum3Market[]>
serum3
Liq Force Cancel Orders Parameters
group: Group
mangoAccount: MangoAccount
externalMarketPk: PublicKey
Optional limit: number
Returns Promise<MangoSignatureStatus>
serum3
Place Order Parameters
group: Group
mangoAccount: MangoAccount
externalMarketPk: PublicKey
side: Serum3Side
price: number
size: number
selfTradeBehavior: Serum3SelfTradeBehavior
orderType: Serum3OrderType
clientOrderId: number
limit: number
Returns Promise<MangoSignatureStatus>
serum3
Place Order Ix Parameters
group: Group
mangoAccount: MangoAccount
externalMarketPk: PublicKey
side: Serum3Side
price: number
size: number
selfTradeBehavior: Serum3SelfTradeBehavior
orderType: Serum3OrderType
clientOrderId: number
limit: number
Returns Promise<TransactionInstruction[]>
serum3
Register Market Parameters
group: Group
serum3MarketExternalPk: PublicKey
baseBank: Bank
quoteBank: Bank
marketIndex: number
name: string
Returns Promise<MangoSignatureStatus>
serum3
Settle Funds Parameters
group: Group
mangoAccount: MangoAccount
externalMarketPk: PublicKey
Returns Promise<MangoSignatureStatus>
serum3
Settle Funds Ix Parameters
group: Group
mangoAccount: MangoAccount
externalMarketPk: PublicKey
Returns Promise<TransactionInstruction>
serum3
Settle Funds V2 Ix Parameters
group: Group
mangoAccount: MangoAccount
externalMarketPk: PublicKey
Returns Promise<TransactionInstruction>
serum3deregister
Market Parameters
group: Group
externalMarketPk: PublicKey
Returns Promise<MangoSignatureStatus>
settle
All Parameters
client: MangoClient
group: Group
mangoAccount: MangoAccount
Optional allMangoAccounts: MangoAccount[]
Returns Promise<MangoSignatureStatus>
stub
Oracle Close Parameters
group: Group
oracle: PublicKey
Returns Promise<MangoSignatureStatus>
stub
Oracle Create Parameters
group: Group
mintPk: PublicKey
price: number
Returns Promise<MangoSignatureStatus>
stub
Oracle Set Parameters
group: Group
oraclePk: PublicKey
price: number
Returns Promise<MangoSignatureStatus>
tcs
Stop Loss On Borrow Parameters
group: Group
account: MangoAccount
sellBank: Bank
buyBank: Bank
thresholdPriceUi: number
thresholdPriceInSellPerBuyToken: boolean
maxBuyUi: null | number
pricePremium: null | number
allowMargin: null | boolean
expiryTimestamp: null | number
Returns Promise<MangoSignatureStatus>
tcs
Stop Loss On Deposit Parameters
group: Group
account: MangoAccount
sellBank: Bank
buyBank: Bank
thresholdPriceUi: number
thresholdPriceInSellPerBuyToken: boolean
maxSellUi: null | number
pricePremium: null | number
expiryTimestamp: null | number
Returns Promise<MangoSignatureStatus>
tcs
Take Profit On Borrow Parameters
group: Group
account: MangoAccount
sellBank: Bank
buyBank: Bank
thresholdPriceUi: number
thresholdPriceInSellPerBuyToken: boolean
maxBuyUi: null | number
pricePremium: null | number
allowMargin: null | boolean
expiryTimestamp: null | number
Returns Promise<MangoSignatureStatus>
tcs
Take Profit On Deposit Parameters
group: Group
account: MangoAccount
sellBank: Bank
buyBank: Bank
thresholdPriceUi: number
thresholdPriceInSellPerBuyToken: boolean
maxSellUi: null | number
pricePremium: null | number
expiryTimestamp: null | number
Returns Promise<MangoSignatureStatus>
toggle
Mango Account Freeze Parameters
group: Group
mangoAccount: MangoAccount
freeze: boolean
Returns Promise<MangoSignatureStatus>
token
Conditional Swap Cancel Parameters
group: Group
account: MangoAccount
tokenConditionalSwapId: BN
Returns Promise<MangoSignatureStatus>
token
Conditional Swap Cancel All Parameters
group: Group
account: MangoAccount
Returns Promise<MangoSignatureStatus>
token
Conditional Swap Create Parameters
group: Group
account: MangoAccount
sellBank: Bank
buyBank: Bank
lowerLimit: number
upperLimit: number
maxBuyUi: number
maxSellUi: number
tcsIntention: null | "TakeProfitOnDeposit" | "StopLossOnDeposit" | "TakeProfitOnBorrow" | "StopLossOnBorrow"
pricePremium: null | number
allowCreatingDeposits: boolean
allowCreatingBorrows: boolean
expiryTimestamp: null | number
displayPriceInSellTokenPerBuyToken: boolean
Returns Promise<MangoSignatureStatus>
token
Conditional Swap Create Raw Parameters
group: Group
account: MangoAccount
buyMintPk: PublicKey
sellMintPk: PublicKey
maxBuy: BN
maxSell: BN
expiryTimestamp: null | number
priceLowerLimit: number
priceUpperLimit: number
pricePremiumRate: number
allowCreatingDeposits: boolean
allowCreatingBorrows: boolean
priceDisplayStyle: TokenConditionalSwapDisplayPriceStyle
intention: TokenConditionalSwapIntention
Returns Promise<MangoSignatureStatus>
token
Conditional Swap Trigger Parameters
group: Group
liqee: MangoAccount
liqor: MangoAccount
tokenConditionalSwapId: BN
maxBuyTokenToLiqee: number
maxSellTokenToLiqor: number
Returns Promise<MangoSignatureStatus>
token
Deposit Parameters
group: Group
mangoAccount: MangoAccount
mintPk: PublicKey
amount: number
reduceOnly: boolean = false
Returns Promise<MangoSignatureStatus>
token
Deposit Native Parameters
group: Group
mangoAccount: MangoAccount
mintPk: PublicKey
nativeAmount: BN
reduceOnly: boolean = false
Returns Promise<MangoSignatureStatus>
token
Deregister Parameters
group: Group
mintPk: PublicKey
Returns Promise<MangoSignatureStatus>
token
Edit Parameters
group: Group
mintPk: PublicKey
params: TokenEditParams
Returns Promise<MangoSignatureStatus>
token
Force Close Borrows With Token Parameters
group: Group
liqor: MangoAccount
liqee: MangoAccount
assetTokenIndex: TokenIndex
liabTokenIndex: TokenIndex
Optional maxLiabTransfer: number
Returns Promise<MangoSignatureStatus>
token
Register Parameters
group: Group
mintPk: PublicKey
oraclePk: PublicKey
tokenIndex: number
name: string
params: TokenRegisterParams
Returns Promise<MangoSignatureStatus>
token
Register Trustless Parameters
group: Group
mintPk: PublicKey
oraclePk: PublicKey
tokenIndex: number
name: string
Returns Promise<MangoSignatureStatus>
token
Update Index And Rate Parameters
group: Group
mintPk: PublicKey
Returns Promise<MangoSignatureStatus>
token
Update Index And Rate Ix Parameters
group: Group
mintPk: PublicKey
Returns Promise<TransactionInstruction>
token
Withdraw Parameters
group: Group
mangoAccount: MangoAccount
mintPk: PublicKey
amount: number
allowBorrow: boolean
Returns Promise<MangoSignatureStatus>
token
Withdraw Native Parameters
group: Group
mangoAccount: MangoAccount
mintPk: PublicKey
nativeAmount: BN
allowBorrow: boolean
Returns Promise<MangoSignatureStatus>
token
Withdraw Native Ix Parameters
group: Group
mangoAccount: MangoAccount
mintPk: PublicKey
nativeAmount: BN
allowBorrow: boolean
Returns Promise<TransactionInstruction[]>
Static connect
Parameters
provider: default
cluster: Cluster
programId: PublicKey
Optional opts: MangoClientOptions
Returns MangoClient
Static connect
Default Connect with defaults,
- random ephemeral keypair, @@ -29,4 +29,4 @@ use forceClose flag
- connects to mainnet-beta
- uses well known program Id
Parameters
clusterUrl: string
Returns MangoClient
Static connect
For Group Name Parameters
provider: default
groupName: string
Returns MangoClient
\ No newline at end of file +Generated using TypeDoc
Parameters
clusterUrl: string
Returns MangoClient
Static connect
For Group Name Parameters
provider: default
groupName: string
Returns MangoClient
\ No newline at end of file diff --git a/ts/client/classes/MintInfo.html b/ts/client/classes/MintInfo.html index 33f025a42..820e6d723 100644 --- a/ts/client/classes/MintInfo.html +++ b/ts/client/classes/MintInfo.html @@ -1 +1 @@ -Generated using TypeDoc
MintInfo | @blockworks-foundation/mango-v4 Class MintInfo
Hierarchy
- MintInfo
Index
Constructors
constructor
Parameters
publicKey: PublicKey
group: PublicKey
tokenIndex: TokenIndex
mint: PublicKey
banks: PublicKey[]
vaults: PublicKey[]
oracle: PublicKey
registrationTime: BN
groupInsuranceFund: boolean
Returns MintInfo
Properties
banks
group
group
Insurance Fund mint
oracle
public
Key registration
Time token
Index vaults
Methods
first
Bank Returns PublicKey
first
Vault Returns PublicKey
to
String Returns string
Static from
Parameters
publicKey: PublicKey
obj: { banks: PublicKey[]; group: PublicKey; groupInsuranceFund: number; mint: PublicKey; oracle: PublicKey; registrationTime: BN; tokenIndex: number; vaults: PublicKey[] }
banks: PublicKey[]
group: PublicKey
group
Insurance Fund: number mint: PublicKey
oracle: PublicKey
registration
Time: BN token
Index: number vaults: PublicKey[]
Returns MintInfo
\ No newline at end of file +Generated using TypeDoc
MintInfo | @blockworks-foundation/mango-v4 Class MintInfo
Hierarchy
- MintInfo
Index
Constructors
constructor
Parameters
publicKey: PublicKey
group: PublicKey
tokenIndex: TokenIndex
mint: PublicKey
banks: PublicKey[]
vaults: PublicKey[]
oracle: PublicKey
registrationTime: BN
groupInsuranceFund: boolean
Returns MintInfo
Properties
banks
group
group
Insurance Fund mint
oracle
public
Key registration
Time token
Index vaults
Methods
first
Bank Returns PublicKey
first
Vault Returns PublicKey
to
String Returns string
Static from
Parameters
publicKey: PublicKey
obj: { banks: PublicKey[]; group: PublicKey; groupInsuranceFund: number; mint: PublicKey; oracle: PublicKey; registrationTime: BN; tokenIndex: number; vaults: PublicKey[] }
banks: PublicKey[]
group: PublicKey
group
Insurance Fund: number mint: PublicKey
oracle: PublicKey
registration
Time: BN token
Index: number vaults: PublicKey[]
Returns MintInfo
\ No newline at end of file diff --git a/ts/client/classes/OracleConfigParams.html b/ts/client/classes/OracleConfigParams.html index bf79dc581..e88cbe011 100644 --- a/ts/client/classes/OracleConfigParams.html +++ b/ts/client/classes/OracleConfigParams.html @@ -1 +1 @@ -Generated using TypeDoc
OracleConfigParams | @blockworks-foundation/mango-v4 Class OracleConfigParams
Hierarchy
- OracleConfigParams
Index
Constructors
Properties
Constructors
constructor
Returns OracleConfigParams
Properties
conf
Filter max
Staleness Slots \ No newline at end of file +Generated using TypeDoc
OracleConfigParams | @blockworks-foundation/mango-v4 Class OracleConfigParams
Hierarchy
- OracleConfigParams
Index
Constructors
Properties
Constructors
constructor
Returns OracleConfigParams
Properties
conf
Filter max
Staleness Slots \ No newline at end of file diff --git a/ts/client/classes/PerpEventQueue.html b/ts/client/classes/PerpEventQueue.html index db8ac18af..5ac4c0738 100644 --- a/ts/client/classes/PerpEventQueue.html +++ b/ts/client/classes/PerpEventQueue.html @@ -1 +1 @@ -Generated using TypeDoc
PerpEventQueue | @blockworks-foundation/mango-v4 Class PerpEventQueue
Hierarchy
- PerpEventQueue
Index
Constructors
Properties
Methods
Constructors
constructor
Parameters
client: MangoClient
header: { count: number; head: number; seqNum: BN }
count: number
head: number
seq
Num: BN
buf: any
Returns PerpEventQueue
Properties
count
head
raw
Events seq
Num Static FILL_
EVENT_ TYPE Static LIQUIDATE_
EVENT_ TYPE Static OUT_
EVENT_ TYPE Methods
events
Since Parameters
Optional lastSeqNum: BN
Returns (FillEvent | OutEvent | LiquidateEvent)[]
get
Unconsumed Events Returns (FillEvent | OutEvent | LiquidateEvent)[]
\ No newline at end of file +Generated using TypeDoc
PerpEventQueue | @blockworks-foundation/mango-v4 Class PerpEventQueue
Hierarchy
- PerpEventQueue
Index
Constructors
Properties
Methods
Constructors
constructor
Parameters
client: MangoClient
header: { count: number; head: number; seqNum: BN }
count: number
head: number
seq
Num: BN
buf: any
Returns PerpEventQueue
Properties
count
head
raw
Events seq
Num Static FILL_
EVENT_ TYPE Static LIQUIDATE_
EVENT_ TYPE Static OUT_
EVENT_ TYPE Methods
events
Since Parameters
Optional lastSeqNum: BN
Returns (FillEvent | OutEvent | LiquidateEvent)[]
get
Unconsumed Events Returns (FillEvent | OutEvent | LiquidateEvent)[]
\ No newline at end of file diff --git a/ts/client/classes/PerpMarket.html b/ts/client/classes/PerpMarket.html index 969653416..a0d401dd6 100644 --- a/ts/client/classes/PerpMarket.html +++ b/ts/client/classes/PerpMarket.html @@ -1,12 +1,12 @@ -Generated using TypeDoc
PerpMarket | @blockworks-foundation/mango-v4 Class PerpMarket
Hierarchy
- PerpMarket
Index
Constructors
Properties
- _asks
- _bids
- _oracle
Last Updated Slot - _oracle
Provider - _price
- _ui
Price - asks
- base
Decimals - base
Liquidation Fee - base
Lot Size - base
Lots To Ui Converter - bids
- event
Queue - fee
Penalty - fees
Accrued - fees
Settled - force
Close - funding
Last Updated - group
- group
Insurance Fund - impact
Quantity - init
Base Asset Weight - init
Base Liab Weight - init
Overall Asset Weight - long
Funding - maint
Base Asset Weight - maint
Base Liab Weight - maint
Overall Asset Weight - maker
Fee - max
Funding - min
Funding - name
- open
Interest - oracle
- oracle
Config - perp
Market Index - positive
Pnl Liquidation Fee - price
Lots To Ui Converter - public
Key - quote
Lot Size - quote
Lots To Ui Converter - reduce
Only - registration
Time - seq
Num - settle
Fee Amount Threshold - settle
Fee Flat - settle
Fee Fraction Low Health - settle
Pnl Limit Factor - settle
Pnl Limit Window Size Ts - settle
Token Index - short
Funding - stable
Price Model - taker
Fee
Accessors
Methods
- base
Lots To Ui - get
Instantaneous Funding Rate - get
Instantaneous Funding Rate Per Second - get
Instantaneous Funding Rate Ui - get
Settle Pnl Candidates - inside
Price Limit - load
Asks - load
Bids - load
Event Queue - load
Fills - log
Ob - parse
Fill Event - price
Lots To Native - price
Lots To Ui - price
Native To Ui - quote
Lots To Ui - to
String - ui
Base To Lots - ui
Price To Lots - ui
Quote To Lots - from
Constructors
constructor
Parameters
publicKey: PublicKey
group: PublicKey
settleTokenIndex: TokenIndex
perpMarketIndex: PerpMarketIndex
groupInsuranceFund: boolean
baseDecimals: number
name: number[]
bids: PublicKey
asks: PublicKey
eventQueue: PublicKey
oracle: PublicKey
oracleConfig: OracleConfigDto
stablePriceModel: StablePriceModel
quoteLotSize: BN
baseLotSize: BN
maintBaseAssetWeight: I80F48Dto
initBaseAssetWeight: I80F48Dto
maintBaseLiabWeight: I80F48Dto
initBaseLiabWeight: I80F48Dto
openInterest: BN
seqNum: BN
registrationTime: BN
minFunding: I80F48Dto
maxFunding: I80F48Dto
impactQuantity: BN
longFunding: I80F48Dto
shortFunding: I80F48Dto
fundingLastUpdated: BN
baseLiquidationFee: I80F48Dto
makerFee: I80F48Dto
takerFee: I80F48Dto
feesAccrued: I80F48Dto
feesSettled: I80F48Dto
feePenalty: number
settleFeeFlat: number
settleFeeAmountThreshold: number
settleFeeFractionLowHealth: number
settlePnlLimitFactor: number
settlePnlLimitWindowSizeTs: BN
reduceOnly: boolean
forceClose: boolean
maintOverallAssetWeight: I80F48Dto
initOverallAssetWeight: I80F48Dto
positivePnlLiquidationFee: I80F48Dto
Returns PerpMarket
Properties
_asks
_bids
_oracle
Last Updated Slot _oracle
Provider _price
_ui
Price asks
base
Decimals base
Liquidation Fee base
Lot Size Private base
Lots To Ui Converter bids
event
Queue fee
Penalty fees
Accrued fees
Settled force
Close funding
Last Updated group
group
Insurance Fund impact
Quantity init
Base Asset Weight init
Base Liab Weight init
Overall Asset Weight long
Funding maint
Base Asset Weight maint
Base Liab Weight maint
Overall Asset Weight maker
Fee max
Funding min
Funding name
open
Interest oracle
oracle
Config perp
Market Index positive
Pnl Liquidation Fee Private price
Lots To Ui Converter public
Key quote
Lot Size Private quote
Lots To Ui Converter reduce
Only registration
Time seq
Num settle
Fee Amount Threshold settle
Fee Flat settle
Fee Fraction Low Health settle
Pnl Limit Factor settle
Pnl Limit Window Size Ts settle
Token Index short
Funding stable
Price Model taker
Fee Accessors
min
Order Size Returns number
oracle
Last Updated Slot Returns number
oracle
Provider Returns OracleProvider
price
Returns I80F48
tick
Size Returns number
ui
Price Returns number
Methods
base
Lots To Ui Parameters
quantity: BN
Returns number
get
Instantaneous Funding Rate get
Instantaneous Funding Rate Per Second get
Instantaneous Funding Rate Ui - +
PerpMarket | @blockworks-foundation/mango-v4 Class PerpMarket
Hierarchy
- PerpMarket
Index
Constructors
Properties
- _asks
- _bids
- _oracle
Last Updated Slot - _oracle
Provider - _price
- _ui
Price - asks
- base
Decimals - base
Liquidation Fee - base
Lot Size - base
Lots To Ui Converter - bids
- event
Queue - fee
Penalty - fees
Accrued - fees
Settled - force
Close - funding
Last Updated - group
- group
Insurance Fund - impact
Quantity - init
Base Asset Weight - init
Base Liab Weight - init
Overall Asset Weight - long
Funding - maint
Base Asset Weight - maint
Base Liab Weight - maint
Overall Asset Weight - maker
Fee - max
Funding - min
Funding - name
- open
Interest - oracle
- oracle
Config - perp
Market Index - positive
Pnl Liquidation Fee - price
Lots To Ui Converter - public
Key - quote
Lot Size - quote
Lots To Ui Converter - reduce
Only - registration
Time - seq
Num - settle
Fee Amount Threshold - settle
Fee Flat - settle
Fee Fraction Low Health - settle
Pnl Limit Factor - settle
Pnl Limit Window Size Ts - settle
Token Index - short
Funding - stable
Price Model - taker
Fee
Accessors
Methods
- base
Lots To Ui - get
Instantaneous Funding Rate - get
Instantaneous Funding Rate Per Second - get
Instantaneous Funding Rate Ui - get
Settle Pnl Candidates - inside
Price Limit - load
Asks - load
Bids - load
Event Queue - load
Fills - log
Ob - parse
Fill Event - price
Lots To Native - price
Lots To Ui - price
Native To Ui - quote
Lots To Ui - to
String - ui
Base To Lots - ui
Price To Lots - ui
Quote To Lots - from
Constructors
constructor
Parameters
publicKey: PublicKey
group: PublicKey
settleTokenIndex: TokenIndex
perpMarketIndex: PerpMarketIndex
groupInsuranceFund: boolean
baseDecimals: number
name: number[]
bids: PublicKey
asks: PublicKey
eventQueue: PublicKey
oracle: PublicKey
oracleConfig: OracleConfigDto
stablePriceModel: StablePriceModel
quoteLotSize: BN
baseLotSize: BN
maintBaseAssetWeight: I80F48Dto
initBaseAssetWeight: I80F48Dto
maintBaseLiabWeight: I80F48Dto
initBaseLiabWeight: I80F48Dto
openInterest: BN
seqNum: BN
registrationTime: BN
minFunding: I80F48Dto
maxFunding: I80F48Dto
impactQuantity: BN
longFunding: I80F48Dto
shortFunding: I80F48Dto
fundingLastUpdated: BN
baseLiquidationFee: I80F48Dto
makerFee: I80F48Dto
takerFee: I80F48Dto
feesAccrued: I80F48Dto
feesSettled: I80F48Dto
feePenalty: number
settleFeeFlat: number
settleFeeAmountThreshold: number
settleFeeFractionLowHealth: number
settlePnlLimitFactor: number
settlePnlLimitWindowSizeTs: BN
reduceOnly: boolean
forceClose: boolean
maintOverallAssetWeight: I80F48Dto
initOverallAssetWeight: I80F48Dto
positivePnlLiquidationFee: I80F48Dto
Returns PerpMarket
Properties
_asks
_bids
_oracle
Last Updated Slot _oracle
Provider _price
_ui
Price asks
base
Decimals base
Liquidation Fee base
Lot Size Private base
Lots To Ui Converter bids
event
Queue fee
Penalty fees
Accrued fees
Settled force
Close funding
Last Updated group
group
Insurance Fund impact
Quantity init
Base Asset Weight init
Base Liab Weight init
Overall Asset Weight long
Funding maint
Base Asset Weight maint
Base Liab Weight maint
Overall Asset Weight maker
Fee max
Funding min
Funding name
open
Interest oracle
oracle
Config perp
Market Index positive
Pnl Liquidation Fee Private price
Lots To Ui Converter public
Key quote
Lot Size Private quote
Lots To Ui Converter reduce
Only registration
Time seq
Num settle
Fee Amount Threshold settle
Fee Flat settle
Fee Fraction Low Health settle
Pnl Limit Factor settle
Pnl Limit Window Size Ts settle
Token Index short
Funding stable
Price Model taker
Fee Accessors
min
Order Size Returns number
oracle
Last Updated Slot Returns number
oracle
Provider Returns OracleProvider
price
Returns I80F48
tick
Size Returns number
ui
Price Returns number
Methods
base
Lots To Ui Parameters
quantity: BN
Returns number
get
Instantaneous Funding Rate get
Instantaneous Funding Rate Per Second get
Instantaneous Funding Rate Ui Returns instantaneous funding rate for the day. How is it actually applied - funding is continously applied on every interaction to a perp position. The rate is further multiplied by the time elapsed since it was last applied (capped to max. 1hr).
Parameters
Returns number
returns instantaneous funding rate in % form
-
get
Settle Pnl Candidates - +
get
Settle Pnl Candidates Returns a list of (upto count) accounts, and the pnl that is settle'able on this perp market, the list is sorted ascending for 'negative' direction and descending for 'positive' direction.
NOTE: keep in sync with perp_pnl.rs:fetch_top
TODO: replace with a more performant offchain service call
-Parameters
client: MangoClient
group: Group
Optional accounts: MangoAccount[]
direction: "negative" | "positive" = 'positive'
count: number = 2
Returns Promise<{ account: MangoAccount; settleablePnl: I80F48 }[]>
inside
Price Limit Parameters
side: PerpOrderSide
orderPrice: number
Returns boolean
load
Asks Parameters
client: MangoClient
forceReload: boolean = false
Returns Promise<BookSide>
load
Bids Parameters
client: MangoClient
forceReload: boolean = false
Returns Promise<BookSide>
load
Event Queue Parameters
client: MangoClient
Returns Promise<PerpEventQueue>
load
Fills Parameters
client: MangoClient
lastSeqNum: BN = ...
Returns Promise<FillEvent[]>
log
Ob Parameters
client: MangoClient
Returns Promise<string>
parse
Fill Event Parameters
event: any
Returns ParsedFillEvent
price
Lots To Native Parameters
price: BN
Returns I80F48
price
Lots To Ui Parameters
price: BN
Returns number
price
Native To Ui Parameters
price: number
Returns number
quote
Lots To Ui Parameters
quantity: BN
Returns number
to
String Returns string
ui
Base To Lots Parameters
quantity: number
Returns BN
ui
Price To Lots Parameters
price: number
Returns BN
ui
Quote To Lots Parameters
uiQuote: number
Returns BN
Static from
Parameters
publicKey: PublicKey
obj: { asks: PublicKey; baseDecimals: number; baseLiquidationFee: I80F48Dto; baseLotSize: BN; bids: PublicKey; eventQueue: PublicKey; feePenalty: number; feesAccrued: I80F48Dto; feesSettled: I80F48Dto; forceClose: number; fundingLastUpdated: BN; group: PublicKey; groupInsuranceFund: number; impactQuantity: BN; initBaseAssetWeight: I80F48Dto; initBaseLiabWeight: I80F48Dto; initOverallAssetWeight: I80F48Dto; longFunding: I80F48Dto; maintBaseAssetWeight: I80F48Dto; maintBaseLiabWeight: I80F48Dto; maintOverallAssetWeight: I80F48Dto; makerFee: I80F48Dto; maxFunding: I80F48Dto; minFunding: I80F48Dto; name: number[]; openInterest: BN; oracle: PublicKey; oracleConfig: OracleConfigDto; perpMarketIndex: number; positivePnlLiquidationFee: I80F48Dto; quoteLotSize: BN; reduceOnly: number; registrationTime: BN; seqNum: BN; settleFeeAmountThreshold: number; settleFeeFlat: number; settleFeeFractionLowHealth: number; settlePnlLimitFactor: number; settlePnlLimitWindowSizeTs: BN; settleTokenIndex: number; shortFunding: I80F48Dto; stablePriceModel: StablePriceModel; takerFee: I80F48Dto }
asks: PublicKey
base
Decimals: number base
Liquidation Fee: I80F48Dto base
Lot Size: BN bids: PublicKey
event
Queue: PublicKey fee
Penalty: number fees
Accrued: I80F48Dto fees
Settled: I80F48Dto force
Close: number funding
Last Updated: BN group: PublicKey
group
Insurance Fund: number impact
Quantity: BN init
Base Asset Weight: I80F48Dto init
Base Liab Weight: I80F48Dto init
Overall Asset Weight: I80F48Dto long
Funding: I80F48Dto maint
Base Asset Weight: I80F48Dto maint
Base Liab Weight: I80F48Dto maint
Overall Asset Weight: I80F48Dto maker
Fee: I80F48Dto max
Funding: I80F48Dto min
Funding: I80F48Dto name: number[]
open
Interest: BN oracle: PublicKey
oracle
Config: OracleConfigDto perp
Market Index: number positive
Pnl Liquidation Fee: I80F48Dto quote
Lot Size: BN reduce
Only: number registration
Time: BN seq
Num: BN settle
Fee Amount Threshold: number settle
Fee Flat: number settle
Fee Fraction Low Health: number settle
Pnl Limit Factor: number settle
Pnl Limit Window Size Ts: BN settle
Token Index: number short
Funding: I80F48Dto stable
Price Model: StablePriceModel taker
Fee: I80F48Dto
Returns PerpMarket
\ No newline at end of file +Generated using TypeDoc
Parameters
client: MangoClient
group: Group
Optional accounts: MangoAccount[]
direction: "negative" | "positive" = 'positive'
count: number = 2
Returns Promise<{ account: MangoAccount; settleablePnl: I80F48 }[]>
inside
Price Limit Parameters
side: PerpOrderSide
orderPrice: number
Returns boolean
load
Asks Parameters
client: MangoClient
forceReload: boolean = false
Returns Promise<BookSide>
load
Bids Parameters
client: MangoClient
forceReload: boolean = false
Returns Promise<BookSide>
load
Event Queue Parameters
client: MangoClient
Returns Promise<PerpEventQueue>
load
Fills Parameters
client: MangoClient
lastSeqNum: BN = ...
Returns Promise<FillEvent[]>
log
Ob Parameters
client: MangoClient
Returns Promise<string>
parse
Fill Event Parameters
event: any
Returns ParsedFillEvent
price
Lots To Native Parameters
price: BN
Returns I80F48
price
Lots To Ui Parameters
price: BN
Returns number
price
Native To Ui Parameters
price: number
Returns number
quote
Lots To Ui Parameters
quantity: BN
Returns number
to
String Returns string
ui
Base To Lots Parameters
quantity: number
Returns BN
ui
Price To Lots Parameters
price: number
Returns BN
ui
Quote To Lots Parameters
uiQuote: number
Returns BN
Static from
Parameters
publicKey: PublicKey
obj: { asks: PublicKey; baseDecimals: number; baseLiquidationFee: I80F48Dto; baseLotSize: BN; bids: PublicKey; eventQueue: PublicKey; feePenalty: number; feesAccrued: I80F48Dto; feesSettled: I80F48Dto; forceClose: number; fundingLastUpdated: BN; group: PublicKey; groupInsuranceFund: number; impactQuantity: BN; initBaseAssetWeight: I80F48Dto; initBaseLiabWeight: I80F48Dto; initOverallAssetWeight: I80F48Dto; longFunding: I80F48Dto; maintBaseAssetWeight: I80F48Dto; maintBaseLiabWeight: I80F48Dto; maintOverallAssetWeight: I80F48Dto; makerFee: I80F48Dto; maxFunding: I80F48Dto; minFunding: I80F48Dto; name: number[]; openInterest: BN; oracle: PublicKey; oracleConfig: OracleConfigDto; perpMarketIndex: number; positivePnlLiquidationFee: I80F48Dto; quoteLotSize: BN; reduceOnly: number; registrationTime: BN; seqNum: BN; settleFeeAmountThreshold: number; settleFeeFlat: number; settleFeeFractionLowHealth: number; settlePnlLimitFactor: number; settlePnlLimitWindowSizeTs: BN; settleTokenIndex: number; shortFunding: I80F48Dto; stablePriceModel: StablePriceModel; takerFee: I80F48Dto }
asks: PublicKey
base
Decimals: number base
Liquidation Fee: I80F48Dto base
Lot Size: BN bids: PublicKey
event
Queue: PublicKey fee
Penalty: number fees
Accrued: I80F48Dto fees
Settled: I80F48Dto force
Close: number funding
Last Updated: BN group: PublicKey
group
Insurance Fund: number impact
Quantity: BN init
Base Asset Weight: I80F48Dto init
Base Liab Weight: I80F48Dto init
Overall Asset Weight: I80F48Dto long
Funding: I80F48Dto maint
Base Asset Weight: I80F48Dto maint
Base Liab Weight: I80F48Dto maint
Overall Asset Weight: I80F48Dto maker
Fee: I80F48Dto max
Funding: I80F48Dto min
Funding: I80F48Dto name: number[]
open
Interest: BN oracle: PublicKey
oracle
Config: OracleConfigDto perp
Market Index: number positive
Pnl Liquidation Fee: I80F48Dto quote
Lot Size: BN reduce
Only: number registration
Time: BN seq
Num: BN settle
Fee Amount Threshold: number settle
Fee Flat: number settle
Fee Fraction Low Health: number settle
Pnl Limit Factor: number settle
Pnl Limit Window Size Ts: BN settle
Token Index: number short
Funding: I80F48Dto stable
Price Model: StablePriceModel taker
Fee: I80F48Dto
Returns PerpMarket
\ No newline at end of file diff --git a/ts/client/classes/PerpOo.html b/ts/client/classes/PerpOo.html index af871f119..dea8b3a2e 100644 --- a/ts/client/classes/PerpOo.html +++ b/ts/client/classes/PerpOo.html @@ -1 +1 @@ -Generated using TypeDoc
PerpOo | @blockworks-foundation/mango-v4 Class PerpOo
Hierarchy
- PerpOo
Index
Constructors
Properties
Methods
Constructors
constructor
Parameters
sideAndTree: any
orderMarket: number
clientId: BN
id: BN
Returns PerpOo
Properties
client
Id id
order
Market side
And Tree Static Order
Market Unset Methods
is
Active Returns boolean
Static from
\ No newline at end of file +Generated using TypeDoc
PerpOo | @blockworks-foundation/mango-v4 Class PerpOo
Hierarchy
- PerpOo
Index
Constructors
Properties
Methods
Constructors
constructor
Parameters
sideAndTree: any
orderMarket: number
clientId: BN
id: BN
Returns PerpOo
Properties
client
Id id
order
Market side
And Tree Static Order
Market Unset Methods
is
Active Returns boolean
Static from
\ No newline at end of file diff --git a/ts/client/classes/PerpOoDto.html b/ts/client/classes/PerpOoDto.html index 585b38c35..30ed816db 100644 --- a/ts/client/classes/PerpOoDto.html +++ b/ts/client/classes/PerpOoDto.html @@ -1 +1 @@ -Generated using TypeDoc
PerpOoDto | @blockworks-foundation/mango-v4 Class PerpOoDto
Hierarchy
- PerpOoDto
Index
Constructors
Properties
Constructors
constructor
Parameters
sideAndTree: any
market: number
clientId: BN
id: BN
Returns PerpOoDto
Properties
client
Id id
market
side
And Tree \ No newline at end of file +Generated using TypeDoc
PerpOoDto | @blockworks-foundation/mango-v4 Class PerpOoDto
Hierarchy
- PerpOoDto
Index
Constructors
Properties
Constructors
constructor
Parameters
sideAndTree: any
market: number
clientId: BN
id: BN
Returns PerpOoDto
Properties
client
Id id
market
side
And Tree \ No newline at end of file diff --git a/ts/client/classes/PerpOrder.html b/ts/client/classes/PerpOrder.html index 522bfd301..4456acf65 100644 --- a/ts/client/classes/PerpOrder.html +++ b/ts/client/classes/PerpOrder.html @@ -1 +1 @@ -Generated using TypeDoc
PerpOrder | @blockworks-foundation/mango-v4 Class PerpOrder
Hierarchy
- PerpOrder
Index
Constructors
constructor
Parameters
seqNum: BN
orderId: BN
owner: PublicKey
openOrdersSlot: number
feeTier: 0
uiPrice: number
priceLots: BN
uiSize: number
sizeLots: BN
side: PerpOrderSide
timestamp: BN
expiryTimestamp: BN
perpMarketIndex: number
isExpired: boolean = false
isOraclePegged: boolean = false
orderType: PerpOrderType
Optional oraclePeggedProperties: OraclePeggedProperties
Returns PerpOrder
Properties
expiry
Timestamp fee
Tier is
Expired is
Oracle Pegged open
Orders Slot Optional oracle
Pegged Properties order
Id order
Type owner
perp
Market Index price
Lots seq
Num side
size
Lots timestamp
ui
Price ui
Size Accessors
price
Returns number
size
Returns number
Methods
Static from
Parameters
perpMarket: PerpMarket
leafNode: LeafNode
type: BookSideType
isExpired: boolean = false
isOraclePegged: boolean = false
Returns PerpOrder
\ No newline at end of file +Generated using TypeDoc
PerpOrder | @blockworks-foundation/mango-v4 Class PerpOrder
Hierarchy
- PerpOrder
Index
Constructors
constructor
Parameters
seqNum: BN
orderId: BN
owner: PublicKey
openOrdersSlot: number
feeTier: 0
uiPrice: number
priceLots: BN
uiSize: number
sizeLots: BN
side: PerpOrderSide
timestamp: BN
expiryTimestamp: BN
perpMarketIndex: number
isExpired: boolean = false
isOraclePegged: boolean = false
orderType: PerpOrderType
Optional oraclePeggedProperties: OraclePeggedProperties
Returns PerpOrder
Properties
expiry
Timestamp fee
Tier is
Expired is
Oracle Pegged open
Orders Slot Optional oracle
Pegged Properties order
Id order
Type owner
perp
Market Index price
Lots seq
Num side
size
Lots timestamp
ui
Price ui
Size Accessors
price
Returns number
size
Returns number
Methods
Static from
Parameters
perpMarket: PerpMarket
leafNode: LeafNode
type: BookSideType
isExpired: boolean = false
isOraclePegged: boolean = false
Returns PerpOrder
\ No newline at end of file diff --git a/ts/client/classes/PerpOrderSide.html b/ts/client/classes/PerpOrderSide.html index a1cbe2366..2a9980328 100644 --- a/ts/client/classes/PerpOrderSide.html +++ b/ts/client/classes/PerpOrderSide.html @@ -1 +1 @@ -Generated using TypeDoc
PerpOrderSide | @blockworks-foundation/mango-v4 Class PerpOrderSide
Hierarchy
- PerpOrderSide
Index
Constructors
Properties
Constructors
constructor
Returns PerpOrderSide
Properties
Static ask
Type declaration
ask: {}
Static bid
Type declaration
bid: {}
\ No newline at end of file +Generated using TypeDoc
PerpOrderSide | @blockworks-foundation/mango-v4 Class PerpOrderSide
Hierarchy
- PerpOrderSide
Index
Constructors
Properties
Constructors
constructor
Returns PerpOrderSide
Properties
Static ask
Type declaration
ask: {}
Static bid
Type declaration
bid: {}
\ No newline at end of file diff --git a/ts/client/classes/PerpOrderType.html b/ts/client/classes/PerpOrderType.html index ef7bc1192..7fcffa123 100644 --- a/ts/client/classes/PerpOrderType.html +++ b/ts/client/classes/PerpOrderType.html @@ -1 +1 @@ -Generated using TypeDoc
PerpOrderType | @blockworks-foundation/mango-v4 Class PerpOrderType
Hierarchy
- PerpOrderType
Index
Constructors
Properties
Constructors
constructor
Returns PerpOrderType
Properties
Static immediate
Or Cancel Type declaration
immediate
Or Cancel: {}
Static limit
Type declaration
limit: {}
Static market
Type declaration
market: {}
Static post
Only Type declaration
post
Only: {}
Static post
Only Slide Type declaration
post
Only Slide: {}
\ No newline at end of file +Generated using TypeDoc
PerpOrderType | @blockworks-foundation/mango-v4 Class PerpOrderType
Hierarchy
- PerpOrderType
Index
Constructors
Properties
Constructors
constructor
Returns PerpOrderType
Properties
Static immediate
Or Cancel Type declaration
immediate
Or Cancel: {}
Static limit
Type declaration
limit: {}
Static market
Type declaration
market: {}
Static post
Only Type declaration
post
Only: {}
Static post
Only Slide Type declaration
post
Only Slide: {}
\ No newline at end of file diff --git a/ts/client/classes/PerpPosition.html b/ts/client/classes/PerpPosition.html index 60825e263..8f571ff33 100644 --- a/ts/client/classes/PerpPosition.html +++ b/ts/client/classes/PerpPosition.html @@ -1 +1 @@ -Generated using TypeDoc
PerpPosition | @blockworks-foundation/mango-v4 Class PerpPosition
Hierarchy
- PerpPosition
Index
Constructors
Properties
- asks
Base Lots - avg
Entry Price Per Base Lot - base
Position Lots - bids
Base Lots - cumulative
Long Funding - cumulative
Short Funding - long
Settled Funding - maker
Volume - market
Index - perp
Spot Transfers - quote
Position Native - quote
Running Native - realized
Other Pnl Native - realized
Pnl For Position Native - realized
Trade Pnl Native - settle
Pnl Limit Realized Trade - settle
Pnl Limit Settled In Current Window Native - settle
Pnl Limit Window - short
Settled Funding - taker
Base Lots - taker
Quote Lots - taker
Volume - Perp
Market Index Unset
Methods
- apply
Pnl Settle Limit - available
Settle Limit - can
Settle Pnl - cumulative
Pnl Over Position Lifetime Ui - get
Average Entry Price - get
Average Entry Price Ui - get
Base Position - get
Base Position Ui - get
Break Even Price - get
Break Even Price Ui - get
Equity - get
Equity Ui - get
Liquidation Price - get
Liquidation Price Ui - get
Notional Value Ui - get
Quote Position Ui - get
Realized Pnl Ui - get
Settleable Pnl - get
Settleable Pnl Ui - get
Un Realized Pnl Ui - get
Unsettled Funding - get
Unsettled Funding Ui - get
Unsettled Pnl - get
Unsettled Pnl Ui - has
Open Orders - is
Active - to
String - update
Settle Limit - empty
From Perp Market Index - from
Constructors
constructor
Parameters
marketIndex: PerpMarketIndex
settlePnlLimitWindow: number
settlePnlLimitSettledInCurrentWindowNative: BN
basePositionLots: BN
quotePositionNative: I80F48
quoteRunningNative: BN
longSettledFunding: I80F48
shortSettledFunding: I80F48
bidsBaseLots: BN
asksBaseLots: BN
takerBaseLots: BN
takerQuoteLots: BN
cumulativeLongFunding: number
cumulativeShortFunding: number
makerVolume: BN
takerVolume: BN
perpSpotTransfers: BN
avgEntryPricePerBaseLot: number
realizedTradePnlNative: I80F48
realizedOtherPnlNative: I80F48
settlePnlLimitRealizedTrade: BN
realizedPnlForPositionNative: I80F48
Returns PerpPosition
Properties
asks
Base Lots avg
Entry Price Per Base Lot base
Position Lots bids
Base Lots cumulative
Long Funding cumulative
Short Funding long
Settled Funding maker
Volume market
Index perp
Spot Transfers quote
Position Native quote
Running Native realized
Other Pnl Native realized
Pnl For Position Native realized
Trade Pnl Native settle
Pnl Limit Realized Trade settle
Pnl Limit Settled In Current Window Native settle
Pnl Limit Window short
Settled Funding taker
Base Lots taker
Quote Lots taker
Volume Static Perp
Market Index Unset Methods
apply
Pnl Settle Limit Parameters
pnl: I80F48
perpMarket: PerpMarket
Returns I80F48
available
Settle Limit Parameters
perpMarket: PerpMarket
Returns [BN, BN]
can
Settle Pnl Parameters
group: Group
perpMarket: PerpMarket
account: MangoAccount
Returns boolean
cumulative
Pnl Over Position Lifetime Ui Parameters
perpMarket: PerpMarket
Returns number
get
Average Entry Price Parameters
perpMarket: PerpMarket
Returns I80F48
get
Average Entry Price Ui Parameters
perpMarket: PerpMarket
Returns number
get
Base Position Parameters
perpMarket: PerpMarket
Returns I80F48
get
Base Position Ui Parameters
perpMarket: PerpMarket
Optional useEventQueue: boolean
Returns number
get
Break Even Price Parameters
perpMarket: PerpMarket
Returns I80F48
get
Break Even Price Ui Parameters
perpMarket: PerpMarket
Returns number
get
Equity Parameters
perpMarket: PerpMarket
Returns I80F48
get
Equity Ui Parameters
perpMarket: PerpMarket
Returns number
get
Liquidation Price Parameters
group: Group
mangoAccount: MangoAccount
Returns null | I80F48
get
Liquidation Price Ui Parameters
group: Group
mangoAccount: MangoAccount
Returns null | number
get
Notional Value Ui Parameters
perpMarket: PerpMarket
Optional useEventQueue: boolean
Returns number
get
Quote Position Ui Parameters
perpMarket: PerpMarket
Optional useEventQueue: boolean
Returns number
get
Realized Pnl Ui Returns number
get
Settleable Pnl Parameters
group: Group
perpMarket: PerpMarket
account: MangoAccount
Returns I80F48
get
Settleable Pnl Ui Parameters
group: Group
perpMarket: PerpMarket
account: MangoAccount
Returns number
get
Un Realized Pnl Ui Parameters
perpMarket: PerpMarket
Returns number
get
Unsettled Funding Parameters
perpMarket: PerpMarket
Returns I80F48
get
Unsettled Funding Ui Parameters
perpMarket: PerpMarket
Returns number
get
Unsettled Pnl Parameters
perpMarket: PerpMarket
Returns I80F48
get
Unsettled Pnl Ui Parameters
perpMarket: PerpMarket
Returns number
has
Open Orders Returns boolean
is
Active Returns boolean
to
String Parameters
Optional perpMarket: PerpMarket
Returns string
update
Settle Limit Parameters
perpMarket: PerpMarket
Returns void
Static empty
From Perp Market Index Parameters
perpMarketIndex: PerpMarketIndex
Returns PerpPosition
Static from
Parameters
dto: PerpPositionDto
Returns PerpPosition
\ No newline at end of file +Generated using TypeDoc
PerpPosition | @blockworks-foundation/mango-v4 Class PerpPosition
Hierarchy
- PerpPosition
Index
Constructors
Properties
- asks
Base Lots - avg
Entry Price Per Base Lot - base
Position Lots - bids
Base Lots - cumulative
Long Funding - cumulative
Short Funding - long
Settled Funding - maker
Volume - market
Index - perp
Spot Transfers - quote
Position Native - quote
Running Native - realized
Other Pnl Native - realized
Pnl For Position Native - realized
Trade Pnl Native - settle
Pnl Limit Realized Trade - settle
Pnl Limit Settled In Current Window Native - settle
Pnl Limit Window - short
Settled Funding - taker
Base Lots - taker
Quote Lots - taker
Volume - Perp
Market Index Unset
Methods
- apply
Pnl Settle Limit - available
Settle Limit - can
Settle Pnl - cumulative
Pnl Over Position Lifetime Ui - get
Average Entry Price - get
Average Entry Price Ui - get
Base Position - get
Base Position Ui - get
Break Even Price - get
Break Even Price Ui - get
Equity - get
Equity Ui - get
Liquidation Price - get
Liquidation Price Ui - get
Notional Value Ui - get
Quote Position Ui - get
Realized Pnl Ui - get
Settleable Pnl - get
Settleable Pnl Ui - get
Un Realized Pnl Ui - get
Unsettled Funding - get
Unsettled Funding Ui - get
Unsettled Pnl - get
Unsettled Pnl Ui - has
Open Orders - is
Active - to
String - update
Settle Limit - empty
From Perp Market Index - from
Constructors
constructor
Parameters
marketIndex: PerpMarketIndex
settlePnlLimitWindow: number
settlePnlLimitSettledInCurrentWindowNative: BN
basePositionLots: BN
quotePositionNative: I80F48
quoteRunningNative: BN
longSettledFunding: I80F48
shortSettledFunding: I80F48
bidsBaseLots: BN
asksBaseLots: BN
takerBaseLots: BN
takerQuoteLots: BN
cumulativeLongFunding: number
cumulativeShortFunding: number
makerVolume: BN
takerVolume: BN
perpSpotTransfers: BN
avgEntryPricePerBaseLot: number
realizedTradePnlNative: I80F48
realizedOtherPnlNative: I80F48
settlePnlLimitRealizedTrade: BN
realizedPnlForPositionNative: I80F48
Returns PerpPosition
Properties
asks
Base Lots avg
Entry Price Per Base Lot base
Position Lots bids
Base Lots cumulative
Long Funding cumulative
Short Funding long
Settled Funding maker
Volume market
Index perp
Spot Transfers quote
Position Native quote
Running Native realized
Other Pnl Native realized
Pnl For Position Native realized
Trade Pnl Native settle
Pnl Limit Realized Trade settle
Pnl Limit Settled In Current Window Native settle
Pnl Limit Window short
Settled Funding taker
Base Lots taker
Quote Lots taker
Volume Static Perp
Market Index Unset Methods
apply
Pnl Settle Limit Parameters
pnl: I80F48
perpMarket: PerpMarket
Returns I80F48
available
Settle Limit Parameters
perpMarket: PerpMarket
Returns [BN, BN]
can
Settle Pnl Parameters
group: Group
perpMarket: PerpMarket
account: MangoAccount
Returns boolean
cumulative
Pnl Over Position Lifetime Ui Parameters
perpMarket: PerpMarket
Returns number
get
Average Entry Price Parameters
perpMarket: PerpMarket
Returns I80F48
get
Average Entry Price Ui Parameters
perpMarket: PerpMarket
Returns number
get
Base Position Parameters
perpMarket: PerpMarket
Returns I80F48
get
Base Position Ui Parameters
perpMarket: PerpMarket
Optional useEventQueue: boolean
Returns number
get
Break Even Price Parameters
perpMarket: PerpMarket
Returns I80F48
get
Break Even Price Ui Parameters
perpMarket: PerpMarket
Returns number
get
Equity Parameters
perpMarket: PerpMarket
Returns I80F48
get
Equity Ui Parameters
perpMarket: PerpMarket
Returns number
get
Liquidation Price Parameters
group: Group
mangoAccount: MangoAccount
Returns null | I80F48
get
Liquidation Price Ui Parameters
group: Group
mangoAccount: MangoAccount
Returns null | number
get
Notional Value Ui Parameters
perpMarket: PerpMarket
Optional useEventQueue: boolean
Returns number
get
Quote Position Ui Parameters
perpMarket: PerpMarket
Optional useEventQueue: boolean
Returns number
get
Realized Pnl Ui Returns number
get
Settleable Pnl Parameters
group: Group
perpMarket: PerpMarket
account: MangoAccount
Returns I80F48
get
Settleable Pnl Ui Parameters
group: Group
perpMarket: PerpMarket
account: MangoAccount
Returns number
get
Un Realized Pnl Ui Parameters
perpMarket: PerpMarket
Returns number
get
Unsettled Funding Parameters
perpMarket: PerpMarket
Returns I80F48
get
Unsettled Funding Ui Parameters
perpMarket: PerpMarket
Returns number
get
Unsettled Pnl Parameters
perpMarket: PerpMarket
Returns I80F48
get
Unsettled Pnl Ui Parameters
perpMarket: PerpMarket
Returns number
has
Open Orders Returns boolean
is
Active Returns boolean
to
String Parameters
Optional perpMarket: PerpMarket
Returns string
update
Settle Limit Parameters
perpMarket: PerpMarket
Returns void
Static empty
From Perp Market Index Parameters
perpMarketIndex: PerpMarketIndex
Returns PerpPosition
Static from
Parameters
dto: PerpPositionDto
Returns PerpPosition
\ No newline at end of file diff --git a/ts/client/classes/PerpPositionDto.html b/ts/client/classes/PerpPositionDto.html index e7fc14455..1e0efabd2 100644 --- a/ts/client/classes/PerpPositionDto.html +++ b/ts/client/classes/PerpPositionDto.html @@ -1 +1 @@ -Generated using TypeDoc
PerpPositionDto | @blockworks-foundation/mango-v4 Class PerpPositionDto
Hierarchy
- PerpPositionDto
Index
Constructors
Properties
- asks
Base Lots - avg
Entry Price Per Base Lot - base
Position Lots - bids
Base Lots - cumulative
Long Funding - cumulative
Short Funding - long
Settled Funding - maker
Volume - market
Index - perp
Spot Transfers - quote
Position Native - quote
Running Native - realized
Other Pnl Native - realized
Pnl For Position Native - realized
Trade Pnl Native - settle
Pnl Limit Realized Trade - settle
Pnl Limit Settled In Current Window Native - settle
Pnl Limit Window - short
Settled Funding - taker
Base Lots - taker
Quote Lots - taker
Volume
Constructors
constructor
Parameters
marketIndex: number
settlePnlLimitWindow: number
settlePnlLimitSettledInCurrentWindowNative: BN
basePositionLots: BN
quotePositionNative: { val: BN }
val: BN
quoteRunningNative: BN
longSettledFunding: I80F48Dto
shortSettledFunding: I80F48Dto
bidsBaseLots: BN
asksBaseLots: BN
takerBaseLots: BN
takerQuoteLots: BN
cumulativeLongFunding: number
cumulativeShortFunding: number
makerVolume: BN
takerVolume: BN
perpSpotTransfers: BN
avgEntryPricePerBaseLot: number
realizedTradePnlNative: I80F48Dto
realizedOtherPnlNative: I80F48Dto
settlePnlLimitRealizedTrade: BN
realizedPnlForPositionNative: I80F48Dto
Returns PerpPositionDto
Properties
asks
Base Lots avg
Entry Price Per Base Lot base
Position Lots bids
Base Lots cumulative
Long Funding cumulative
Short Funding long
Settled Funding maker
Volume market
Index perp
Spot Transfers quote
Position Native Type declaration
val: BN
quote
Running Native realized
Other Pnl Native realized
Pnl For Position Native realized
Trade Pnl Native settle
Pnl Limit Realized Trade settle
Pnl Limit Settled In Current Window Native settle
Pnl Limit Window short
Settled Funding taker
Base Lots taker
Quote Lots taker
Volume \ No newline at end of file +Generated using TypeDoc
PerpPositionDto | @blockworks-foundation/mango-v4 Class PerpPositionDto
Hierarchy
- PerpPositionDto
Index
Constructors
Properties
- asks
Base Lots - avg
Entry Price Per Base Lot - base
Position Lots - bids
Base Lots - cumulative
Long Funding - cumulative
Short Funding - long
Settled Funding - maker
Volume - market
Index - perp
Spot Transfers - quote
Position Native - quote
Running Native - realized
Other Pnl Native - realized
Pnl For Position Native - realized
Trade Pnl Native - settle
Pnl Limit Realized Trade - settle
Pnl Limit Settled In Current Window Native - settle
Pnl Limit Window - short
Settled Funding - taker
Base Lots - taker
Quote Lots - taker
Volume
Constructors
constructor
Parameters
marketIndex: number
settlePnlLimitWindow: number
settlePnlLimitSettledInCurrentWindowNative: BN
basePositionLots: BN
quotePositionNative: { val: BN }
val: BN
quoteRunningNative: BN
longSettledFunding: I80F48Dto
shortSettledFunding: I80F48Dto
bidsBaseLots: BN
asksBaseLots: BN
takerBaseLots: BN
takerQuoteLots: BN
cumulativeLongFunding: number
cumulativeShortFunding: number
makerVolume: BN
takerVolume: BN
perpSpotTransfers: BN
avgEntryPricePerBaseLot: number
realizedTradePnlNative: I80F48Dto
realizedOtherPnlNative: I80F48Dto
settlePnlLimitRealizedTrade: BN
realizedPnlForPositionNative: I80F48Dto
Returns PerpPositionDto
Properties
asks
Base Lots avg
Entry Price Per Base Lot base
Position Lots bids
Base Lots cumulative
Long Funding cumulative
Short Funding long
Settled Funding maker
Volume market
Index perp
Spot Transfers quote
Position Native Type declaration
val: BN
quote
Running Native realized
Other Pnl Native realized
Pnl For Position Native realized
Trade Pnl Native settle
Pnl Limit Realized Trade settle
Pnl Limit Settled In Current Window Native settle
Pnl Limit Window short
Settled Funding taker
Base Lots taker
Quote Lots taker
Volume \ No newline at end of file diff --git a/ts/client/classes/PerpSelfTradeBehavior.html b/ts/client/classes/PerpSelfTradeBehavior.html index 19b92217b..fb6599575 100644 --- a/ts/client/classes/PerpSelfTradeBehavior.html +++ b/ts/client/classes/PerpSelfTradeBehavior.html @@ -1 +1 @@ -Generated using TypeDoc
PerpSelfTradeBehavior | @blockworks-foundation/mango-v4 Class PerpSelfTradeBehavior
Hierarchy
- PerpSelfTradeBehavior
Index
Constructors
Properties
Constructors
constructor
Returns PerpSelfTradeBehavior
Properties
Static abort
Transaction Type declaration
abort
Transaction: {}
Static cancel
Provide Type declaration
cancel
Provide: {}
Static decrement
Take Type declaration
decrement
Take: {}
\ No newline at end of file +Generated using TypeDoc
PerpSelfTradeBehavior | @blockworks-foundation/mango-v4 Class PerpSelfTradeBehavior
Hierarchy
- PerpSelfTradeBehavior
Index
Constructors
Properties
Constructors
constructor
Returns PerpSelfTradeBehavior
Properties
Static abort
Transaction Type declaration
abort
Transaction: {}
Static cancel
Provide Type declaration
cancel
Provide: {}
Static decrement
Take Type declaration
decrement
Take: {}
\ No newline at end of file diff --git a/ts/client/classes/Serum3Market.html b/ts/client/classes/Serum3Market.html index 9bc2c1379..8d65ce70a 100644 --- a/ts/client/classes/Serum3Market.html +++ b/ts/client/classes/Serum3Market.html @@ -1,5 +1,5 @@ -Generated using TypeDoc
Serum3Market | @blockworks-foundation/mango-v4 Class Serum3Market
Hierarchy
- Serum3Market
Index
Constructors
constructor
Parameters
publicKey: PublicKey
group: PublicKey
baseTokenIndex: TokenIndex
quoteTokenIndex: TokenIndex
name: number[]
serumProgram: PublicKey
serumMarketExternal: PublicKey
marketIndex: MarketIndex
registrationTime: BN
reduceOnly: boolean
forceClose: boolean
Returns Serum3Market
Properties
base
Token Index force
Close group
market
Index name
public
Key quote
Token Index reduce
Only registration
Time serum
Market External serum
Program Methods
compute
Price For Market Order Of Size Parameters
client: MangoClient
group: Group
size: number
side: "buy" | "sell"
Returns Promise<number>
find
Oo Pda Parameters
programId: PublicKey
mangoAccount: PublicKey
Returns Promise<PublicKey>
get
Fee Rates Parameters
taker: boolean = true
Returns number
load
Asks Parameters
client: MangoClient
group: Group
Returns Promise<Orderbook>
load
Bids Parameters
client: MangoClient
group: Group
Returns Promise<Orderbook>
log
Ob Parameters
client: MangoClient
group: Group
Returns Promise<string>
max
Ask Leverage Parameters
group: Group
Returns number
maximum leverage one can ask on this market, this is only for display purposes, +
Serum3Market | @blockworks-foundation/mango-v4 Class Serum3Market
Hierarchy
- Serum3Market
Index
Constructors
constructor
Parameters
publicKey: PublicKey
group: PublicKey
baseTokenIndex: TokenIndex
quoteTokenIndex: TokenIndex
name: number[]
serumProgram: PublicKey
serumMarketExternal: PublicKey
marketIndex: MarketIndex
registrationTime: BN
reduceOnly: boolean
forceClose: boolean
Returns Serum3Market
Properties
base
Token Index force
Close group
market
Index name
public
Key quote
Token Index reduce
Only registration
Time serum
Market External serum
Program Methods
compute
Price For Market Order Of Size Parameters
client: MangoClient
group: Group
size: number
side: "buy" | "sell"
Returns Promise<number>
find
Oo Pda Parameters
programId: PublicKey
mangoAccount: PublicKey
Returns Promise<PublicKey>
get
Fee Rates Parameters
taker: boolean = true
Returns number
load
Asks Parameters
client: MangoClient
group: Group
Returns Promise<Orderbook>
load
Bids Parameters
client: MangoClient
group: Group
Returns Promise<Orderbook>
log
Ob Parameters
client: MangoClient
group: Group
Returns Promise<string>
max
Ask Leverage Parameters
group: Group
Returns number
maximum leverage one can ask on this market, this is only for display purposes, also see getMaxQuoteForSerum3BidUi and getMaxBaseForSerum3AskUi
-
max
Bid Leverage Parameters
group: Group
Returns number
maximum leverage one can bid on this market, this is only for display purposes, +
max
Bid Leverage Parameters
group: Group
Returns number
maximum leverage one can bid on this market, this is only for display purposes, also see getMaxQuoteForSerum3BidUi and getMaxBaseForSerum3AskUi
-
Static from
Parameters
publicKey: PublicKey
obj: { baseTokenIndex: number; forceClose: number; group: PublicKey; marketIndex: number; name: number[]; quoteTokenIndex: number; reduceOnly: number; registrationTime: BN; serumMarketExternal: PublicKey; serumProgram: PublicKey }
base
Token Index: number force
Close: number group: PublicKey
market
Index: number name: number[]
quote
Token Index: number reduce
Only: number registration
Time: BN serum
Market External: PublicKey serum
Program: PublicKey
Returns Serum3Market
\ No newline at end of file +Generated using TypeDoc
Static from
Parameters
publicKey: PublicKey
obj: { baseTokenIndex: number; forceClose: number; group: PublicKey; marketIndex: number; name: number[]; quoteTokenIndex: number; reduceOnly: number; registrationTime: BN; serumMarketExternal: PublicKey; serumProgram: PublicKey }
base
Token Index: number force
Close: number group: PublicKey
market
Index: number name: number[]
quote
Token Index: number reduce
Only: number registration
Time: BN serum
Market External: PublicKey serum
Program: PublicKey
Returns Serum3Market
\ No newline at end of file diff --git a/ts/client/classes/Serum3OrderType.html b/ts/client/classes/Serum3OrderType.html index 41ec9224b..fcba039ba 100644 --- a/ts/client/classes/Serum3OrderType.html +++ b/ts/client/classes/Serum3OrderType.html @@ -1 +1 @@ -Generated using TypeDoc
Serum3OrderType | @blockworks-foundation/mango-v4 Class Serum3OrderType
Hierarchy
- Serum3OrderType
Index
Constructors
Properties
Constructors
constructor
Returns Serum3OrderType
Properties
Static immediate
Or Cancel Type declaration
immediate
Or Cancel: {}
Static limit
Type declaration
limit: {}
Static post
Only Type declaration
post
Only: {}
\ No newline at end of file +Generated using TypeDoc
Serum3OrderType | @blockworks-foundation/mango-v4 Class Serum3OrderType
Hierarchy
- Serum3OrderType
Index
Constructors
Properties
Constructors
constructor
Returns Serum3OrderType
Properties
Static immediate
Or Cancel Type declaration
immediate
Or Cancel: {}
Static limit
Type declaration
limit: {}
Static post
Only Type declaration
post
Only: {}
\ No newline at end of file diff --git a/ts/client/classes/Serum3Orders.html b/ts/client/classes/Serum3Orders.html index d46e31054..bfc06acc1 100644 --- a/ts/client/classes/Serum3Orders.html +++ b/ts/client/classes/Serum3Orders.html @@ -1 +1 @@ -Generated using TypeDoc
Serum3Orders | @blockworks-foundation/mango-v4 Class Serum3Orders
Hierarchy
- Serum3Orders
Index
Constructors
Properties
Methods
Constructors
constructor
Parameters
openOrders: PublicKey
marketIndex: MarketIndex
baseTokenIndex: TokenIndex
quoteTokenIndex: TokenIndex
Returns Serum3Orders
Properties
base
Token Index market
Index open
Orders quote
Token Index Static Serum3
Market Index Unset Methods
is
Active Returns boolean
Static from
Parameters
dto: Serum3PositionDto
Returns Serum3Orders
\ No newline at end of file +Generated using TypeDoc
Serum3Orders | @blockworks-foundation/mango-v4 Class Serum3Orders
Hierarchy
- Serum3Orders
Index
Constructors
Properties
Methods
Constructors
constructor
Parameters
openOrders: PublicKey
marketIndex: MarketIndex
baseTokenIndex: TokenIndex
quoteTokenIndex: TokenIndex
Returns Serum3Orders
Properties
base
Token Index market
Index open
Orders quote
Token Index Static Serum3
Market Index Unset Methods
is
Active Returns boolean
Static from
Parameters
dto: Serum3PositionDto
Returns Serum3Orders
\ No newline at end of file diff --git a/ts/client/classes/Serum3PositionDto.html b/ts/client/classes/Serum3PositionDto.html index 82747da41..9003a1452 100644 --- a/ts/client/classes/Serum3PositionDto.html +++ b/ts/client/classes/Serum3PositionDto.html @@ -1 +1 @@ -Generated using TypeDoc
Serum3PositionDto | @blockworks-foundation/mango-v4 Class Serum3PositionDto
Hierarchy
- Serum3PositionDto
Index
Constructors
constructor
Parameters
openOrders: PublicKey
marketIndex: number
baseBorrowsWithoutFee: BN
quoteBorrowsWithoutFee: BN
baseTokenIndex: number
quoteTokenIndex: number
reserved: number[]
Returns Serum3PositionDto
Properties
base
Borrows Without Fee base
Token Index market
Index open
Orders quote
Borrows Without Fee quote
Token Index reserved
\ No newline at end of file +Generated using TypeDoc
Serum3PositionDto | @blockworks-foundation/mango-v4 Class Serum3PositionDto
Hierarchy
- Serum3PositionDto
Index
Constructors
constructor
Parameters
openOrders: PublicKey
marketIndex: number
baseBorrowsWithoutFee: BN
quoteBorrowsWithoutFee: BN
baseTokenIndex: number
quoteTokenIndex: number
reserved: number[]
Returns Serum3PositionDto
Properties
base
Borrows Without Fee base
Token Index market
Index open
Orders quote
Borrows Without Fee quote
Token Index reserved
\ No newline at end of file diff --git a/ts/client/classes/Serum3SelfTradeBehavior.html b/ts/client/classes/Serum3SelfTradeBehavior.html index 69533ff3f..9717f2774 100644 --- a/ts/client/classes/Serum3SelfTradeBehavior.html +++ b/ts/client/classes/Serum3SelfTradeBehavior.html @@ -1 +1 @@ -Generated using TypeDoc
Serum3SelfTradeBehavior | @blockworks-foundation/mango-v4 Class Serum3SelfTradeBehavior
Hierarchy
- Serum3SelfTradeBehavior
Index
Constructors
Properties
Constructors
constructor
Returns Serum3SelfTradeBehavior
Properties
Static abort
Transaction Type declaration
abort
Transaction: {}
Static cancel
Provide Type declaration
cancel
Provide: {}
Static decrement
Take Type declaration
decrement
Take: {}
\ No newline at end of file +Generated using TypeDoc
Serum3SelfTradeBehavior | @blockworks-foundation/mango-v4 Class Serum3SelfTradeBehavior
Hierarchy
- Serum3SelfTradeBehavior
Index
Constructors
Properties
Constructors
constructor
Returns Serum3SelfTradeBehavior
Properties
Static abort
Transaction Type declaration
abort
Transaction: {}
Static cancel
Provide Type declaration
cancel
Provide: {}
Static decrement
Take Type declaration
decrement
Take: {}
\ No newline at end of file diff --git a/ts/client/classes/Serum3Side.html b/ts/client/classes/Serum3Side.html index c3c90c1da..79284fba3 100644 --- a/ts/client/classes/Serum3Side.html +++ b/ts/client/classes/Serum3Side.html @@ -1 +1 @@ -Generated using TypeDoc
Serum3Side | @blockworks-foundation/mango-v4 Class Serum3Side
Hierarchy
- Serum3Side
Index
Constructors
Properties
Constructors
constructor
Returns Serum3Side
Properties
Static ask
Type declaration
ask: {}
Static bid
Type declaration
bid: {}
\ No newline at end of file +Generated using TypeDoc
Serum3Side | @blockworks-foundation/mango-v4 Class Serum3Side
Hierarchy
- Serum3Side
Index
Constructors
Properties
Constructors
constructor
Returns Serum3Side
Properties
Static ask
Type declaration
ask: {}
Static bid
Type declaration
bid: {}
\ No newline at end of file diff --git a/ts/client/classes/StubOracle.html b/ts/client/classes/StubOracle.html index 7bdefe90a..030041842 100644 --- a/ts/client/classes/StubOracle.html +++ b/ts/client/classes/StubOracle.html @@ -1 +1 @@ -Generated using TypeDoc
StubOracle | @blockworks-foundation/mango-v4 Class StubOracle
Hierarchy
- StubOracle
Index
Constructors
Properties
Methods
Constructors
constructor
Parameters
publicKey: PublicKey
group: PublicKey
mint: PublicKey
price: I80F48Dto
lastUpdateTs: BN
lastUpdateSlot: BN
deviation: I80F48Dto
Returns StubOracle
Properties
deviation
group
last
Update Slot last
Update Ts mint
price
public
Key Methods
Static from
Parameters
publicKey: PublicKey
obj: { deviation: I80F48Dto; group: PublicKey; lastUpdateSlot: BN; lastUpdateTs: BN; mint: PublicKey; price: I80F48Dto }
Returns StubOracle
\ No newline at end of file +Generated using TypeDoc
StubOracle | @blockworks-foundation/mango-v4 Class StubOracle
Hierarchy
- StubOracle
Index
Constructors
Properties
Methods
Constructors
constructor
Parameters
publicKey: PublicKey
group: PublicKey
mint: PublicKey
price: I80F48Dto
lastUpdateTs: BN
lastUpdateSlot: BN
deviation: I80F48Dto
Returns StubOracle
Properties
deviation
group
last
Update Slot last
Update Ts mint
price
public
Key Methods
Static from
Parameters
publicKey: PublicKey
obj: { deviation: I80F48Dto; group: PublicKey; lastUpdateSlot: BN; lastUpdateTs: BN; mint: PublicKey; price: I80F48Dto }
Returns StubOracle
\ No newline at end of file diff --git a/ts/client/classes/TokenConditionalSwap.html b/ts/client/classes/TokenConditionalSwap.html index 972852ef6..258a56370 100644 --- a/ts/client/classes/TokenConditionalSwap.html +++ b/ts/client/classes/TokenConditionalSwap.html @@ -1 +1 @@ -Generated using TypeDoc
TokenConditionalSwap | @blockworks-foundation/mango-v4 Class TokenConditionalSwap
Hierarchy
- TokenConditionalSwap
Index
Constructors
Properties
Methods
- get
Allow Creating Borrows - get
Allow Creating Deposits - get
Bought Ui - get
Buy Token - get
Current Pair Price Ui - get
Expiry Timestamp In Epoch Seconds - get
Max Buy Ui - get
Max Sell Ui - get
Price Lower Limit Ui - get
Price Premium - get
Price Upper Limit Ui - get
Sell Token - get
Sold Ui - get
Threshold Price Ui - get
Token Conditional Swap Display Price Style - price
Limit To Ui - to
String - from
Constructors
constructor
Parameters
id: BN
maxBuy: BN
maxSell: BN
bought: BN
sold: BN
expiryTimestamp: BN
priceLowerLimit: number
priceUpperLimit: number
pricePremiumRate: number
takerFeeRate: number
makerFeeRate: number
buyTokenIndex: TokenIndex
sellTokenIndex: TokenIndex
hasData: boolean
allowCreatingDeposits: boolean
allowCreatingBorrows: boolean
priceDisplayStyle: TokenConditionalSwapDisplayPriceStyle
intention: TokenConditionalSwapIntention
Returns TokenConditionalSwap
Properties
allow
Creating Borrows allow
Creating Deposits bought
buy
Token Index expiry
Timestamp has
Data id
intention
maker
Fee Rate max
Buy max
Sell price
Display Style price
Lower Limit price
Premium Rate price
Upper Limit sell
Token Index sold
taker
Fee Rate Methods
get
Allow Creating Borrows Returns boolean
get
Allow Creating Deposits Returns boolean
get
Bought Ui Parameters
group: Group
Returns number
get
Buy Token get
Current Pair Price Ui Parameters
group: Group
Returns number
get
Expiry Timestamp In Epoch Seconds Returns number
get
Max Buy Ui Parameters
group: Group
Returns number
get
Max Sell Ui Parameters
group: Group
Returns number
get
Price Lower Limit Ui Parameters
group: Group
Returns number
get
Price Premium Returns number
get
Price Upper Limit Ui Parameters
group: Group
Returns number
get
Sell Token get
Sold Ui Parameters
group: Group
Returns number
get
Threshold Price Ui Parameters
group: Group
Returns number
Private get
Token Conditional Swap Display Price Style Parameters
group: Group
Returns boolean
Private price
Limit To Ui Parameters
group: Group
sellTokenPerBuyTokenNative: number
Returns number
to
String Parameters
group: Group
Returns string
Static from
Parameters
Returns TokenConditionalSwap
\ No newline at end of file +Generated using TypeDoc
TokenConditionalSwap | @blockworks-foundation/mango-v4 Class TokenConditionalSwap
Hierarchy
- TokenConditionalSwap
Index
Constructors
Properties
Methods
- get
Allow Creating Borrows - get
Allow Creating Deposits - get
Bought Ui - get
Buy Token - get
Current Pair Price Ui - get
Expiry Timestamp In Epoch Seconds - get
Max Buy Ui - get
Max Sell Ui - get
Price Lower Limit Ui - get
Price Premium - get
Price Upper Limit Ui - get
Sell Token - get
Sold Ui - get
Threshold Price Ui - get
Token Conditional Swap Display Price Style - price
Limit To Ui - to
String - from
Constructors
constructor
Parameters
id: BN
maxBuy: BN
maxSell: BN
bought: BN
sold: BN
expiryTimestamp: BN
priceLowerLimit: number
priceUpperLimit: number
pricePremiumRate: number
takerFeeRate: number
makerFeeRate: number
buyTokenIndex: TokenIndex
sellTokenIndex: TokenIndex
hasData: boolean
allowCreatingDeposits: boolean
allowCreatingBorrows: boolean
priceDisplayStyle: TokenConditionalSwapDisplayPriceStyle
intention: TokenConditionalSwapIntention
Returns TokenConditionalSwap
Properties
allow
Creating Borrows allow
Creating Deposits bought
buy
Token Index expiry
Timestamp has
Data id
intention
maker
Fee Rate max
Buy max
Sell price
Display Style price
Lower Limit price
Premium Rate price
Upper Limit sell
Token Index sold
taker
Fee Rate Methods
get
Allow Creating Borrows Returns boolean
get
Allow Creating Deposits Returns boolean
get
Bought Ui Parameters
group: Group
Returns number
get
Buy Token get
Current Pair Price Ui Parameters
group: Group
Returns number
get
Expiry Timestamp In Epoch Seconds Returns number
get
Max Buy Ui Parameters
group: Group
Returns number
get
Max Sell Ui Parameters
group: Group
Returns number
get
Price Lower Limit Ui Parameters
group: Group
Returns number
get
Price Premium Returns number
get
Price Upper Limit Ui Parameters
group: Group
Returns number
get
Sell Token get
Sold Ui Parameters
group: Group
Returns number
get
Threshold Price Ui Parameters
group: Group
Returns number
Private get
Token Conditional Swap Display Price Style Parameters
group: Group
Returns boolean
Private price
Limit To Ui Parameters
group: Group
sellTokenPerBuyTokenNative: number
Returns number
to
String Parameters
group: Group
Returns string
Static from
Parameters
Returns TokenConditionalSwap
\ No newline at end of file diff --git a/ts/client/classes/TokenConditionalSwapDisplayPriceStyle.html b/ts/client/classes/TokenConditionalSwapDisplayPriceStyle.html index 8c92d255b..34c5ac626 100644 --- a/ts/client/classes/TokenConditionalSwapDisplayPriceStyle.html +++ b/ts/client/classes/TokenConditionalSwapDisplayPriceStyle.html @@ -1 +1 @@ -Generated using TypeDoc
TokenConditionalSwapDisplayPriceStyle | @blockworks-foundation/mango-v4 Class TokenConditionalSwapDisplayPriceStyle
\ No newline at end of file +Generated using TypeDoc
TokenConditionalSwapDisplayPriceStyle | @blockworks-foundation/mango-v4 Class TokenConditionalSwapDisplayPriceStyle
\ No newline at end of file diff --git a/ts/client/classes/TokenConditionalSwapDto.html b/ts/client/classes/TokenConditionalSwapDto.html index 3537332fe..4c480d497 100644 --- a/ts/client/classes/TokenConditionalSwapDto.html +++ b/ts/client/classes/TokenConditionalSwapDto.html @@ -1 +1 @@ -Generated using TypeDoc
TokenConditionalSwapDto | @blockworks-foundation/mango-v4 Class TokenConditionalSwapDto
Hierarchy
- TokenConditionalSwapDto
Index
Constructors
constructor
Parameters
id: BN
maxBuy: BN
maxSell: BN
bought: BN
sold: BN
expiryTimestamp: BN
priceLowerLimit: number
priceUpperLimit: number
pricePremiumRate: number
takerFeeRate: number
makerFeeRate: number
buyTokenIndex: number
sellTokenIndex: number
hasData: number
allowCreatingDeposits: number
allowCreatingBorrows: number
priceDisplayStyle: number
intention: number
Returns TokenConditionalSwapDto
Properties
allow
Creating Borrows allow
Creating Deposits bought
buy
Token Index expiry
Timestamp has
Data id
intention
maker
Fee Rate max
Buy max
Sell price
Display Style price
Lower Limit price
Premium Rate price
Upper Limit sell
Token Index sold
taker
Fee Rate \ No newline at end of file +Generated using TypeDoc
TokenConditionalSwapDto | @blockworks-foundation/mango-v4 Class TokenConditionalSwapDto
Hierarchy
- TokenConditionalSwapDto
Index
Constructors
constructor
Parameters
id: BN
maxBuy: BN
maxSell: BN
bought: BN
sold: BN
expiryTimestamp: BN
priceLowerLimit: number
priceUpperLimit: number
pricePremiumRate: number
takerFeeRate: number
makerFeeRate: number
buyTokenIndex: number
sellTokenIndex: number
hasData: number
allowCreatingDeposits: number
allowCreatingBorrows: number
priceDisplayStyle: number
intention: number
Returns TokenConditionalSwapDto
Properties
allow
Creating Borrows allow
Creating Deposits bought
buy
Token Index expiry
Timestamp has
Data id
intention
maker
Fee Rate max
Buy max
Sell price
Display Style price
Lower Limit price
Premium Rate price
Upper Limit sell
Token Index sold
taker
Fee Rate \ No newline at end of file diff --git a/ts/client/classes/TokenConditionalSwapIntention.html b/ts/client/classes/TokenConditionalSwapIntention.html index 9edf35167..5064f401b 100644 --- a/ts/client/classes/TokenConditionalSwapIntention.html +++ b/ts/client/classes/TokenConditionalSwapIntention.html @@ -1 +1 @@ -Generated using TypeDoc
TokenConditionalSwapIntention | @blockworks-foundation/mango-v4 Class TokenConditionalSwapIntention
Hierarchy
- TokenConditionalSwapIntention
Index
Constructors
Properties
Constructors
constructor
Returns TokenConditionalSwapIntention
Properties
Static stop
Loss Type declaration
stop
Loss: {}
Static take
Profit Type declaration
take
Profit: {}
Static unknown
Type declaration
unknown: {}
\ No newline at end of file +Generated using TypeDoc
TokenConditionalSwapIntention | @blockworks-foundation/mango-v4 Class TokenConditionalSwapIntention
Hierarchy
- TokenConditionalSwapIntention
Index
Constructors
Properties
Constructors
constructor
Returns TokenConditionalSwapIntention
Properties
Static stop
Loss Type declaration
stop
Loss: {}
Static take
Profit Type declaration
take
Profit: {}
Static unknown
Type declaration
unknown: {}
\ No newline at end of file diff --git a/ts/client/classes/TokenPosition.html b/ts/client/classes/TokenPosition.html index af5fb293d..07818bb53 100644 --- a/ts/client/classes/TokenPosition.html +++ b/ts/client/classes/TokenPosition.html @@ -1,7 +1,7 @@ -Generated using TypeDoc
TokenPosition | @blockworks-foundation/mango-v4 Class TokenPosition
Hierarchy
- TokenPosition
Index
Constructors
constructor
Parameters
indexedPosition: I80F48
tokenIndex: TokenIndex
inUseCount: number
previousIndex: I80F48
cumulativeDepositInterest: number
cumulativeBorrowInterest: number
Returns TokenPosition
Properties
cumulative
Borrow Interest cumulative
Deposit Interest in
Use Count indexed
Position previous
Index token
Index Static Token
Index Unset Methods
balance
balance
Ui Parameters
bank: Bank
Returns number
UI balance, is signed
-
borrows
borrows
Ui Parameters
bank: Bank
Returns number
UI borrows, 0 if position has deposits
-
deposits
deposits
Ui Parameters
bank: Bank
Returns number
UI deposits, 0 if position has borrows
-
is
Active Returns boolean
to
String Parameters
Optional group: Group
Optional index: number
Returns string
Static from
Parameters
dto: TokenPositionDto
Returns TokenPosition
\ No newline at end of file +Generated using TypeDoc
TokenPosition | @blockworks-foundation/mango-v4 Class TokenPosition
Hierarchy
- TokenPosition
Index
Constructors
constructor
Parameters
indexedPosition: I80F48
tokenIndex: TokenIndex
inUseCount: number
previousIndex: I80F48
cumulativeDepositInterest: number
cumulativeBorrowInterest: number
Returns TokenPosition
Properties
cumulative
Borrow Interest cumulative
Deposit Interest in
Use Count indexed
Position previous
Index token
Index Static Token
Index Unset Methods
balance
balance
Ui Parameters
bank: Bank
Returns number
UI balance, is signed
+
borrows
borrows
Ui Parameters
bank: Bank
Returns number
UI borrows, 0 if position has deposits
+
deposits
deposits
Ui Parameters
bank: Bank
Returns number
UI deposits, 0 if position has borrows
+
is
Active Returns boolean
to
String Parameters
Optional group: Group
Optional index: number
Returns string
Static from
Parameters
dto: TokenPositionDto
Returns TokenPosition
\ No newline at end of file diff --git a/ts/client/classes/TokenPositionDto.html b/ts/client/classes/TokenPositionDto.html index 7dc5a2d84..56e73b39e 100644 --- a/ts/client/classes/TokenPositionDto.html +++ b/ts/client/classes/TokenPositionDto.html @@ -1 +1 @@ -Generated using TypeDoc
TokenPositionDto | @blockworks-foundation/mango-v4 Class TokenPositionDto
Hierarchy
- TokenPositionDto
Index
Constructors
constructor
Parameters
indexedPosition: I80F48Dto
tokenIndex: number
inUseCount: number
reserved: number[]
previousIndex: I80F48Dto
cumulativeDepositInterest: number
cumulativeBorrowInterest: number
Returns TokenPositionDto
Properties
cumulative
Borrow Interest cumulative
Deposit Interest in
Use Count indexed
Position previous
Index reserved
token
Index \ No newline at end of file +Generated using TypeDoc
TokenPositionDto | @blockworks-foundation/mango-v4 Class TokenPositionDto
Hierarchy
- TokenPositionDto
Index
Constructors
constructor
Parameters
indexedPosition: I80F48Dto
tokenIndex: number
inUseCount: number
reserved: number[]
previousIndex: I80F48Dto
cumulativeDepositInterest: number
cumulativeBorrowInterest: number
Returns TokenPositionDto
Properties
cumulative
Borrow Interest cumulative
Deposit Interest in
Use Count indexed
Position previous
Index reserved
token
Index \ No newline at end of file diff --git a/ts/client/enums/OracleProvider.html b/ts/client/enums/OracleProvider.html index 368956973..4760d5c7a 100644 --- a/ts/client/enums/OracleProvider.html +++ b/ts/client/enums/OracleProvider.html @@ -1 +1 @@ -Generated using TypeDoc
OracleProvider | @blockworks-foundation/mango-v4 Enumeration OracleProvider
\ No newline at end of file +Generated using TypeDoc
OracleProvider | @blockworks-foundation/mango-v4 Enumeration OracleProvider
\ No newline at end of file diff --git a/ts/client/enums/SwapMode.html b/ts/client/enums/SwapMode.html index 38f145865..841f3f680 100644 --- a/ts/client/enums/SwapMode.html +++ b/ts/client/enums/SwapMode.html @@ -1 +1 @@ -Generated using TypeDoc
SwapMode | @blockworks-foundation/mango-v4 Enumeration SwapMode
\ No newline at end of file +Generated using TypeDoc
SwapMode | @blockworks-foundation/mango-v4 Enumeration SwapMode
\ No newline at end of file diff --git a/ts/client/index.html b/ts/client/index.html index 7c8317c6e..ece0d3706 100644 --- a/ts/client/index.html +++ b/ts/client/index.html @@ -1,7 +1,7 @@ -Generated using TypeDoc
@blockworks-foundation/mango-v4 @blockworks-foundation/mango-v4
Index
Enumerations
Classes
- As
- Bank
- Book
Side - Book
Side Type - Flash
Loan Type - Flash
Loan Withdraw - Group
- Health
Type - I80
F48 - I80
F48 Dto - Inner
Node - Interest
Rate Params - Leaf
Node - Mango
Account - Mango
Client - Mint
Info - Oracle
Config Params - Perp
Event Queue - Perp
Market - Perp
Oo - Perp
Oo Dto - Perp
Order - Perp
Order Side - Perp
Order Type - Perp
Position - Perp
Position Dto - Perp
Self Trade Behavior - Serum3
Market - Serum3
Order Type - Serum3
Orders - Serum3
Position Dto - Serum3
Self Trade Behavior - Serum3
Side - Stub
Oracle - Token
Conditional Swap - Token
Conditional Swap Display Price Style - Token
Conditional Swap Dto - Token
Conditional Swap Intention - Token
Position - Token
Position Dto
Interfaces
Type aliases
Variables
Functions
- HUNDRED_
I80 F48 - MAX_
I80 F48 - MINUS_
ONE_ I80 F48 - ONE_
I80 F48 - RUST_
I64_ MAX - RUST_
I64_ MIN - RUST_
U64_ MAX - ZERO_
I80 F48 - bps
To Decimal - build
Fetch - build
Ix Gate - build
Versioned Tx - compute
Price Impact On Jup - create
Associated Token Account Idempotent Instruction - create
Compute Budget Ix - fetch
Jupiter Transaction - fetch
Routes - get
Associated Token Address - get
Closest To Liquidation Perp Positions - get
Equity For Mango Accounts - get
Largest Perp Positions - get
On Chain Price For Mints - get
Perp Positions To Be Liquidated - get
Price Impact For Liqor - get
Risk Stats - percentage
To Decimal - prepare
Mango Router Instructions - round
To5 - send
Transaction - to
Native - to
Native I80 F48 - to
Native I80 F48 For Quote - to
Native Sell Per Buy Token Price - to
Ui Decimals - to
Ui Decimals For Quote - to
Ui I80 F48 - to
Ui Sell Per Buy Token Price
Type aliases
Account
Info Map Amm
Label Mango
V4 Type declaration
accounts: [{ name: "bank"; type: { fields: [{ name: "group"; type: "publicKey" }, { name: "name"; type: { array: ["u8", 16] } }, { name: "mint"; type: "publicKey" }, { name: "vault"; type: "publicKey" }, { name: "oracle"; type: "publicKey" }, { name: "oracleConfig"; type: { defined: "OracleConfig" } }, { name: "stablePriceModel"; type: { defined: "StablePriceModel" } }, { docs: ["the index used to scale the value of an IndexedPosition", "TODO: should always be >= 0, add checks?"]; name: "depositIndex"; type: { defined: "I80F48" } }, { name: "borrowIndex"; type: { defined: "I80F48" } }, { docs: ["deposits/borrows for this bank", "", "Note that these may become negative. It's perfectly fine for users to borrow one one bank", "(increasing indexed_borrows there) and paying back on another (possibly decreasing indexed_borrows", "below zero).", "", "The vault amount is not deducable from these values.", "", "These become meaningful when summed over all banks (like in update_index_and_rate)."]; name: "indexedDeposits"; type: { defined: "I80F48" } }, { name: "indexedBorrows"; type: { defined: "I80F48" } }, { name: "indexLastUpdated"; type: "u64" }, { name: "bankRateLastUpdated"; type: "u64" }, { name: "avgUtilization"; type: { defined: "I80F48" } }, { name: "adjustmentFactor"; type: { defined: "I80F48" } }, { name: "util0"; type: { defined: "I80F48" } }, { name: "rate0"; type: { defined: "I80F48" } }, { name: "util1"; type: { defined: "I80F48" } }, { name: "rate1"; type: { defined: "I80F48" } }, { name: "maxRate"; type: { defined: "I80F48" } }, { name: "collectedFeesNative"; type: { defined: "I80F48" } }, { name: "loanOriginationFeeRate"; type: { defined: "I80F48" } }, { name: "loanFeeRate"; type: { defined: "I80F48" } }, { name: "maintAssetWeight"; type: { defined: "I80F48" } }, { name: "initAssetWeight"; type: { defined: "I80F48" } }, { name: "maintLiabWeight"; type: { defined: "I80F48" } }, { name: "initLiabWeight"; type: { defined: "I80F48" } }, { name: "liquidationFee"; type: { defined: "I80F48" } }, { name: "dust"; type: { defined: "I80F48" } }, { name: "flashLoanTokenAccountInitial"; type: "u64" }, { name: "flashLoanApprovedAmount"; type: "u64" }, { name: "tokenIndex"; type: "u16" }, { name: "bump"; type: "u8" }, { name: "mintDecimals"; type: "u8" }, { name: "bankNum"; type: "u32" }, { docs: ["Min fraction of deposits that must remain in the vault when borrowing."]; name: "minVaultToDepositsRatio"; type: "f64" }, { docs: ["Size in seconds of a net borrows window"]; name: "netBorrowLimitWindowSizeTs"; type: "u64" }, { docs: ["Timestamp at which the last net borrows window started"]; name: "lastNetBorrowsWindowStartTs"; type: "u64" }, { docs: ["Net borrow limit per window in quote native; set to -1 to disable."]; name: "netBorrowLimitPerWindowQuote"; type: "i64" }, { docs: ["Sum of all deposits and borrows in the last window, in native units."]; name: "netBorrowsInWindow"; type: "i64" }, { docs: ["Soft borrow limit in native quote", "", "Once the borrows on the bank exceed this quote value, init_liab_weight is scaled up.", "Set to f64::MAX to disable.", "", "See scaled_init_liab_weight()."]; name: "borrowWeightScaleStartQuote"; type: "f64" }, { docs: ["Limit for collateral of deposits in native quote", "", "Once the deposits in the bank exceed this quote value, init_asset_weight is scaled", "down to keep the total collateral value constant.", "Set to f64::MAX to disable.", "", "See scaled_init_asset_weight()."]; name: "depositWeightScaleStartQuote"; type: "f64" }, { name: "reduceOnly"; type: "u8" }, { name: "forceClose"; type: "u8" }, { name: "padding"; type: { array: ["u8", 6] } }, { name: "feesWithdrawn"; type: "u64" }, { docs: ["Fees for the token conditional swap feature"]; name: "tokenConditionalSwapTakerFeeRate"; type: "f32" }, { name: "tokenConditionalSwapMakerFeeRate"; type: "f32" }, { name: "flashLoanDepositFeeRate"; type: "f32" }, { name: "reserved"; type: { array: ["u8", 2092] } }]; kind: "struct" } }, { name: "group"; type: { fields: [{ name: "creator"; type: "publicKey" }, { name: "groupNum"; type: "u32" }, { name: "admin"; type: "publicKey" }, { name: "fastListingAdmin"; type: "publicKey" }, { name: "mngoTokenIndex"; type: "u16" }, { name: "padding"; type: { array: ["u8", 2] } }, { name: "insuranceVault"; type: "publicKey" }, { name: "insuranceMint"; type: "publicKey" }, { name: "bump"; type: "u8" }, { name: "testing"; type: "u8" }, { name: "version"; type: "u8" }, { name: "buybackFees"; type: "u8" }, { name: "buybackFeesMngoBonusFactor"; type: "f32" }, { name: "addressLookupTables"; type: { array: ["publicKey", 20] } }, { name: "securityAdmin"; type: "publicKey" }, { name: "depositLimitQuote"; type: "u64" }, { name: "ixGate"; type: "u128" }, { name: "buybackFeesSwapMangoAccount"; type: "publicKey" }, { docs: ["Number of seconds after which fees that could be used with the fees buyback feature expire.", "", "The actual expiry is staggered such that the fees users accumulate are always", "available for at least this interval - but may be available for up to twice this time.", "", "When set to 0, there's no expiry of buyback fees."]; name: "buybackFeesExpiryInterval"; type: "u64" }, { name: "reserved"; type: { array: ["u8", 1824] } }]; kind: "struct" } }, { name: "mangoAccount"; type: { fields: [{ name: "group"; type: "publicKey" }, { name: "owner"; type: "publicKey" }, { name: "name"; type: { array: ["u8", 32] } }, { name: "delegate"; type: "publicKey" }, { name: "accountNum"; type: "u32" }, { docs: ["Tracks that this account should be liquidated until init_health >= 0.", "", "Normally accounts can not be liquidated while maint_health >= 0. But when an account", "reaches maint_health < 0, liquidators will call a liquidation instruction and thereby", "set this flag. Now the account may be liquidated until init_health >= 0.", "", "Many actions should be disabled while the account is being liquidated, even if", "its maint health has recovered to positive. Creating new open orders would, for example,", "confuse liquidators."]; name: "beingLiquidated"; type: "u8" }, { docs: ["The account is currently inside a health region marked by HealthRegionBegin...HealthRegionEnd.", "", "Must never be set after a transaction ends."]; name: "inHealthRegion"; type: "u8" }, { name: "bump"; type: "u8" }, { name: "padding"; type: { array: ["u8", 1] } }, { name: "netDeposits"; type: "i64" }, { name: "perpSpotTransfers"; type: "i64" }, { docs: ["Init health as calculated during HealthReginBegin, rounded up."]; name: "healthRegionBeginInitHealth"; type: "i64" }, { name: "frozenUntil"; type: "u64" }, { docs: ["Fees usable with the \"fees buyback\" feature.", "This tracks the ones that accrued in the current expiry interval."]; name: "buybackFeesAccruedCurrent"; type: "u64" }, { docs: ["Fees buyback amount from the previous expiry interval."]; name: "buybackFeesAccruedPrevious"; type: "u64" }, { docs: ["End timestamp of the current expiry interval of the buyback fees amount."]; name: "buybackFeesExpiryTimestamp"; type: "u64" }, { docs: ["Next id to use when adding a token condition swap"]; name: "nextTokenConditionalSwapId"; type: "u64" }, { name: "reserved"; type: { array: ["u8", 200] } }, { name: "headerVersion"; type: "u8" }, { name: "padding3"; type: { array: ["u8", 7] } }, { name: "padding4"; type: "u32" }, { name: "tokens"; type: { vec: { defined: "TokenPosition" } } }, { name: "padding5"; type: "u32" }, { name: "serum3"; type: { vec: { defined: "Serum3Orders" } } }, { name: "padding6"; type: "u32" }, { name: "perps"; type: { vec: { defined: "PerpPosition" } } }, { name: "padding7"; type: "u32" }, { name: "perpOpenOrders"; type: { vec: { defined: "PerpOpenOrder" } } }]; kind: "struct" } }, { name: "mintInfo"; type: { fields: [{ name: "group"; type: "publicKey" }, { name: "tokenIndex"; type: "u16" }, { name: "groupInsuranceFund"; type: "u8" }, { name: "padding1"; type: { array: ["u8", 5] } }, { name: "mint"; type: "publicKey" }, { name: "banks"; type: { array: ["publicKey", 6] } }, { name: "vaults"; type: { array: ["publicKey", 6] } }, { name: "oracle"; type: "publicKey" }, { name: "registrationTime"; type: "u64" }, { name: "reserved"; type: { array: ["u8", 2560] } }]; kind: "struct" } }, { name: "openbookV2Market"; type: { fields: [{ name: "group"; type: "publicKey" }, { name: "baseTokenIndex"; type: "u16" }, { name: "quoteTokenIndex"; type: "u16" }, { name: "reduceOnly"; type: "u8" }, { name: "forceClose"; type: "u8" }, { name: "padding1"; type: { array: ["u8", 2] } }, { name: "name"; type: { array: ["u8", 16] } }, { name: "openbookV2Program"; type: "publicKey" }, { name: "openbookV2MarketExternal"; type: "publicKey" }, { name: "marketIndex"; type: "u16" }, { name: "bump"; type: "u8" }, { name: "padding2"; type: { array: ["u8", 5] } }, { name: "registrationTime"; type: "u64" }, { name: "reserved"; type: { array: ["u8", 512] } }]; kind: "struct" } }, { name: "openbookV2MarketIndexReservation"; type: { fields: [{ name: "group"; type: "publicKey" }, { name: "marketIndex"; type: "u16" }, { name: "reserved"; type: { array: ["u8", 38] } }]; kind: "struct" } }, { name: "stubOracle"; type: { fields: [{ name: "group"; type: "publicKey" }, { name: "mint"; type: "publicKey" }, { name: "price"; type: { defined: "I80F48" } }, { name: "lastUpdateTs"; type: "i64" }, { name: "lastUpdateSlot"; type: "u64" }, { name: "deviation"; type: { defined: "I80F48" } }, { name: "reserved"; type: { array: ["u8", 104] } }]; kind: "struct" } }, { name: "bookSide"; type: { fields: [{ name: "roots"; type: { array: [{ defined: "OrderTreeRoot" }, 2] } }, { name: "reservedRoots"; type: { array: [{ defined: "OrderTreeRoot" }, 4] } }, { name: "reserved"; type: { array: ["u8", 256] } }, { name: "nodes"; type: { defined: "OrderTreeNodes" } }]; kind: "struct" } }, { name: "eventQueue"; type: { fields: [{ name: "header"; type: { defined: "EventQueueHeader" } }, { name: "buf"; type: { array: [{ defined: "AnyEvent" }, 488] } }, { name: "reserved"; type: { array: ["u8", 64] } }]; kind: "struct" } }, { name: "perpMarket"; type: { fields: [{ name: "group"; type: "publicKey" }, { docs: ["Token index that settlements happen in.", "", "Currently required to be 0, USDC. In the future settlement", "may be allowed to happen in other tokens."]; name: "settleTokenIndex"; type: "u16" }, { docs: ["Index of this perp market. Other data, like the MangoAccount's PerpPosition", "reference this market via this index. Unique for this group's perp markets."]; name: "perpMarketIndex"; type: "u16" }, { docs: ["Field used to contain the trusted_market flag and is now unused."]; name: "blocked1"; type: "u8" }, { docs: ["Is this market covered by the group insurance fund?"]; name: "groupInsuranceFund"; type: "u8" }, { docs: ["PDA bump"]; name: "bump"; type: "u8" }, { docs: ["Number of decimals used for the base token.", "", "Used to convert the oracle's price into a native/native price."]; name: "baseDecimals"; type: "u8" }, { docs: ["Name. Trailing zero bytes are ignored."]; name: "name"; type: { array: ["u8", 16] } }, { docs: ["Address of the BookSide account for bids"]; name: "bids"; type: "publicKey" }, { docs: ["Address of the BookSide account for asks"]; name: "asks"; type: "publicKey" }, { docs: ["Address of the EventQueue account"]; name: "eventQueue"; type: "publicKey" }, { docs: ["Oracle account address"]; name: "oracle"; type: "publicKey" }, { docs: ["Oracle configuration"]; name: "oracleConfig"; type: { defined: "OracleConfig" } }, { docs: ["Maintains a stable price based on the oracle price that is less volatile."]; name: "stablePriceModel"; type: { defined: "StablePriceModel" } }, { docs: ["Number of quote native in a quote lot. Must be a power of 10.", "", "Primarily useful for increasing the tick size on the market: A lot price", "of 1 becomes a native price of quote_lot_size/base_lot_size becomes a", "ui price of quote_lot_size*base_decimals/base_lot_size/quote_decimals."]; name: "quoteLotSize"; type: "i64" }, { docs: ["Number of base native in a base lot. Must be a power of 10.", "", "Example: If base decimals for the underlying asset is 6, base lot size", "is 100 and and base position lots is 10_000 then base position native is", "1_000_000 and base position ui is 1."]; name: "baseLotSize"; type: "i64" }, { docs: ["These weights apply to the base position. The quote position has", "no explicit weight (but may be covered by the overall pnl asset weight)."]; name: "maintBaseAssetWeight"; type: { defined: "I80F48" } }, { name: "initBaseAssetWeight"; type: { defined: "I80F48" } }, { name: "maintBaseLiabWeight"; type: { defined: "I80F48" } }, { name: "initBaseLiabWeight"; type: { defined: "I80F48" } }, { docs: ["Number of base lots currently active in the market. Always >= 0.", "", "Since this counts positive base lots and negative base lots, the more relevant", "number of open base lot pairs is half this value."]; name: "openInterest"; type: "i64" }, { docs: ["Total number of orders seen"]; name: "seqNum"; type: "u64" }, { docs: ["Timestamp in seconds that the market was registered at."]; name: "registrationTime"; type: "u64" }, { docs: ["Minimal funding rate per day, must be <= 0."]; name: "minFunding"; type: { defined: "I80F48" } }, { docs: ["Maximal funding rate per day, must be >= 0."]; name: "maxFunding"; type: { defined: "I80F48" } }, { docs: ["For funding, get the impact price this many base lots deep into the book."]; name: "impactQuantity"; type: "i64" }, { docs: ["Current long funding value. Increasing it means that every long base lot", "needs to pay that amount of quote native in funding.", "", "PerpPosition uses and tracks it settle funding. Updated by the perp", "keeper instruction."]; name: "longFunding"; type: { defined: "I80F48" } }, { docs: ["See long_funding."]; name: "shortFunding"; type: { defined: "I80F48" } }, { docs: ["timestamp that funding was last updated in"]; name: "fundingLastUpdated"; type: "u64" }, { docs: ["Fees", "Fee for base position liquidation"]; name: "baseLiquidationFee"; type: { defined: "I80F48" } }, { docs: ["Fee when matching maker orders. May be negative."]; name: "makerFee"; type: { defined: "I80F48" } }, { docs: ["Fee for taker orders, may not be negative."]; name: "takerFee"; type: { defined: "I80F48" } }, { docs: ["Fees accrued in native quote currency", "these are increased when new fees are paid and decreased when perp_settle_fees is called"]; name: "feesAccrued"; type: { defined: "I80F48" } }, { docs: ["Fees settled in native quote currency", "these are increased when perp_settle_fees is called, and never decreased"]; name: "feesSettled"; type: { defined: "I80F48" } }, { docs: ["Fee (in quote native) to charge for ioc orders"]; name: "feePenalty"; type: "f32" }, { docs: ["In native units of settlement token, given to each settle call above the", "settle_fee_amount_threshold."]; name: "settleFeeFlat"; type: "f32" }, { docs: ["Pnl settlement amount needed to be eligible for the flat fee."]; name: "settleFeeAmountThreshold"; type: "f32" }, { docs: ["Fraction of pnl to pay out as fee if +pnl account has low health."]; name: "settleFeeFractionLowHealth"; type: "f32" }, { docs: ["Controls the strictness of the settle limit.", "Set to a negative value to disable the limit.", "", "This factor applies to the settle limit in two ways", "- for the unrealized pnl settle limit, the factor is multiplied with the stable perp base value", "(i.e. limit_factor * base_native * stable_price)", "- when increasing the realized pnl settle limit (stored per PerpPosition), the factor is", "multiplied with the stable value of the perp pnl being realized", "(i.e. limit_factor * reduced_native * stable_price)", "", "See also PerpPosition::settle_pnl_limit_realized_trade"]; name: "settlePnlLimitFactor"; type: "f32" }, { name: "padding3"; type: { array: ["u8", 4] } }, { docs: ["Window size in seconds for the perp settlement limit"]; name: "settlePnlLimitWindowSizeTs"; type: "u64" }, { docs: ["If true, users may no longer increase their market exposure. Only actions", "that reduce their position are still allowed."]; name: "reduceOnly"; type: "u8" }, { name: "forceClose"; type: "u8" }, { name: "padding4"; type: { array: ["u8", 6] } }, { docs: ["Weights for full perp market health, if positive"]; name: "maintOverallAssetWeight"; type: { defined: "I80F48" } }, { name: "initOverallAssetWeight"; type: { defined: "I80F48" } }, { name: "positivePnlLiquidationFee"; type: { defined: "I80F48" } }, { name: "feesWithdrawn"; type: "u64" }, { name: "reserved"; type: { array: ["u8", 1880] } }]; kind: "struct" } }, { name: "serum3Market"; type: { fields: [{ name: "group"; type: "publicKey" }, { name: "baseTokenIndex"; type: "u16" }, { name: "quoteTokenIndex"; type: "u16" }, { name: "reduceOnly"; type: "u8" }, { name: "forceClose"; type: "u8" }, { name: "padding1"; type: { array: ["u8", 2] } }, { name: "name"; type: { array: ["u8", 16] } }, { name: "serumProgram"; type: "publicKey" }, { name: "serumMarketExternal"; type: "publicKey" }, { name: "marketIndex"; type: "u16" }, { name: "bump"; type: "u8" }, { name: "padding2"; type: { array: ["u8", 5] } }, { name: "registrationTime"; type: "u64" }, { name: "reserved"; type: { array: ["u8", 128] } }]; kind: "struct" } }, { name: "serum3MarketIndexReservation"; type: { fields: [{ name: "group"; type: "publicKey" }, { name: "marketIndex"; type: "u16" }, { name: "reserved"; type: { array: ["u8", 38] } }]; kind: "struct" } }]
errors: [{ code: 6000; msg: ""; name: "SomeError" }, { code: 6001; msg: ""; name: "NotImplementedError" }, { code: 6002; msg: "checked math error"; name: "MathError" }, { code: 6003; msg: ""; name: "UnexpectedOracle" }, { code: 6004; msg: "oracle type cannot be determined"; name: "UnknownOracleType" }, { code: 6005; msg: ""; name: "InvalidFlashLoanTargetCpiProgram" }, { code: 6006; msg: "health must be positive"; name: "HealthMustBePositive" }, { code: 6007; msg: "health must be positive or not decrease"; name: "HealthMustBePositiveOrIncrease" }, { code: 6008; msg: "health must be negative"; name: "HealthMustBeNegative" }, { code: 6009; msg: "the account is bankrupt"; name: "IsBankrupt" }, { code: 6010; msg: "the account is not bankrupt"; name: "IsNotBankrupt" }, { code: 6011; msg: "no free token position index"; name: "NoFreeTokenPositionIndex" }, { code: 6012; msg: "no free serum3 open orders index"; name: "NoFreeSerum3OpenOrdersIndex" }, { code: 6013; msg: "no free perp position index"; name: "NoFreePerpPositionIndex" }, { code: 6014; msg: "serum3 open orders exist already"; name: "Serum3OpenOrdersExistAlready" }, { code: 6015; msg: "bank vault has insufficent funds"; name: "InsufficentBankVaultFunds" }, { code: 6016; msg: "account is currently being liquidated"; name: "BeingLiquidated" }, { code: 6017; msg: "invalid bank"; name: "InvalidBank" }, { code: 6018; msg: "account profitability is mismatched"; name: "ProfitabilityMismatch" }, { code: 6019; msg: "cannot settle with self"; name: "CannotSettleWithSelf" }, { code: 6020; msg: "perp position does not exist"; name: "PerpPositionDoesNotExist" }, { code: 6021; msg: "max settle amount must be greater than zero"; name: "MaxSettleAmountMustBeGreaterThanZero" }, { code: 6022; msg: "the perp position has open orders or unprocessed fill events"; name: "HasOpenPerpOrders" }, { code: 6023; msg: "an oracle does not reach the confidence threshold"; name: "OracleConfidence" }, { code: 6024; msg: "an oracle is stale"; name: "OracleStale" }, { code: 6025; msg: "settlement amount must always be positive"; name: "SettlementAmountMustBePositive" }, { code: 6026; msg: "bank utilization has reached limit"; name: "BankBorrowLimitReached" }, { code: 6027; msg: "bank net borrows has reached limit - this is an intermittent error - the limit will reset regularly"; name: "BankNetBorrowsLimitReached" }, { code: 6028; msg: "token position does not exist"; name: "TokenPositionDoesNotExist" }, { code: 6029; msg: "token deposits into accounts that are being liquidated must bring their health above the init threshold"; name: "DepositsIntoLiquidatingMustRecover" }, { code: 6030; msg: "token is in reduce only mode"; name: "TokenInReduceOnlyMode" }, { code: 6031; msg: "market is in reduce only mode"; name: "MarketInReduceOnlyMode" }, { code: 6032; msg: "group is halted"; name: "GroupIsHalted" }, { code: 6033; msg: "the perp position has non-zero base lots"; name: "PerpHasBaseLots" }, { code: 6034; msg: "there are open or unsettled serum3 orders"; name: "HasOpenOrUnsettledSerum3Orders" }, { code: 6035; msg: "has liquidatable token position"; name: "HasLiquidatableTokenPosition" }, { code: 6036; msg: "has liquidatable perp base position"; name: "HasLiquidatablePerpBasePosition" }, { code: 6037; msg: "has liquidatable positive perp pnl"; name: "HasLiquidatablePositivePerpPnl" }, { code: 6038; msg: "account is frozen"; name: "AccountIsFrozen" }, { code: 6039; msg: "Init Asset Weight can't be negative"; name: "InitAssetWeightCantBeNegative" }, { code: 6040; msg: "has open perp taker fills"; name: "HasOpenPerpTakerFills" }, { code: 6041; msg: "deposit crosses the current group deposit limit"; name: "DepositLimit" }, { code: 6042; msg: "instruction is disabled"; name: "IxIsDisabled" }, { code: 6043; msg: "no liquidatable perp base position"; name: "NoLiquidatablePerpBasePosition" }, { code: 6044; msg: "perp order id not found on the orderbook"; name: "PerpOrderIdNotFound" }, { code: 6045; msg: "HealthRegions allow only specific instructions between Begin and End"; name: "HealthRegionBadInnerInstruction" }, { code: 6046; msg: "token is in force close"; name: "TokenInForceClose" }, { code: 6047; msg: "incorrect number of health accounts"; name: "InvalidHealthAccountCount" }, { code: 6048; msg: "would self trade"; name: "WouldSelfTrade" }, { code: 6049; msg: "conditional token swap price is not in execution range"; name: "TokenConditionalSwapPriceNotInRange" }]
events: [{ fields: [{ index: false; name: "initHealth"; type: { defined: "I80F48" } }, { index: false; name: "maintHealth"; type: { defined: "I80F48" } }, { index: false; name: "equity"; type: { defined: "Equity" } }]; name: "MangoAccountData" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "marketIndex"; type: "u16" }, { index: false; name: "basePosition"; type: "i64" }, { index: false; name: "quotePosition"; type: "i128" }, { index: false; name: "longSettledFunding"; type: "i128" }, { index: false; name: "shortSettledFunding"; type: "i128" }, { index: false; name: "longFunding"; type: "i128" }, { index: false; name: "shortFunding"; type: "i128" }]; name: "PerpBalanceLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "tokenIndex"; type: "u16" }, { index: false; name: "indexedPosition"; type: "i128" }, { index: false; name: "depositIndex"; type: "i128" }, { index: false; name: "borrowIndex"; type: "i128" }]; name: "TokenBalanceLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "tokenLoanDetails"; type: { vec: { defined: "FlashLoanTokenDetail" } } }, { index: false; name: "flashLoanType"; type: { defined: "FlashLoanType" } }]; name: "FlashLoanLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "tokenLoanDetails"; type: { vec: { defined: "FlashLoanTokenDetailV2" } } }, { index: false; name: "flashLoanType"; type: { defined: "FlashLoanType" } }]; name: "FlashLoanLogV2" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "signer"; type: "publicKey" }, { index: false; name: "tokenIndex"; type: "u16" }, { index: false; name: "quantity"; type: "u64" }, { index: false; name: "price"; type: "i128" }]; name: "WithdrawLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "signer"; type: "publicKey" }, { index: false; name: "tokenIndex"; type: "u16" }, { index: false; name: "quantity"; type: "u64" }, { index: false; name: "price"; type: "i128" }]; name: "DepositLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "marketIndex"; type: "u16" }, { index: false; name: "takerSide"; type: "u8" }, { index: false; name: "makerSlot"; type: "u8" }, { index: false; name: "makerOut"; type: "bool" }, { index: false; name: "timestamp"; type: "u64" }, { index: false; name: "seqNum"; type: "u64" }, { index: false; name: "maker"; type: "publicKey" }, { index: false; name: "makerOrderId"; type: "u128" }, { index: false; name: "makerFee"; type: "i128" }, { index: false; name: "makerTimestamp"; type: "u64" }, { index: false; name: "taker"; type: "publicKey" }, { index: false; name: "takerOrderId"; type: "u128" }, { index: false; name: "takerClientOrderId"; type: "u64" }, { index: false; name: "takerFee"; type: "i128" }, { index: false; name: "price"; type: "i64" }, { index: false; name: "quantity"; type: "i64" }]; name: "FillLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "marketIndex"; type: "u16" }, { index: false; name: "takerSide"; type: "u8" }, { index: false; name: "makerSlot"; type: "u8" }, { index: false; name: "makerOut"; type: "bool" }, { index: false; name: "timestamp"; type: "u64" }, { index: false; name: "seqNum"; type: "u64" }, { index: false; name: "maker"; type: "publicKey" }, { index: false; name: "makerClientOrderId"; type: "u64" }, { index: false; name: "makerFee"; type: "f32" }, { index: false; name: "makerTimestamp"; type: "u64" }, { index: false; name: "taker"; type: "publicKey" }, { index: false; name: "takerClientOrderId"; type: "u64" }, { index: false; name: "takerFee"; type: "f32" }, { index: false; name: "price"; type: "i64" }, { index: false; name: "quantity"; type: "i64" }]; name: "FillLogV2" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "marketIndex"; type: "u16" }, { index: false; name: "takerSide"; type: "u8" }, { index: false; name: "makerSlot"; type: "u8" }, { index: false; name: "makerOut"; type: "bool" }, { index: false; name: "timestamp"; type: "u64" }, { index: false; name: "seqNum"; type: "u64" }, { index: false; name: "maker"; type: "publicKey" }, { index: false; name: "makerClientOrderId"; type: "u64" }, { index: false; name: "makerFee"; type: "f32" }, { index: false; name: "makerTimestamp"; type: "u64" }, { index: false; name: "taker"; type: "publicKey" }, { index: false; name: "takerClientOrderId"; type: "u64" }, { index: false; name: "takerFee"; type: "f32" }, { index: false; name: "price"; type: "i64" }, { index: false; name: "quantity"; type: "i64" }, { index: false; name: "makerClosedPnl"; type: "f64" }, { index: false; name: "takerClosedPnl"; type: "f64" }]; name: "FillLogV3" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "marketIndex"; type: "u16" }, { index: false; name: "longFunding"; type: "i128" }, { index: false; name: "shortFunding"; type: "i128" }, { index: false; name: "price"; type: "i128" }, { index: false; name: "oracleSlot"; type: "u64" }, { index: false; name: "stablePrice"; type: "i128" }, { index: false; name: "feesAccrued"; type: "i128" }, { index: false; name: "feesSettled"; type: "i128" }, { index: false; name: "openInterest"; type: "i64" }, { index: false; name: "instantaneousFundingRate"; type: "i128" }]; name: "PerpUpdateFundingLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "marketIndex"; type: "u16" }, { index: false; name: "longFunding"; type: "i128" }, { index: false; name: "shortFunding"; type: "i128" }, { index: false; name: "price"; type: "i128" }, { index: false; name: "oracleSlot"; type: "u64" }, { index: false; name: "oracleConfidence"; type: "i128" }, { index: false; name: "oracleType"; type: { defined: "OracleType" } }, { index: false; name: "stablePrice"; type: "i128" }, { index: false; name: "feesAccrued"; type: "i128" }, { index: false; name: "feesSettled"; type: "i128" }, { index: false; name: "openInterest"; type: "i64" }, { index: false; name: "instantaneousFundingRate"; type: "i128" }]; name: "PerpUpdateFundingLogV2" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "tokenIndex"; type: "u16" }, { index: false; name: "depositIndex"; type: "i128" }, { index: false; name: "borrowIndex"; type: "i128" }, { index: false; name: "avgUtilization"; type: "i128" }, { index: false; name: "price"; type: "i128" }, { index: false; name: "stablePrice"; type: "i128" }, { index: false; name: "collectedFees"; type: "i128" }, { index: false; name: "loanFeeRate"; type: "i128" }, { index: false; name: "totalBorrows"; type: "i128" }, { index: false; name: "totalDeposits"; type: "i128" }, { index: false; name: "borrowRate"; type: "i128" }, { index: false; name: "depositRate"; type: "i128" }]; name: "UpdateIndexLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "tokenIndex"; type: "u16" }, { index: false; name: "rate0"; type: "i128" }, { index: false; name: "rate1"; type: "i128" }, { index: false; name: "maxRate"; type: "i128" }]; name: "UpdateRateLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "liqee"; type: "publicKey" }, { index: false; name: "liqor"; type: "publicKey" }, { index: false; name: "assetTokenIndex"; type: "u16" }, { index: false; name: "liabTokenIndex"; type: "u16" }, { index: false; name: "assetTransfer"; type: "i128" }, { index: false; name: "liabTransfer"; type: "i128" }, { index: false; name: "assetPrice"; type: "i128" }, { index: false; name: "liabPrice"; type: "i128" }, { index: false; name: "bankruptcy"; type: "bool" }]; name: "TokenLiqWithTokenLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "baseTokenIndex"; type: "u16" }, { index: false; name: "quoteTokenIndex"; type: "u16" }, { index: false; name: "baseTotal"; type: "u64" }, { index: false; name: "baseFree"; type: "u64" }, { index: false; name: "quoteTotal"; type: "u64" }, { index: false; name: "quoteFree"; type: "u64" }, { index: false; name: "referrerRebatesAccrued"; type: "u64" }]; name: "Serum3OpenOrdersBalanceLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "marketIndex"; type: "u16" }, { index: false; name: "baseTokenIndex"; type: "u16" }, { index: false; name: "quoteTokenIndex"; type: "u16" }, { index: false; name: "baseTotal"; type: "u64" }, { index: false; name: "baseFree"; type: "u64" }, { index: false; name: "quoteTotal"; type: "u64" }, { index: false; name: "quoteFree"; type: "u64" }, { index: false; name: "referrerRebatesAccrued"; type: "u64" }]; name: "Serum3OpenOrdersBalanceLogV2" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "tokenIndex"; type: "u16" }, { index: false; name: "loanOriginationFee"; type: "i128" }, { index: false; name: "instruction"; type: { defined: "LoanOriginationFeeInstruction" } }]; name: "WithdrawLoanOriginationFeeLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "tokenIndex"; type: "u16" }, { index: false; name: "loanAmount"; type: "i128" }, { index: false; name: "loanOriginationFee"; type: "i128" }, { index: false; name: "instruction"; type: { defined: "LoanOriginationFeeInstruction" } }, { index: false; name: "price"; type: { option: "i128" } }]; name: "WithdrawLoanLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "liqee"; type: "publicKey" }, { index: false; name: "liqor"; type: "publicKey" }, { index: false; name: "liabTokenIndex"; type: "u16" }, { index: false; name: "initialLiabNative"; type: "i128" }, { index: false; name: "liabPrice"; type: "i128" }, { index: false; name: "insuranceTokenIndex"; type: "u16" }, { index: false; name: "insuranceTransfer"; type: "i128" }, { index: false; name: "socializedLoss"; type: "i128" }, { index: false; name: "startingLiabDepositIndex"; type: "i128" }, { index: false; name: "endingLiabDepositIndex"; type: "i128" }]; name: "TokenLiqBankruptcyLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "tokenIndex"; type: "u16" }, { index: false; name: "cumulativeDepositInterest"; type: "f64" }, { index: false; name: "cumulativeBorrowInterest"; type: "f64" }]; name: "DeactivateTokenPositionLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "marketIndex"; type: "u16" }, { index: false; name: "cumulativeLongFunding"; type: "f64" }, { index: false; name: "cumulativeShortFunding"; type: "f64" }, { index: false; name: "makerVolume"; type: "u64" }, { index: false; name: "takerVolume"; type: "u64" }, { index: false; name: "perpSpotTransfers"; type: "i64" }]; name: "DeactivatePerpPositionLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mint"; type: "publicKey" }, { index: false; name: "tokenIndex"; type: "u16" }, { index: false; name: "mintDecimals"; type: "u8" }, { index: false; name: "oracle"; type: "publicKey" }, { index: false; name: "mintInfo"; type: "publicKey" }]; name: "TokenMetaDataLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "perpMarket"; type: "publicKey" }, { index: false; name: "perpMarketIndex"; type: "u16" }, { index: false; name: "baseDecimals"; type: "u8" }, { index: false; name: "baseLotSize"; type: "i64" }, { index: false; name: "quoteLotSize"; type: "i64" }, { index: false; name: "oracle"; type: "publicKey" }]; name: "PerpMarketMetaDataLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "serumMarket"; type: "publicKey" }, { index: false; name: "marketIndex"; type: "u16" }, { index: false; name: "baseTokenIndex"; type: "u16" }, { index: false; name: "quoteTokenIndex"; type: "u16" }, { index: false; name: "serumProgram"; type: "publicKey" }, { index: false; name: "serumProgramExternal"; type: "publicKey" }]; name: "Serum3RegisterMarketLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "perpMarketIndex"; type: "u16" }, { index: false; name: "liqor"; type: "publicKey" }, { index: false; name: "liqee"; type: "publicKey" }, { index: false; name: "baseTransfer"; type: "i64" }, { index: false; name: "quoteTransfer"; type: "i128" }, { index: false; name: "pnlTransfer"; type: "i128" }, { index: false; name: "pnlSettleLimitTransfer"; type: "i128" }, { index: false; name: "price"; type: "i128" }]; name: "PerpLiqBaseOrPositivePnlLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "liqee"; type: "publicKey" }, { index: false; name: "liqor"; type: "publicKey" }, { index: false; name: "perpMarketIndex"; type: "u16" }, { index: false; name: "insuranceTransfer"; type: "i128" }, { index: false; name: "socializedLoss"; type: "i128" }, { index: false; name: "startingLongFunding"; type: "i128" }, { index: false; name: "startingShortFunding"; type: "i128" }, { index: false; name: "endingLongFunding"; type: "i128" }, { index: false; name: "endingShortFunding"; type: "i128" }]; name: "PerpLiqBankruptcyLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "liqee"; type: "publicKey" }, { index: false; name: "liqor"; type: "publicKey" }, { index: false; name: "perpMarketIndex"; type: "u16" }, { index: false; name: "settlement"; type: "i128" }]; name: "PerpLiqNegativePnlOrBankruptcyLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccountA"; type: "publicKey" }, { index: false; name: "mangoAccountB"; type: "publicKey" }, { index: false; name: "perpMarketIndex"; type: "u16" }, { index: false; name: "settlement"; type: "i128" }, { index: false; name: "settler"; type: "publicKey" }, { index: false; name: "fee"; type: "i128" }]; name: "PerpSettlePnlLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "perpMarketIndex"; type: "u16" }, { index: false; name: "settlement"; type: "i128" }]; name: "PerpSettleFeesLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "buybackFees"; type: "i128" }, { index: false; name: "buybackMngo"; type: "i128" }, { index: false; name: "mngoBuybackPrice"; type: "i128" }, { index: false; name: "oraclePrice"; type: "i128" }]; name: "AccountBuybackFeesWithMngoLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "perpMarketIndex"; type: "u16" }, { index: false; name: "seqNum"; type: "u64" }]; name: "FilledPerpOrderLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "perpMarketIndex"; type: "u16" }, { index: false; name: "takerSide"; type: "u8" }, { index: false; name: "totalBaseLotsTaken"; type: "i64" }, { index: false; name: "totalBaseLotsDecremented"; type: "i64" }, { index: false; name: "totalQuoteLotsTaken"; type: "i64" }, { index: false; name: "totalQuoteLotsDecremented"; type: "i64" }, { index: false; name: "takerFeesPaid"; type: "i128" }, { index: false; name: "feePenalty"; type: "i128" }]; name: "PerpTakerTradeLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "perpMarketIndex"; type: "u16" }, { index: false; name: "accountA"; type: "publicKey" }, { index: false; name: "accountB"; type: "publicKey" }, { index: false; name: "baseTransfer"; type: "i64" }, { index: false; name: "quoteTransfer"; type: "i128" }, { index: false; name: "price"; type: "i128" }]; name: "PerpForceClosePositionLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "liqor"; type: "publicKey" }, { index: false; name: "liqee"; type: "publicKey" }, { index: false; name: "assetTokenIndex"; type: "u16" }, { index: false; name: "liabTokenIndex"; type: "u16" }, { index: false; name: "assetTransfer"; type: "i128" }, { index: false; name: "liabTransfer"; type: "i128" }, { index: false; name: "assetPrice"; type: "i128" }, { index: false; name: "liabPrice"; type: "i128" }, { index: false; name: "feeFactor"; type: "i128" }]; name: "TokenForceCloseBorrowsWithTokenLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "id"; type: "u64" }, { index: false; name: "maxBuy"; type: "u64" }, { index: false; name: "maxSell"; type: "u64" }, { index: false; name: "expiryTimestamp"; type: "u64" }, { index: false; name: "priceLowerLimit"; type: "f64" }, { index: false; name: "priceUpperLimit"; type: "f64" }, { index: false; name: "pricePremiumRate"; type: "f64" }, { index: false; name: "takerFeeRate"; type: "f32" }, { index: false; name: "makerFeeRate"; type: "f32" }, { index: false; name: "buyTokenIndex"; type: "u16" }, { index: false; name: "sellTokenIndex"; type: "u16" }, { index: false; name: "allowCreatingDeposits"; type: "bool" }, { index: false; name: "allowCreatingBorrows"; type: "bool" }]; name: "TokenConditionalSwapCreateLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "id"; type: "u64" }, { index: false; name: "maxBuy"; type: "u64" }, { index: false; name: "maxSell"; type: "u64" }, { index: false; name: "expiryTimestamp"; type: "u64" }, { index: false; name: "priceLowerLimit"; type: "f64" }, { index: false; name: "priceUpperLimit"; type: "f64" }, { index: false; name: "pricePremiumRate"; type: "f64" }, { index: false; name: "takerFeeRate"; type: "f32" }, { index: false; name: "makerFeeRate"; type: "f32" }, { index: false; name: "buyTokenIndex"; type: "u16" }, { index: false; name: "sellTokenIndex"; type: "u16" }, { index: false; name: "allowCreatingDeposits"; type: "bool" }, { index: false; name: "allowCreatingBorrows"; type: "bool" }, { index: false; name: "displayPriceStyle"; type: "u8" }, { index: false; name: "intention"; type: "u8" }]; name: "TokenConditionalSwapCreateLogV2" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "liqee"; type: "publicKey" }, { index: false; name: "liqor"; type: "publicKey" }, { index: false; name: "tokenConditionalSwapId"; type: "u64" }, { index: false; name: "buyTokenIndex"; type: "u16" }, { index: false; name: "sellTokenIndex"; type: "u16" }, { index: false; name: "buyAmount"; type: "u64" }, { index: false; name: "sellAmount"; type: "u64" }, { index: false; name: "makerFee"; type: "u64" }, { index: false; name: "takerFee"; type: "u64" }, { index: false; name: "buyTokenPrice"; type: "i128" }, { index: false; name: "sellTokenPrice"; type: "i128" }, { index: false; name: "closed"; type: "bool" }]; name: "TokenConditionalSwapTriggerLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "liqee"; type: "publicKey" }, { index: false; name: "liqor"; type: "publicKey" }, { index: false; name: "tokenConditionalSwapId"; type: "u64" }, { index: false; name: "buyTokenIndex"; type: "u16" }, { index: false; name: "sellTokenIndex"; type: "u16" }, { index: false; name: "buyAmount"; type: "u64" }, { index: false; name: "sellAmount"; type: "u64" }, { index: false; name: "makerFee"; type: "u64" }, { index: false; name: "takerFee"; type: "u64" }, { index: false; name: "buyTokenPrice"; type: "i128" }, { index: false; name: "sellTokenPrice"; type: "i128" }, { index: false; name: "closed"; type: "bool" }, { index: false; name: "displayPriceStyle"; type: "u8" }, { index: false; name: "intention"; type: "u8" }]; name: "TokenConditionalSwapTriggerLogV2" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "id"; type: "u64" }]; name: "TokenConditionalSwapCancelLog" }]
instructions: [{ accounts: [{ isMut: false; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: true; isSigner: false; name: "bank"; relations: ["group", "vault"] }, { isMut: true; isSigner: false; name: "vault" }, { isMut: true; isSigner: false; name: "tokenAccount" }, { isMut: false; isSigner: false; name: "tokenProgram" }, { isMut: false; isSigner: true; name: "admin" }]; args: []; name: "adminTokenWithdrawFees" }, { accounts: [{ isMut: false; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group"] }, { isMut: true; isSigner: false; name: "bank"; relations: ["group", "vault"] }, { isMut: true; isSigner: false; name: "vault" }, { isMut: true; isSigner: false; name: "tokenAccount" }, { isMut: false; isSigner: false; name: "tokenProgram" }, { isMut: false; isSigner: true; name: "admin" }]; args: []; name: "adminPerpWithdrawFees" }, { accounts: [{ isMut: true; isSigner: false; name: "group"; pda: { seeds: [{ kind: "const"; type: "string"; value: "Group" }, { kind: "account"; path: "creator"; type: "publicKey" }, { kind: "arg"; path: "group_num"; type: "u32" }] } }, { isMut: false; isSigner: true; name: "creator" }, { isMut: false; isSigner: false; name: "insuranceMint" }, { isMut: true; isSigner: false; name: "insuranceVault"; pda: { seeds: [{ kind: "const"; type: "string"; value: "InsuranceVault" }, { kind: "account"; path: "group"; type: "publicKey" }] } }, { isMut: true; isSigner: true; name: "payer" }, { isMut: false; isSigner: false; name: "tokenProgram" }, { isMut: false; isSigner: false; name: "systemProgram" }, { isMut: false; isSigner: false; name: "rent" }]; args: [{ name: "groupNum"; type: "u32" }, { name: "testing"; type: "u8" }, { name: "version"; type: "u8" }]; name: "groupCreate" }, { accounts: [{ isMut: true; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: false; isSigner: true; name: "admin" }]; args: [{ name: "adminOpt"; type: { option: "publicKey" } }, { name: "fastListingAdminOpt"; type: { option: "publicKey" } }, { name: "securityAdminOpt"; type: { option: "publicKey" } }, { name: "testingOpt"; type: { option: "u8" } }, { name: "versionOpt"; type: { option: "u8" } }, { name: "depositLimitQuoteOpt"; type: { option: "u64" } }, { name: "buybackFeesOpt"; type: { option: "bool" } }, { name: "buybackFeesBonusFactorOpt"; type: { option: "f32" } }, { name: "buybackFeesSwapMangoAccountOpt"; type: { option: "publicKey" } }, { name: "mngoTokenIndexOpt"; type: { option: "u16" } }, { name: "buybackFeesExpiryIntervalOpt"; type: { option: "u64" } }]; name: "groupEdit" }, { accounts: [{ isMut: false; isSigner: false; name: "group"; relations: ["insurance_vault", "admin"] }, { isMut: false; isSigner: true; name: "admin" }, { isMut: true; isSigner: false; name: "insuranceVault" }, { isMut: true; isSigner: false; name: "destination" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: [{ name: "amount"; type: "u64" }]; name: "groupWithdrawInsuranceFund" }, { accounts: [{ isMut: true; isSigner: false; name: "group" }, { isMut: false; isSigner: true; name: "admin" }]; args: [{ name: "ixGate"; type: "u128" }]; name: "ixGateSet" }, { accounts: [{ isMut: true; isSigner: false; name: "group"; relations: ["admin", "insurance_vault"] }, { isMut: false; isSigner: true; name: "admin" }, { isMut: true; isSigner: false; name: "insuranceVault" }, { isMut: true; isSigner: false; name: "solDestination" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: []; name: "groupClose" }, { accounts: [{ isMut: false; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: false; isSigner: true; name: "admin" }, { isMut: false; isSigner: false; name: "mint" }, { isMut: true; isSigner: false; name: "bank"; pda: { seeds: [{ kind: "const"; type: "string"; value: "Bank" }, { kind: "account"; path: "group"; type: "publicKey" }, { kind: "arg"; path: "token_index"; type: "u16" }, { kind: "const"; type: "u32"; value: 0 }] } }, { isMut: true; isSigner: false; name: "vault"; pda: { seeds: [{ kind: "const"; type: "string"; value: "Vault" }, { kind: "account"; path: "group"; type: "publicKey" }, { kind: "arg"; path: "token_index"; type: "u16" }, { kind: "const"; type: "u32"; value: 0 }] } }, { isMut: true; isSigner: false; name: "mintInfo"; pda: { seeds: [{ kind: "const"; type: "string"; value: "MintInfo" }, { kind: "account"; path: "group"; type: "publicKey" }, { account: "Mint"; kind: "account"; path: "mint"; type: "publicKey" }] } }, { isMut: false; isSigner: false; name: "oracle" }, { isMut: true; isSigner: true; name: "payer" }, { isMut: false; isSigner: false; name: "tokenProgram" }, { isMut: false; isSigner: false; name: "systemProgram" }, { isMut: false; isSigner: false; name: "rent" }]; args: [{ name: "tokenIndex"; type: "u16" }, { name: "name"; type: "string" }, { name: "oracleConfig"; type: { defined: "OracleConfigParams" } }, { name: "interestRateParams"; type: { defined: "InterestRateParams" } }, { name: "loanFeeRate"; type: "f32" }, { name: "loanOriginationFeeRate"; type: "f32" }, { name: "maintAssetWeight"; type: "f32" }, { name: "initAssetWeight"; type: "f32" }, { name: "maintLiabWeight"; type: "f32" }, { name: "initLiabWeight"; type: "f32" }, { name: "liquidationFee"; type: "f32" }, { name: "stablePriceDelayIntervalSeconds"; type: "u32" }, { name: "stablePriceDelayGrowthLimit"; type: "f32" }, { name: "stablePriceGrowthLimit"; type: "f32" }, { name: "minVaultToDepositsRatio"; type: "f64" }, { name: "netBorrowLimitWindowSizeTs"; type: "u64" }, { name: "netBorrowLimitPerWindowQuote"; type: "i64" }, { name: "borrowWeightScaleStartQuote"; type: "f64" }, { name: "depositWeightScaleStartQuote"; type: "f64" }, { name: "reduceOnly"; type: "u8" }, { name: "tokenConditionalSwapTakerFeeRate"; type: "f32" }, { name: "tokenConditionalSwapMakerFeeRate"; type: "f32" }, { name: "flashLoanDepositFeeRate"; type: "f32" }]; name: "tokenRegister" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: false; isSigner: true; name: "admin" }, { isMut: false; isSigner: false; name: "mint" }, { isMut: true; isSigner: false; name: "bank"; pda: { seeds: [{ kind: "const"; type: "string"; value: "Bank" }, { kind: "account"; path: "group"; type: "publicKey" }, { kind: "arg"; path: "token_index"; type: "u16" }, { kind: "const"; type: "u32"; value: 0 }] } }, { isMut: true; isSigner: false; name: "vault"; pda: { seeds: [{ kind: "const"; type: "string"; value: "Vault" }, { kind: "account"; path: "group"; type: "publicKey" }, { kind: "arg"; path: "token_index"; type: "u16" }, { kind: "const"; type: "u32"; value: 0 }] } }, { isMut: true; isSigner: false; name: "mintInfo"; pda: { seeds: [{ kind: "const"; type: "string"; value: "MintInfo" }, { kind: "account"; path: "group"; type: "publicKey" }, { account: "Mint"; kind: "account"; path: "mint"; type: "publicKey" }] } }, { isMut: false; isSigner: false; name: "oracle" }, { isMut: true; isSigner: true; name: "payer" }, { isMut: false; isSigner: false; name: "tokenProgram" }, { isMut: false; isSigner: false; name: "systemProgram" }, { isMut: false; isSigner: false; name: "rent" }]; args: [{ name: "tokenIndex"; type: "u16" }, { name: "name"; type: "string" }]; name: "tokenRegisterTrustless" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: false; isSigner: true; name: "admin" }, { isMut: true; isSigner: false; name: "mintInfo"; relations: ["group"] }, { docs: ["The oracle account is optional and only used when reset_stable_price is set.", ""]; isMut: false; isSigner: false; name: "oracle" }]; args: [{ name: "oracleOpt"; type: { option: "publicKey" } }, { name: "oracleConfigOpt"; type: { option: { defined: "OracleConfigParams" } } }, { name: "groupInsuranceFundOpt"; type: { option: "bool" } }, { name: "interestRateParamsOpt"; type: { option: { defined: "InterestRateParams" } } }, { name: "loanFeeRateOpt"; type: { option: "f32" } }, { name: "loanOriginationFeeRateOpt"; type: { option: "f32" } }, { name: "maintAssetWeightOpt"; type: { option: "f32" } }, { name: "initAssetWeightOpt"; type: { option: "f32" } }, { name: "maintLiabWeightOpt"; type: { option: "f32" } }, { name: "initLiabWeightOpt"; type: { option: "f32" } }, { name: "liquidationFeeOpt"; type: { option: "f32" } }, { name: "stablePriceDelayIntervalSecondsOpt"; type: { option: "u32" } }, { name: "stablePriceDelayGrowthLimitOpt"; type: { option: "f32" } }, { name: "stablePriceGrowthLimitOpt"; type: { option: "f32" } }, { name: "minVaultToDepositsRatioOpt"; type: { option: "f64" } }, { name: "netBorrowLimitPerWindowQuoteOpt"; type: { option: "i64" } }, { name: "netBorrowLimitWindowSizeTsOpt"; type: { option: "u64" } }, { name: "borrowWeightScaleStartQuoteOpt"; type: { option: "f64" } }, { name: "depositWeightScaleStartQuoteOpt"; type: { option: "f64" } }, { name: "resetStablePrice"; type: "bool" }, { name: "resetNetBorrowLimit"; type: "bool" }, { name: "reduceOnlyOpt"; type: { option: "u8" } }, { name: "nameOpt"; type: { option: "string" } }, { name: "forceCloseOpt"; type: { option: "bool" } }, { name: "tokenConditionalSwapTakerFeeRateOpt"; type: { option: "f32" } }, { name: "tokenConditionalSwapMakerFeeRateOpt"; type: { option: "f32" } }, { name: "flashLoanDepositFeeRateOpt"; type: { option: "f32" } }]; name: "tokenEdit" }, { accounts: [{ isMut: false; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: false; isSigner: true; name: "admin" }, { isMut: false; isSigner: false; name: "mint" }, { isMut: false; isSigner: false; name: "existingBank"; relations: ["group", "mint"] }, { isMut: true; isSigner: false; name: "bank"; pda: { seeds: [{ kind: "const"; type: "string"; value: "Bank" }, { kind: "account"; path: "group"; type: "publicKey" }, { kind: "arg"; path: "token_index"; type: "u16" }, { kind: "arg"; path: "bank_num"; type: "u32" }] } }, { isMut: true; isSigner: false; name: "vault"; pda: { seeds: [{ kind: "const"; type: "string"; value: "Vault" }, { kind: "account"; path: "group"; type: "publicKey" }, { kind: "arg"; path: "token_index"; type: "u16" }, { kind: "arg"; path: "bank_num"; type: "u32" }] } }, { isMut: true; isSigner: false; name: "mintInfo"; relations: ["group", "mint"] }, { isMut: true; isSigner: true; name: "payer" }, { isMut: false; isSigner: false; name: "tokenProgram" }, { isMut: false; isSigner: false; name: "systemProgram" }, { isMut: false; isSigner: false; name: "rent" }]; args: [{ name: "tokenIndex"; type: "u16" }, { name: "bankNum"; type: "u32" }]; name: "tokenAddBank" }, { accounts: [{ isMut: false; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: false; isSigner: true; name: "admin" }, { isMut: true; isSigner: false; name: "mintInfo"; relations: ["group"] }, { isMut: true; isSigner: false; name: "dustVault" }, { isMut: true; isSigner: false; name: "solDestination" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: []; name: "tokenDeregister" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: false; isSigner: false; name: "mintInfo"; relations: ["oracle", "group"] }, { isMut: false; isSigner: false; name: "oracle" }, { isMut: false; isSigner: false; name: "instructions" }]; args: []; name: "tokenUpdateIndexAndRate" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; pda: { seeds: [{ kind: "const"; type: "string"; value: "MangoAccount" }, { kind: "account"; path: "group"; type: "publicKey" }, { kind: "account"; path: "owner"; type: "publicKey" }, { kind: "arg"; path: "account_num"; type: "u32" }] } }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: true; name: "payer" }, { isMut: false; isSigner: false; name: "systemProgram" }]; args: [{ name: "accountNum"; type: "u32" }, { name: "tokenCount"; type: "u8" }, { name: "serum3Count"; type: "u8" }, { name: "perpCount"; type: "u8" }, { name: "perpOoCount"; type: "u8" }, { name: "name"; type: "string" }]; name: "accountCreate" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; pda: { seeds: [{ kind: "const"; type: "string"; value: "MangoAccount" }, { kind: "account"; path: "group"; type: "publicKey" }, { kind: "account"; path: "owner"; type: "publicKey" }, { kind: "arg"; path: "account_num"; type: "u32" }] } }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: true; name: "payer" }, { isMut: false; isSigner: false; name: "systemProgram" }]; args: [{ name: "accountNum"; type: "u32" }, { name: "tokenCount"; type: "u8" }, { name: "serum3Count"; type: "u8" }, { name: "perpCount"; type: "u8" }, { name: "perpOoCount"; type: "u8" }, { name: "tokenConditionalSwapCount"; type: "u8" }, { name: "name"; type: "string" }]; name: "accountCreateV2" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group", "owner"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: true; name: "payer" }, { isMut: false; isSigner: false; name: "systemProgram" }]; args: [{ name: "tokenCount"; type: "u8" }, { name: "serum3Count"; type: "u8" }, { name: "perpCount"; type: "u8" }, { name: "perpOoCount"; type: "u8" }]; name: "accountExpand" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group", "owner"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: true; name: "payer" }, { isMut: false; isSigner: false; name: "systemProgram" }]; args: [{ name: "tokenCount"; type: "u8" }, { name: "serum3Count"; type: "u8" }, { name: "perpCount"; type: "u8" }, { name: "perpOoCount"; type: "u8" }, { name: "tokenConditionalSwapCount"; type: "u8" }]; name: "accountExpandV2" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: true; isSigner: true; name: "payer" }, { isMut: false; isSigner: false; name: "systemProgram" }]; args: []; name: "accountSizeMigration" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group", "owner"] }, { isMut: false; isSigner: true; name: "owner" }]; args: [{ name: "nameOpt"; type: { option: "string" } }, { name: "delegateOpt"; type: { option: "publicKey" } }, { name: "temporaryDelegateOpt"; type: { option: "publicKey" } }, { name: "temporaryDelegateExpiryOpt"; type: { option: "u64" } }]; name: "accountEdit" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "admin" }]; args: [{ name: "freeze"; type: "bool" }]; name: "accountToggleFreeze" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group", "owner"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: false; name: "solDestination" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: [{ name: "forceClose"; type: "bool" }]; name: "accountClose" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: false; name: "daoAccount"; relations: ["group"] }, { isMut: true; isSigner: false; name: "mngoBank"; relations: ["group"] }, { isMut: false; isSigner: false; name: "mngoOracle" }, { isMut: true; isSigner: false; name: "feesBank"; relations: ["group"] }, { isMut: false; isSigner: false; name: "feesOracle" }]; args: [{ name: "maxBuybackUsd"; type: "u64" }]; name: "accountBuybackFeesWithMngo" }, { accounts: [{ isMut: false; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: true; isSigner: false; name: "oracle"; pda: { seeds: [{ kind: "const"; type: "string"; value: "StubOracle" }, { kind: "account"; path: "group"; type: "publicKey" }, { account: "Mint"; kind: "account"; path: "mint"; type: "publicKey" }] } }, { isMut: false; isSigner: true; name: "admin" }, { isMut: false; isSigner: false; name: "mint" }, { isMut: true; isSigner: true; name: "payer" }, { isMut: false; isSigner: false; name: "systemProgram" }]; args: [{ name: "price"; type: { defined: "I80F48" } }]; name: "stubOracleCreate" }, { accounts: [{ isMut: false; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: false; isSigner: true; name: "admin" }, { isMut: true; isSigner: false; name: "oracle"; relations: ["group"] }, { isMut: true; isSigner: false; name: "solDestination" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: []; name: "stubOracleClose" }, { accounts: [{ isMut: false; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: false; isSigner: true; name: "admin" }, { isMut: true; isSigner: false; name: "oracle"; relations: ["group"] }]; args: [{ name: "price"; type: { defined: "I80F48" } }]; name: "stubOracleSet" }, { accounts: [{ isMut: false; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: false; isSigner: true; name: "admin" }, { isMut: true; isSigner: false; name: "oracle"; relations: ["group"] }]; args: [{ name: "price"; type: { defined: "I80F48" } }, { name: "lastUpdateSlot"; type: "u64" }, { name: "deviation"; type: { defined: "I80F48" } }]; name: "stubOracleSetTest" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group", "owner"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: false; name: "bank"; relations: ["group", "vault", "oracle"] }, { isMut: true; isSigner: false; name: "vault" }, { isMut: false; isSigner: false; name: "oracle" }, { isMut: true; isSigner: false; name: "tokenAccount" }, { isMut: false; isSigner: true; name: "tokenAuthority" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: [{ name: "amount"; type: "u64" }, { name: "reduceOnly"; type: "bool" }]; name: "tokenDeposit" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: true; isSigner: false; name: "bank"; relations: ["group", "vault", "oracle"] }, { isMut: true; isSigner: false; name: "vault" }, { isMut: false; isSigner: false; name: "oracle" }, { isMut: true; isSigner: false; name: "tokenAccount" }, { isMut: false; isSigner: true; name: "tokenAuthority" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: [{ name: "amount"; type: "u64" }, { name: "reduceOnly"; type: "bool" }]; name: "tokenDepositIntoExisting" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group", "owner"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: false; name: "bank"; relations: ["group", "vault", "oracle"] }, { isMut: true; isSigner: false; name: "vault" }, { isMut: false; isSigner: false; name: "oracle" }, { isMut: true; isSigner: false; name: "tokenAccount" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: [{ name: "amount"; type: "u64" }, { name: "allowBorrow"; type: "bool" }]; name: "tokenWithdraw" }, { accounts: [{ isMut: false; isSigner: false; name: "account" }, { isMut: false; isSigner: true; name: "owner" }, { isMut: false; isSigner: false; name: "tokenProgram" }, { docs: ["Instructions Sysvar for instruction introspection"]; isMut: false; isSigner: false; name: "instructions" }]; args: [{ name: "loanAmounts"; type: { vec: "u64" } }]; name: "flashLoanBegin" }, { accounts: [{ isMut: true; isSigner: false; name: "account" }, { isMut: false; isSigner: true; name: "owner" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: [{ name: "flashLoanType"; type: { defined: "FlashLoanType" } }]; name: "flashLoanEnd" }, { accounts: [{ isMut: true; isSigner: false; name: "account" }, { isMut: false; isSigner: true; name: "owner" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: [{ name: "numLoans"; type: "u8" }, { name: "flashLoanType"; type: { defined: "FlashLoanType" } }]; name: "flashLoanEndV2" }, { accounts: [{ docs: ["Instructions Sysvar for instruction introspection"]; isMut: false; isSigner: false; name: "instructions" }, { isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }]; args: []; name: "healthRegionBegin" }, { accounts: [{ isMut: true; isSigner: false; name: "account" }]; args: []; name: "healthRegionEnd" }, { accounts: [{ isMut: true; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: false; isSigner: true; name: "admin" }, { isMut: false; isSigner: false; name: "serumProgram" }, { isMut: false; isSigner: false; name: "serumMarketExternal" }, { isMut: true; isSigner: false; name: "serumMarket"; pda: { seeds: [{ kind: "const"; type: "string"; value: "Serum3Market" }, { kind: "account"; path: "group"; type: "publicKey" }, { kind: "account"; path: "serum_market_external"; type: "publicKey" }] } }, { isMut: true; isSigner: false; name: "indexReservation"; pda: { seeds: [{ kind: "const"; type: "string"; value: "Serum3Index" }, { kind: "account"; path: "group"; type: "publicKey" }, { kind: "arg"; path: "market_index"; type: "u16" }] } }, { isMut: false; isSigner: false; name: "quoteBank"; relations: ["group"] }, { isMut: false; isSigner: false; name: "baseBank"; relations: ["group"] }, { isMut: true; isSigner: true; name: "payer" }, { isMut: false; isSigner: false; name: "systemProgram" }]; args: [{ name: "marketIndex"; type: "u16" }, { name: "name"; type: "string" }]; docs: ["", "Serum", ""]; name: "serum3RegisterMarket" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: false; isSigner: true; name: "admin" }, { isMut: true; isSigner: false; name: "market"; relations: ["group"] }]; args: [{ name: "reduceOnlyOpt"; type: { option: "bool" } }, { name: "forceCloseOpt"; type: { option: "bool" } }, { name: "nameOpt"; type: { option: "string" } }]; name: "serum3EditMarket" }, { accounts: [{ isMut: true; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: false; isSigner: true; name: "admin" }, { isMut: true; isSigner: false; name: "serumMarket"; relations: ["group"] }, { isMut: true; isSigner: false; name: "indexReservation"; relations: ["group"] }, { isMut: true; isSigner: false; name: "solDestination" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: []; name: "serum3DeregisterMarket" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: false; isSigner: false; name: "serumMarket"; relations: ["group", "serum_program", "serum_market_external"] }, { isMut: false; isSigner: false; name: "serumProgram" }, { isMut: false; isSigner: false; name: "serumMarketExternal" }, { isMut: true; isSigner: false; name: "openOrders"; pda: { seeds: [{ kind: "const"; type: "string"; value: "Serum3OO" }, { kind: "account"; path: "account"; type: "publicKey" }, { kind: "account"; path: "serum_market"; type: "publicKey" }] } }, { isMut: true; isSigner: true; name: "payer" }, { isMut: false; isSigner: false; name: "systemProgram" }, { isMut: false; isSigner: false; name: "rent" }]; args: []; name: "serum3CreateOpenOrders" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: false; isSigner: false; name: "serumMarket"; relations: ["group", "serum_program", "serum_market_external"] }, { isMut: false; isSigner: false; name: "serumProgram" }, { isMut: false; isSigner: false; name: "serumMarketExternal" }, { isMut: true; isSigner: false; name: "openOrders" }, { isMut: true; isSigner: false; name: "solDestination" }]; args: []; name: "serum3CloseOpenOrders" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: false; name: "openOrders" }, { isMut: false; isSigner: false; name: "serumMarket"; relations: ["group", "serum_program", "serum_market_external"] }, { isMut: false; isSigner: false; name: "serumProgram" }, { isMut: true; isSigner: false; name: "serumMarketExternal" }, { isMut: true; isSigner: false; name: "marketBids" }, { isMut: true; isSigner: false; name: "marketAsks" }, { isMut: true; isSigner: false; name: "marketEventQueue" }, { isMut: true; isSigner: false; name: "marketRequestQueue" }, { isMut: true; isSigner: false; name: "marketBaseVault" }, { isMut: true; isSigner: false; name: "marketQuoteVault" }, { docs: ["needed for the automatic settle_funds call"]; isMut: false; isSigner: false; name: "marketVaultSigner" }, { docs: ["The bank that pays for the order, if necessary"]; isMut: true; isSigner: false; name: "payerBank"; relations: ["group"] }, { docs: ["The bank vault that pays for the order, if necessary"]; isMut: true; isSigner: false; name: "payerVault" }, { isMut: false; isSigner: false; name: "payerOracle" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: [{ name: "side"; type: { defined: "Serum3Side" } }, { name: "limitPrice"; type: "u64" }, { name: "maxBaseQty"; type: "u64" }, { name: "maxNativeQuoteQtyIncludingFees"; type: "u64" }, { name: "selfTradeBehavior"; type: { defined: "Serum3SelfTradeBehavior" } }, { name: "orderType"; type: { defined: "Serum3OrderType" } }, { name: "clientOrderId"; type: "u64" }, { name: "limit"; type: "u16" }]; name: "serum3PlaceOrder" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: false; name: "openOrders" }, { isMut: false; isSigner: false; name: "serumMarket"; relations: ["group", "serum_program", "serum_market_external"] }, { isMut: false; isSigner: false; name: "serumProgram" }, { isMut: true; isSigner: false; name: "serumMarketExternal" }, { isMut: true; isSigner: false; name: "marketBids" }, { isMut: true; isSigner: false; name: "marketAsks" }, { isMut: true; isSigner: false; name: "marketEventQueue" }]; args: [{ name: "side"; type: { defined: "Serum3Side" } }, { name: "orderId"; type: "u128" }]; name: "serum3CancelOrder" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: false; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: false; name: "openOrders" }, { isMut: false; isSigner: false; name: "serumMarket"; relations: ["group", "serum_program", "serum_market_external"] }, { isMut: false; isSigner: false; name: "serumProgram" }, { isMut: true; isSigner: false; name: "serumMarketExternal" }, { isMut: true; isSigner: false; name: "marketBids" }, { isMut: true; isSigner: false; name: "marketAsks" }, { isMut: true; isSigner: false; name: "marketEventQueue" }]; args: [{ name: "limit"; type: "u8" }]; name: "serum3CancelAllOrders" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: false; name: "openOrders" }, { isMut: false; isSigner: false; name: "serumMarket"; relations: ["group", "serum_program", "serum_market_external"] }, { isMut: false; isSigner: false; name: "serumProgram" }, { isMut: true; isSigner: false; name: "serumMarketExternal" }, { isMut: true; isSigner: false; name: "marketBaseVault" }, { isMut: true; isSigner: false; name: "marketQuoteVault" }, { docs: ["needed for the automatic settle_funds call"]; isMut: false; isSigner: false; name: "marketVaultSigner" }, { isMut: true; isSigner: false; name: "quoteBank"; relations: ["group"] }, { isMut: true; isSigner: false; name: "quoteVault" }, { isMut: true; isSigner: false; name: "baseBank"; relations: ["group"] }, { isMut: true; isSigner: false; name: "baseVault" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: []; docs: ["Deprecated instruction that used to settles all free funds from the OpenOrders account", "into the MangoAccount.", "", "Any serum \"referrer rebates\" (ui fees) are considered Mango fees."]; name: "serum3SettleFunds" }, { accounts: [{ accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: false; name: "openOrders" }, { isMut: false; isSigner: false; name: "serumMarket"; relations: ["group", "serum_program", "serum_market_external"] }, { isMut: false; isSigner: false; name: "serumProgram" }, { isMut: true; isSigner: false; name: "serumMarketExternal" }, { isMut: true; isSigner: false; name: "marketBaseVault" }, { isMut: true; isSigner: false; name: "marketQuoteVault" }, { docs: ["needed for the automatic settle_funds call"]; isMut: false; isSigner: false; name: "marketVaultSigner" }, { isMut: true; isSigner: false; name: "quoteBank"; relations: ["group"] }, { isMut: true; isSigner: false; name: "quoteVault" }, { isMut: true; isSigner: false; name: "baseBank"; relations: ["group"] }, { isMut: true; isSigner: false; name: "baseVault" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; name: "v1" }, { accounts: [{ isMut: false; isSigner: false; name: "quoteOracle" }, { isMut: false; isSigner: false; name: "baseOracle" }]; name: "v2" }]; args: [{ name: "feesToDao"; type: "bool" }]; docs: ["Like Serum3SettleFunds, but `fees_to_dao` determines if referrer rebates are considered fees", "or are credited to the MangoAccount."]; name: "serum3SettleFundsV2" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: true; isSigner: false; name: "openOrders" }, { isMut: false; isSigner: false; name: "serumMarket"; relations: ["group", "serum_program", "serum_market_external"] }, { isMut: false; isSigner: false; name: "serumProgram" }, { isMut: true; isSigner: false; name: "serumMarketExternal" }, { isMut: true; isSigner: false; name: "marketBids" }, { isMut: true; isSigner: false; name: "marketAsks" }, { isMut: true; isSigner: false; name: "marketEventQueue" }, { isMut: true; isSigner: false; name: "marketBaseVault" }, { isMut: true; isSigner: false; name: "marketQuoteVault" }, { isMut: false; isSigner: false; name: "marketVaultSigner" }, { isMut: true; isSigner: false; name: "quoteBank"; relations: ["group"] }, { isMut: true; isSigner: false; name: "quoteVault" }, { isMut: true; isSigner: false; name: "baseBank"; relations: ["group"] }, { isMut: true; isSigner: false; name: "baseVault" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: [{ name: "limit"; type: "u8" }]; name: "serum3LiqForceCancelOrders" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "liqor"; relations: ["group"] }, { isMut: false; isSigner: true; name: "liqorOwner" }, { isMut: true; isSigner: false; name: "liqee"; relations: ["group"] }]; args: [{ name: "assetTokenIndex"; type: "u16" }, { name: "liabTokenIndex"; type: "u16" }, { name: "maxLiabTransfer"; type: { defined: "I80F48" } }]; name: "liqTokenWithToken" }, { accounts: [{ isMut: false; isSigner: false; name: "group"; relations: ["insurance_vault"] }, { isMut: true; isSigner: false; name: "liqor"; relations: ["group"] }, { isMut: false; isSigner: true; name: "liqorOwner" }, { isMut: true; isSigner: false; name: "liqee"; relations: ["group"] }, { isMut: false; isSigner: false; name: "liabMintInfo"; relations: ["group"] }, { isMut: true; isSigner: false; name: "quoteVault" }, { isMut: true; isSigner: false; name: "insuranceVault" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: [{ name: "maxLiabTransfer"; type: { defined: "I80F48" } }]; name: "liqTokenBankruptcy" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "liqor"; relations: ["group"] }, { isMut: false; isSigner: true; name: "liqorOwner" }, { isMut: true; isSigner: false; name: "liqee"; relations: ["group"] }]; args: [{ name: "assetTokenIndex"; type: "u16" }, { name: "liabTokenIndex"; type: "u16" }, { name: "maxLiabTransfer"; type: { defined: "I80F48" } }]; name: "tokenLiqWithToken" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "liqor"; relations: ["group"] }, { isMut: false; isSigner: true; name: "liqorOwner" }, { isMut: true; isSigner: false; name: "liqee"; relations: ["group"] }]; args: [{ name: "assetTokenIndex"; type: "u16" }, { name: "liabTokenIndex"; type: "u16" }, { name: "maxLiabTransfer"; type: "u64" }]; name: "tokenForceCloseBorrowsWithToken" }, { accounts: [{ isMut: false; isSigner: false; name: "group"; relations: ["insurance_vault"] }, { isMut: true; isSigner: false; name: "liqor"; relations: ["group"] }, { isMut: false; isSigner: true; name: "liqorOwner" }, { isMut: true; isSigner: false; name: "liqee"; relations: ["group"] }, { isMut: false; isSigner: false; name: "liabMintInfo"; relations: ["group"] }, { isMut: true; isSigner: false; name: "quoteVault" }, { isMut: true; isSigner: false; name: "insuranceVault" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: [{ name: "maxLiabTransfer"; type: { defined: "I80F48" } }]; name: "tokenLiqBankruptcy" }, { accounts: [{ isMut: false; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: false; isSigner: true; name: "admin" }, { isMut: false; isSigner: false; name: "oracle" }, { isMut: true; isSigner: false; name: "perpMarket"; pda: { seeds: [{ kind: "const"; type: "string"; value: "PerpMarket" }, { kind: "account"; path: "group"; type: "publicKey" }, { kind: "arg"; path: "perp_market_index"; type: "u16" }] } }, { docs: ["Accounts are initialised by client,", "anchor discriminator is set first when ix exits,"]; isMut: true; isSigner: false; name: "bids" }, { isMut: true; isSigner: false; name: "asks" }, { isMut: true; isSigner: false; name: "eventQueue" }, { isMut: true; isSigner: true; name: "payer" }, { isMut: false; isSigner: false; name: "systemProgram" }]; args: [{ name: "perpMarketIndex"; type: "u16" }, { name: "name"; type: "string" }, { name: "oracleConfig"; type: { defined: "OracleConfigParams" } }, { name: "baseDecimals"; type: "u8" }, { name: "quoteLotSize"; type: "i64" }, { name: "baseLotSize"; type: "i64" }, { name: "maintBaseAssetWeight"; type: "f32" }, { name: "initBaseAssetWeight"; type: "f32" }, { name: "maintBaseLiabWeight"; type: "f32" }, { name: "initBaseLiabWeight"; type: "f32" }, { name: "maintOverallAssetWeight"; type: "f32" }, { name: "initOverallAssetWeight"; type: "f32" }, { name: "baseLiquidationFee"; type: "f32" }, { name: "makerFee"; type: "f32" }, { name: "takerFee"; type: "f32" }, { name: "minFunding"; type: "f32" }, { name: "maxFunding"; type: "f32" }, { name: "impactQuantity"; type: "i64" }, { name: "groupInsuranceFund"; type: "bool" }, { name: "feePenalty"; type: "f32" }, { name: "settleFeeFlat"; type: "f32" }, { name: "settleFeeAmountThreshold"; type: "f32" }, { name: "settleFeeFractionLowHealth"; type: "f32" }, { name: "settleTokenIndex"; type: "u16" }, { name: "settlePnlLimitFactor"; type: "f32" }, { name: "settlePnlLimitWindowSizeTs"; type: "u64" }, { name: "positivePnlLiquidationFee"; type: "f32" }]; docs: ["", "Perps", ""]; name: "perpCreateMarket" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: false; isSigner: true; name: "admin" }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group"] }, { docs: ["The oracle account is optional and only used when reset_stable_price is set.", ""]; isMut: false; isSigner: false; name: "oracle" }]; args: [{ name: "oracleOpt"; type: { option: "publicKey" } }, { name: "oracleConfigOpt"; type: { option: { defined: "OracleConfigParams" } } }, { name: "baseDecimalsOpt"; type: { option: "u8" } }, { name: "maintBaseAssetWeightOpt"; type: { option: "f32" } }, { name: "initBaseAssetWeightOpt"; type: { option: "f32" } }, { name: "maintBaseLiabWeightOpt"; type: { option: "f32" } }, { name: "initBaseLiabWeightOpt"; type: { option: "f32" } }, { name: "maintOverallAssetWeightOpt"; type: { option: "f32" } }, { name: "initOverallAssetWeightOpt"; type: { option: "f32" } }, { name: "baseLiquidationFeeOpt"; type: { option: "f32" } }, { name: "makerFeeOpt"; type: { option: "f32" } }, { name: "takerFeeOpt"; type: { option: "f32" } }, { name: "minFundingOpt"; type: { option: "f32" } }, { name: "maxFundingOpt"; type: { option: "f32" } }, { name: "impactQuantityOpt"; type: { option: "i64" } }, { name: "groupInsuranceFundOpt"; type: { option: "bool" } }, { name: "feePenaltyOpt"; type: { option: "f32" } }, { name: "settleFeeFlatOpt"; type: { option: "f32" } }, { name: "settleFeeAmountThresholdOpt"; type: { option: "f32" } }, { name: "settleFeeFractionLowHealthOpt"; type: { option: "f32" } }, { name: "stablePriceDelayIntervalSecondsOpt"; type: { option: "u32" } }, { name: "stablePriceDelayGrowthLimitOpt"; type: { option: "f32" } }, { name: "stablePriceGrowthLimitOpt"; type: { option: "f32" } }, { name: "settlePnlLimitFactorOpt"; type: { option: "f32" } }, { name: "settlePnlLimitWindowSizeTsOpt"; type: { option: "u64" } }, { name: "reduceOnlyOpt"; type: { option: "bool" } }, { name: "resetStablePrice"; type: "bool" }, { name: "positivePnlLiquidationFeeOpt"; type: { option: "f32" } }, { name: "nameOpt"; type: { option: "string" } }, { name: "forceCloseOpt"; type: { option: "bool" } }]; name: "perpEditMarket" }, { accounts: [{ isMut: false; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: false; isSigner: true; name: "admin" }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group", "bids", "asks", "event_queue"] }, { isMut: true; isSigner: false; name: "bids" }, { isMut: true; isSigner: false; name: "asks" }, { isMut: true; isSigner: false; name: "eventQueue" }, { isMut: true; isSigner: false; name: "solDestination" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: []; name: "perpCloseMarket" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: false; isSigner: false; name: "perpMarket"; relations: ["group"] }]; args: []; name: "perpDeactivatePosition" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group", "bids", "asks", "event_queue", "oracle"] }, { isMut: true; isSigner: false; name: "bids" }, { isMut: true; isSigner: false; name: "asks" }, { isMut: true; isSigner: false; name: "eventQueue" }, { isMut: false; isSigner: false; name: "oracle" }]; args: [{ name: "side"; type: { defined: "Side" } }, { name: "priceLots"; type: "i64" }, { name: "maxBaseLots"; type: "i64" }, { name: "maxQuoteLots"; type: "i64" }, { name: "clientOrderId"; type: "u64" }, { name: "orderType"; type: { defined: "PlaceOrderType" } }, { name: "reduceOnly"; type: "bool" }, { name: "expiryTimestamp"; type: "u64" }, { name: "limit"; type: "u8" }]; name: "perpPlaceOrder"; returns: { option: "u128" } }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group", "bids", "asks", "event_queue", "oracle"] }, { isMut: true; isSigner: false; name: "bids" }, { isMut: true; isSigner: false; name: "asks" }, { isMut: true; isSigner: false; name: "eventQueue" }, { isMut: false; isSigner: false; name: "oracle" }]; args: [{ name: "side"; type: { defined: "Side" } }, { name: "priceLots"; type: "i64" }, { name: "maxBaseLots"; type: "i64" }, { name: "maxQuoteLots"; type: "i64" }, { name: "clientOrderId"; type: "u64" }, { name: "orderType"; type: { defined: "PlaceOrderType" } }, { name: "selfTradeBehavior"; type: { defined: "SelfTradeBehavior" } }, { name: "reduceOnly"; type: "bool" }, { name: "expiryTimestamp"; type: "u64" }, { name: "limit"; type: "u8" }]; name: "perpPlaceOrderV2"; returns: { option: "u128" } }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group", "bids", "asks", "event_queue", "oracle"] }, { isMut: true; isSigner: false; name: "bids" }, { isMut: true; isSigner: false; name: "asks" }, { isMut: true; isSigner: false; name: "eventQueue" }, { isMut: false; isSigner: false; name: "oracle" }]; args: [{ name: "side"; type: { defined: "Side" } }, { name: "priceOffsetLots"; type: "i64" }, { name: "pegLimit"; type: "i64" }, { name: "maxBaseLots"; type: "i64" }, { name: "maxQuoteLots"; type: "i64" }, { name: "clientOrderId"; type: "u64" }, { name: "orderType"; type: { defined: "PlaceOrderType" } }, { name: "reduceOnly"; type: "bool" }, { name: "expiryTimestamp"; type: "u64" }, { name: "limit"; type: "u8" }, { name: "maxOracleStalenessSlots"; type: "i32" }]; name: "perpPlaceOrderPegged"; returns: { option: "u128" } }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group", "bids", "asks", "event_queue", "oracle"] }, { isMut: true; isSigner: false; name: "bids" }, { isMut: true; isSigner: false; name: "asks" }, { isMut: true; isSigner: false; name: "eventQueue" }, { isMut: false; isSigner: false; name: "oracle" }]; args: [{ name: "side"; type: { defined: "Side" } }, { name: "priceOffsetLots"; type: "i64" }, { name: "pegLimit"; type: "i64" }, { name: "maxBaseLots"; type: "i64" }, { name: "maxQuoteLots"; type: "i64" }, { name: "clientOrderId"; type: "u64" }, { name: "orderType"; type: { defined: "PlaceOrderType" } }, { name: "selfTradeBehavior"; type: { defined: "SelfTradeBehavior" } }, { name: "reduceOnly"; type: "bool" }, { name: "expiryTimestamp"; type: "u64" }, { name: "limit"; type: "u8" }, { name: "maxOracleStalenessSlots"; type: "i32" }]; name: "perpPlaceOrderPeggedV2"; returns: { option: "u128" } }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group", "bids", "asks"] }, { isMut: true; isSigner: false; name: "bids" }, { isMut: true; isSigner: false; name: "asks" }]; args: [{ name: "orderId"; type: "u128" }]; name: "perpCancelOrder" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group", "bids", "asks"] }, { isMut: true; isSigner: false; name: "bids" }, { isMut: true; isSigner: false; name: "asks" }]; args: [{ name: "clientOrderId"; type: "u64" }]; name: "perpCancelOrderByClientOrderId" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group", "bids", "asks"] }, { isMut: true; isSigner: false; name: "bids" }, { isMut: true; isSigner: false; name: "asks" }]; args: [{ name: "limit"; type: "u8" }]; name: "perpCancelAllOrders" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group", "bids", "asks"] }, { isMut: true; isSigner: false; name: "bids" }, { isMut: true; isSigner: false; name: "asks" }]; args: [{ name: "sideOption"; type: { option: { defined: "Side" } } }, { name: "limit"; type: "u8" }]; name: "perpCancelAllOrdersBySide" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group", "event_queue"] }, { isMut: true; isSigner: false; name: "eventQueue" }]; args: [{ name: "limit"; type: "u64" }]; name: "perpConsumeEvents" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group", "bids", "asks", "oracle"] }, { isMut: true; isSigner: false; name: "bids" }, { isMut: true; isSigner: false; name: "asks" }, { isMut: false; isSigner: false; name: "oracle" }]; args: []; name: "perpUpdateFunding" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "settler"; relations: ["group"] }, { isMut: false; isSigner: true; name: "settlerOwner" }, { isMut: false; isSigner: false; name: "perpMarket"; relations: ["group", "oracle"] }, { isMut: true; isSigner: false; name: "accountA"; relations: ["group"] }, { isMut: true; isSigner: false; name: "accountB"; relations: ["group"] }, { isMut: false; isSigner: false; name: "oracle" }, { isMut: true; isSigner: false; name: "settleBank"; relations: ["group"] }, { isMut: false; isSigner: false; name: "settleOracle" }]; args: []; name: "perpSettlePnl" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group", "oracle"] }, { isMut: true; isSigner: false; name: "accountA"; relations: ["group"] }, { isMut: true; isSigner: false; name: "accountB"; relations: ["group"] }, { isMut: false; isSigner: false; name: "oracle" }]; args: []; name: "perpForceClosePosition" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group", "oracle"] }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: false; name: "oracle" }, { isMut: true; isSigner: false; name: "settleBank"; relations: ["group"] }, { isMut: false; isSigner: false; name: "settleOracle" }]; args: [{ name: "maxSettleAmount"; type: "u64" }]; name: "perpSettleFees" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group", "oracle"] }, { isMut: false; isSigner: false; name: "oracle" }, { isMut: true; isSigner: false; name: "liqor"; relations: ["group"] }, { isMut: false; isSigner: true; name: "liqorOwner" }, { isMut: true; isSigner: false; name: "liqee"; relations: ["group"] }, { isMut: true; isSigner: false; name: "settleBank"; relations: ["group"] }, { isMut: true; isSigner: false; name: "settleVault" }, { isMut: false; isSigner: false; name: "settleOracle" }]; args: [{ name: "maxBaseTransfer"; type: "i64" }, { name: "maxPnlTransfer"; type: "u64" }]; name: "perpLiqBaseOrPositivePnl" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group", "bids", "asks"] }, { isMut: true; isSigner: false; name: "bids" }, { isMut: true; isSigner: false; name: "asks" }]; args: [{ name: "limit"; type: "u8" }]; name: "perpLiqForceCancelOrders" }, { accounts: [{ isMut: false; isSigner: false; name: "group"; relations: ["insurance_vault"] }, { isMut: true; isSigner: false; name: "liqor"; relations: ["group"] }, { isMut: false; isSigner: true; name: "liqorOwner" }, { isMut: true; isSigner: false; name: "liqee"; relations: ["group"] }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group", "oracle"] }, { isMut: false; isSigner: false; name: "oracle" }, { isMut: true; isSigner: false; name: "settleBank"; relations: ["group"] }, { isMut: true; isSigner: false; name: "settleVault" }, { isMut: false; isSigner: false; name: "settleOracle" }, { isMut: true; isSigner: false; name: "insuranceVault" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: [{ name: "maxLiabTransfer"; type: "u64" }]; name: "perpLiqNegativePnlOrBankruptcy" }, { accounts: [{ isMut: false; isSigner: false; name: "group"; relations: ["insurance_vault"] }, { isMut: true; isSigner: false; name: "liqor"; relations: ["group"] }, { isMut: false; isSigner: true; name: "liqorOwner" }, { isMut: true; isSigner: false; name: "liqee"; relations: ["group"] }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group", "oracle"] }, { isMut: false; isSigner: false; name: "oracle" }, { isMut: true; isSigner: false; name: "settleBank"; relations: ["group"] }, { isMut: true; isSigner: false; name: "settleVault" }, { isMut: false; isSigner: false; name: "settleOracle" }, { isMut: true; isSigner: false; name: "insuranceVault" }, { isMut: true; isSigner: false; name: "insuranceBank"; relations: ["group"] }, { isMut: true; isSigner: false; name: "insuranceBankVault" }, { isMut: false; isSigner: false; name: "insuranceOracle" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: [{ name: "maxLiabTransfer"; type: "u64" }]; name: "perpLiqNegativePnlOrBankruptcyV2" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "authority" }, { isMut: false; isSigner: false; name: "buyBank"; relations: ["group"] }, { isMut: false; isSigner: false; name: "sellBank"; relations: ["group"] }]; args: [{ name: "maxBuy"; type: "u64" }, { name: "maxSell"; type: "u64" }, { name: "expiryTimestamp"; type: "u64" }, { name: "priceLowerLimit"; type: "f64" }, { name: "priceUpperLimit"; type: "f64" }, { name: "pricePremiumRate"; type: "f64" }, { name: "allowCreatingDeposits"; type: "bool" }, { name: "allowCreatingBorrows"; type: "bool" }]; name: "tokenConditionalSwapCreate" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "authority" }, { isMut: false; isSigner: false; name: "buyBank"; relations: ["group"] }, { isMut: false; isSigner: false; name: "sellBank"; relations: ["group"] }]; args: [{ name: "maxBuy"; type: "u64" }, { name: "maxSell"; type: "u64" }, { name: "expiryTimestamp"; type: "u64" }, { name: "priceLowerLimit"; type: "f64" }, { name: "priceUpperLimit"; type: "f64" }, { name: "pricePremiumRate"; type: "f64" }, { name: "allowCreatingDeposits"; type: "bool" }, { name: "allowCreatingBorrows"; type: "bool" }, { name: "displayPriceStyle"; type: { defined: "TokenConditionalSwapDisplayPriceStyle" } }, { name: "intention"; type: { defined: "TokenConditionalSwapIntention" } }]; name: "tokenConditionalSwapCreateV2" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "authority" }, { docs: ["The bank's token_index is checked at #1"]; isMut: true; isSigner: false; name: "buyBank"; relations: ["group"] }, { isMut: true; isSigner: false; name: "sellBank"; relations: ["group"] }]; args: [{ name: "tokenConditionalSwapIndex"; type: "u8" }, { name: "tokenConditionalSwapId"; type: "u64" }]; name: "tokenConditionalSwapCancel" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "liqee"; relations: ["group"] }, { isMut: true; isSigner: false; name: "liqor"; relations: ["group"] }, { isMut: false; isSigner: true; name: "liqorAuthority" }]; args: [{ name: "tokenConditionalSwapIndex"; type: "u8" }, { name: "tokenConditionalSwapId"; type: "u64" }, { name: "maxBuyTokenToLiqee"; type: "u64" }, { name: "maxSellTokenToLiqor"; type: "u64" }]; name: "tokenConditionalSwapTrigger" }, { accounts: [{ isMut: true; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: false; isSigner: true; name: "admin" }, { isMut: true; isSigner: false; name: "addressLookupTable" }]; args: [{ name: "index"; type: "u8" }]; name: "altSet" }, { accounts: [{ isMut: false; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: false; isSigner: true; name: "admin" }, { isMut: false; isSigner: true; name: "payer" }, { isMut: true; isSigner: false; name: "addressLookupTable" }]; args: [{ name: "index"; type: "u8" }, { name: "newAddresses"; type: { vec: "publicKey" } }]; name: "altExtend" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: false; isSigner: false; name: "account"; relations: ["group"] }]; args: []; docs: ["Warning, this instruction is for testing purposes only!"]; name: "computeAccountData" }, { accounts: [{ isMut: true; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: false; isSigner: true; name: "admin" }, { isMut: false; isSigner: false; name: "openbookV2Program" }, { isMut: false; isSigner: false; name: "openbookV2MarketExternal" }, { isMut: true; isSigner: false; name: "openbookV2Market"; pda: { seeds: [{ kind: "const"; type: "string"; value: "OpenbookV2Market" }, { kind: "account"; path: "group"; type: "publicKey" }, { kind: "account"; path: "openbook_v2_market_external"; type: "publicKey" }] } }, { isMut: true; isSigner: false; name: "indexReservation"; pda: { seeds: [{ kind: "const"; type: "string"; value: "OpenbookV2Index" }, { kind: "account"; path: "group"; type: "publicKey" }, { kind: "arg"; path: "market_index"; type: "u16" }] } }, { isMut: false; isSigner: false; name: "quoteBank"; relations: ["group"] }, { isMut: false; isSigner: false; name: "baseBank"; relations: ["group"] }, { isMut: true; isSigner: true; name: "payer" }, { isMut: false; isSigner: false; name: "systemProgram" }]; args: [{ name: "marketIndex"; type: "u16" }, { name: "name"; type: "string" }]; docs: ["", "OpenbookV2", ""]; name: "openbookV2RegisterMarket" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: false; isSigner: true; name: "admin" }, { isMut: true; isSigner: false; name: "market"; relations: ["group"] }]; args: [{ name: "reduceOnlyOpt"; type: { option: "bool" } }, { name: "forceCloseOpt"; type: { option: "bool" } }]; name: "openbookV2EditMarket" }, { accounts: [{ isMut: true; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: false; isSigner: true; name: "admin" }, { isMut: true; isSigner: false; name: "openbookV2Market"; relations: ["group"] }, { isMut: true; isSigner: false; name: "indexReservation"; relations: ["group"] }, { isMut: true; isSigner: false; name: "solDestination" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: []; name: "openbookV2DeregisterMarket" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "authority" }, { isMut: false; isSigner: false; name: "openbookV2Market"; relations: ["group", "openbook_v2_program", "openbook_v2_market_external"] }, { isMut: false; isSigner: false; name: "openbookV2Program" }, { isMut: false; isSigner: false; name: "openbookV2MarketExternal" }, { isMut: true; isSigner: false; name: "openOrders"; pda: { programId: { kind: "account"; path: "openbook_v2_program"; type: "publicKey" }; seeds: [{ kind: "const"; type: "string"; value: "OpenOrders" }, { kind: "account"; path: "openbook_v2_market"; type: "publicKey" }, { kind: "account"; path: "openbook_v2_market_external"; type: "publicKey" }, { kind: "arg"; path: "account_num"; type: "u32" }] } }, { isMut: true; isSigner: true; name: "payer" }, { isMut: false; isSigner: false; name: "systemProgram" }, { isMut: false; isSigner: false; name: "rent" }]; args: [{ name: "accountNum"; type: "u32" }]; name: "openbookV2CreateOpenOrders" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "authority" }, { isMut: false; isSigner: false; name: "openbookV2Market"; relations: ["group", "openbook_v2_program", "openbook_v2_market_external"] }, { isMut: false; isSigner: false; name: "openbookV2Program" }, { isMut: false; isSigner: false; name: "openbookV2MarketExternal" }, { isMut: true; isSigner: false; name: "openOrders" }, { isMut: true; isSigner: false; name: "solDestination" }]; args: []; name: "openbookV2CloseOpenOrders" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "authority" }, { isMut: true; isSigner: false; name: "openOrders" }, { isMut: false; isSigner: false; name: "openbookV2Market" }, { isMut: false; isSigner: false; name: "openbookV2Program" }, { isMut: true; isSigner: false; name: "openbookV2MarketExternal"; relations: ["bids", "asks", "event_queue"] }, { isMut: true; isSigner: false; name: "bids" }, { isMut: true; isSigner: false; name: "asks" }, { isMut: true; isSigner: false; name: "eventQueue" }, { isMut: true; isSigner: false; name: "marketBaseVault" }, { isMut: true; isSigner: false; name: "marketQuoteVault" }, { isMut: false; isSigner: false; name: "marketVaultSigner" }, { docs: ["The bank that pays for the order, if necessary"]; isMut: true; isSigner: false; name: "payerBank"; relations: ["group"] }, { docs: ["The bank vault that pays for the order, if necessary"]; isMut: true; isSigner: false; name: "payerVault" }, { isMut: false; isSigner: false; name: "payerOracle" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: [{ name: "side"; type: "u8" }, { name: "limitPrice"; type: "u64" }, { name: "maxBaseQty"; type: "u64" }, { name: "maxNativeQuoteQtyIncludingFees"; type: "u64" }, { name: "selfTradeBehavior"; type: "u8" }, { name: "orderType"; type: "u8" }, { name: "clientOrderId"; type: "u64" }, { name: "limit"; type: "u16" }]; name: "openbookV2PlaceOrder" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "authority" }, { isMut: false; isSigner: false; name: "openbookV2Market"; relations: ["group", "openbook_v2_program", "openbook_v2_market_external"] }, { isMut: false; isSigner: false; name: "openbookV2Program" }, { isMut: true; isSigner: false; name: "openbookV2MarketExternal"; relations: ["bids", "asks", "event_queue"] }, { isMut: true; isSigner: false; name: "bids" }, { isMut: true; isSigner: false; name: "asks" }, { isMut: true; isSigner: false; name: "eventQueue" }, { isMut: true; isSigner: false; name: "marketRequestQueue" }, { isMut: true; isSigner: false; name: "marketBaseVault" }, { isMut: true; isSigner: false; name: "marketQuoteVault" }, { isMut: false; isSigner: false; name: "marketVaultSigner" }, { docs: ["The bank that pays for the order, if necessary"]; isMut: true; isSigner: false; name: "payerBank"; relations: ["group"] }, { docs: ["The bank vault that pays for the order, if necessary"]; isMut: true; isSigner: false; name: "payerVault" }, { isMut: false; isSigner: false; name: "payerOracle" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: [{ name: "side"; type: "u8" }, { name: "limitPrice"; type: "u64" }, { name: "maxBaseQty"; type: "u64" }, { name: "maxNativeQuoteQtyIncludingFees"; type: "u64" }, { name: "selfTradeBehavior"; type: "u8" }, { name: "clientOrderId"; type: "u64" }, { name: "limit"; type: "u16" }]; name: "openbookV2PlaceTakerOrder" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "authority" }, { isMut: true; isSigner: false; name: "openOrders" }, { isMut: false; isSigner: false; name: "openbookV2Market"; relations: ["group", "openbook_v2_program", "openbook_v2_market_external"] }, { isMut: false; isSigner: false; name: "openbookV2Program" }, { isMut: false; isSigner: false; name: "openbookV2MarketExternal"; relations: ["bids", "asks"] }, { isMut: true; isSigner: false; name: "bids" }, { isMut: true; isSigner: false; name: "asks" }]; args: [{ name: "side"; type: "u8" }, { name: "orderId"; type: "u128" }]; name: "openbookV2CancelOrder" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "authority" }, { isMut: true; isSigner: false; name: "openOrders" }, { isMut: false; isSigner: false; name: "openbookV2Market"; relations: ["group", "openbook_v2_program", "openbook_v2_market_external"] }, { isMut: false; isSigner: false; name: "openbookV2Program" }, { isMut: true; isSigner: false; name: "openbookV2MarketExternal" }, { isMut: true; isSigner: false; name: "marketBaseVault" }, { isMut: true; isSigner: false; name: "marketQuoteVault" }, { docs: ["needed for the automatic settle_funds call"]; isMut: false; isSigner: false; name: "marketVaultSigner" }, { isMut: true; isSigner: false; name: "quoteBank"; relations: ["group"] }, { isMut: true; isSigner: false; name: "quoteVault" }, { isMut: true; isSigner: false; name: "baseBank"; relations: ["group"] }, { isMut: true; isSigner: false; name: "baseVault" }, { isMut: false; isSigner: false; name: "quoteOracle" }, { isMut: false; isSigner: false; name: "baseOracle" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: [{ name: "feesToDao"; type: "bool" }]; name: "openbookV2SettleFunds" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: true; isSigner: false; name: "openOrders" }, { isMut: false; isSigner: false; name: "openbookV2Market"; relations: ["group", "openbook_v2_program", "openbook_v2_market_external"] }, { isMut: false; isSigner: false; name: "openbookV2Program" }, { isMut: false; isSigner: false; name: "openbookV2MarketExternal"; relations: ["bids", "asks", "event_queue"] }, { isMut: true; isSigner: false; name: "bids" }, { isMut: true; isSigner: false; name: "asks" }, { isMut: true; isSigner: false; name: "eventQueue" }, { isMut: true; isSigner: false; name: "marketBaseVault" }, { isMut: true; isSigner: false; name: "marketQuoteVault" }, { isMut: false; isSigner: false; name: "marketVaultSigner" }, { isMut: true; isSigner: false; name: "quoteBank"; relations: ["group"] }, { isMut: true; isSigner: false; name: "quoteVault" }, { isMut: true; isSigner: false; name: "baseBank"; relations: ["group"] }, { isMut: true; isSigner: false; name: "baseVault" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: [{ name: "limit"; type: "u8" }]; name: "openbookV2LiqForceCancelOrders" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "authority" }, { isMut: true; isSigner: false; name: "openOrders" }, { isMut: false; isSigner: false; name: "openbookV2Market"; relations: ["group", "openbook_v2_program", "openbook_v2_market_external"] }, { isMut: false; isSigner: false; name: "openbookV2Program" }, { isMut: false; isSigner: false; name: "openbookV2MarketExternal"; relations: ["bids", "asks"] }, { isMut: true; isSigner: false; name: "bids" }, { isMut: true; isSigner: false; name: "asks" }]; args: [{ name: "limit"; type: "u8" }]; name: "openbookV2CancelAllOrders" }, { accounts: [{ isMut: false; isSigner: false; name: "dummy" }]; args: []; docs: ["", "benchmark", ""]; name: "benchmark" }]
name: "mango_v4"
types: [{ name: "InterestRateParams"; type: { fields: [{ name: "util0"; type: "f32" }, { name: "rate0"; type: "f32" }, { name: "util1"; type: "f32" }, { name: "rate1"; type: "f32" }, { name: "maxRate"; type: "f32" }, { name: "adjustmentFactor"; type: "f32" }]; kind: "struct" } }, { name: "Equity"; type: { fields: [{ name: "tokens"; type: { vec: { defined: "TokenEquity" } } }, { name: "perps"; type: { vec: { defined: "PerpEquity" } } }]; kind: "struct" } }, { name: "TokenEquity"; type: { fields: [{ name: "tokenIndex"; type: "u16" }, { name: "value"; type: { defined: "I80F48" } }]; kind: "struct" } }, { name: "PerpEquity"; type: { fields: [{ name: "perpMarketIndex"; type: "u16" }, { name: "value"; type: { defined: "I80F48" } }]; kind: "struct" } }, { name: "FlashLoanTokenDetail"; type: { fields: [{ name: "tokenIndex"; type: "u16" }, { name: "changeAmount"; type: "i128" }, { name: "loan"; type: "i128" }, { name: "loanOriginationFee"; type: "i128" }, { name: "depositIndex"; type: "i128" }, { name: "borrowIndex"; type: "i128" }, { name: "price"; type: "i128" }]; kind: "struct" } }, { name: "FlashLoanTokenDetailV2"; type: { fields: [{ name: "tokenIndex"; type: "u16" }, { docs: ["The amount by which the user's token position changed at the end", "", "So if the user repaid the approved_amount in full, it'd be 0.", "", "Does NOT include the loan_origination_fee or deposit_fee, so the true", "change is `change_amount - loan_origination_fee - deposit_fee`."]; name: "changeAmount"; type: "i128" }, { docs: ["The amount that was a loan (<= approved_amount, depends on user's deposits)"]; name: "loan"; type: "i128" }, { docs: ["The fee paid on the loan, not included in `loan` or `change_amount`"]; name: "loanOriginationFee"; type: "i128" }, { name: "depositIndex"; type: "i128" }, { name: "borrowIndex"; type: "i128" }, { name: "price"; type: "i128" }, { docs: ["Deposit fee paid for positive change_amount.", "", "Not factored into change_amount."]; name: "depositFee"; type: "i128" }, { docs: ["The amount that was transfered out to the user"]; name: "approvedAmount"; type: "u64" }]; kind: "struct" } }, { name: "TokenPosition"; type: { fields: [{ docs: ["The deposit_index (if positive) or borrow_index (if negative) scaled position"]; name: "indexedPosition"; type: { defined: "I80F48" } }, { docs: ["index into Group.tokens"]; name: "tokenIndex"; type: "u16" }, { docs: ["incremented when a market requires this position to stay alive"]; name: "inUseCount"; type: "u16" }, { name: "padding"; type: { array: ["u8", 4] } }, { name: "previousIndex"; type: { defined: "I80F48" } }, { name: "cumulativeDepositInterest"; type: "f64" }, { name: "cumulativeBorrowInterest"; type: "f64" }, { name: "reserved"; type: { array: ["u8", 128] } }]; kind: "struct" } }, { name: "Serum3Orders"; type: { fields: [{ name: "openOrders"; type: "publicKey" }, { docs: ["Tracks the amount of borrows that have flowed into the serum open orders account.", "These borrows did not have the loan origination fee applied, and that may happen", "later (in serum3_settle_funds) if we can guarantee that the funds were used.", "In particular a place-on-book, cancel, settle should not cost fees."]; name: "baseBorrowsWithoutFee"; type: "u64" }, { name: "quoteBorrowsWithoutFee"; type: "u64" }, { name: "marketIndex"; type: "u16" }, { docs: ["Store the base/quote token index, so health computations don't need", "to get passed the static SerumMarket to find which tokens a market", "uses and look up the correct oracles."]; name: "baseTokenIndex"; type: "u16" }, { name: "quoteTokenIndex"; type: "u16" }, { name: "padding"; type: { array: ["u8", 2] } }, { docs: ["Track something like the highest open bid / lowest open ask, in native/native units.", "", "Tracking it exactly isn't possible since we don't see fills. So instead track", "the min/max of the _placed_ bids and asks.", "", "The value is reset in serum3_place_order when a new order is placed without an", "existing one on the book.", "", "0 is a special \"unset\" state."]; name: "highestPlacedBidInv"; type: "f64" }, { name: "lowestPlacedAsk"; type: "f64" }, { name: "reserved"; type: { array: ["u8", 48] } }]; kind: "struct" } }, { name: "PerpPosition"; type: { fields: [{ name: "marketIndex"; type: "u16" }, { name: "padding"; type: { array: ["u8", 2] } }, { docs: ["Index of the current settle pnl limit window"]; name: "settlePnlLimitWindow"; type: "u32" }, { docs: ["Amount of realized trade pnl and unrealized pnl that was already settled this window.", "", "Will be negative when negative pnl was settled.", "", "Note that this will be adjusted for bookkeeping reasons when the realized_trade settle", "limitchanges and is not useable for actually tracking how much pnl was settled", "on balance."]; name: "settlePnlLimitSettledInCurrentWindowNative"; type: "i64" }, { docs: ["Active position size, measured in base lots"]; name: "basePositionLots"; type: "i64" }, { docs: ["Active position in oracle quote native. At the same time this is 1:1 a settle_token native amount.", "", "Example: Say there's a perp market on the BTC/USD price using SOL for settlement. The user buys", "one long contract for $20k, then base = 1, quote = -20k. The price goes to $21k. Now their", "unsettled pnl is (1 * 21k - 20k) __SOL__ = 1000 SOL. This is because the perp contract arbitrarily", "decides that each unit of price difference creates 1 SOL worth of settlement.", "(yes, causing 1 SOL of settlement for each $1 price change implies a lot of extra leverage; likely", "there should be an extra configurable scaling factor before we use this for cases like that)"]; name: "quotePositionNative"; type: { defined: "I80F48" } }, { docs: ["Tracks what the position is to calculate average entry & break even price"]; name: "quoteRunningNative"; type: "i64" }, { docs: ["Already settled long funding"]; name: "longSettledFunding"; type: { defined: "I80F48" } }, { docs: ["Already settled short funding"]; name: "shortSettledFunding"; type: { defined: "I80F48" } }, { docs: ["Base lots in open bids"]; name: "bidsBaseLots"; type: "i64" }, { docs: ["Base lots in open asks"]; name: "asksBaseLots"; type: "i64" }, { docs: ["Amount of base lots on the EventQueue waiting to be processed"]; name: "takerBaseLots"; type: "i64" }, { docs: ["Amount of quote lots on the EventQueue waiting to be processed"]; name: "takerQuoteLots"; type: "i64" }, { docs: ["Cumulative long funding in quote native units.", "If the user paid $1 in funding for a long position, this would be 1e6.", "Beware of the sign!", "", "(Display only)"]; name: "cumulativeLongFunding"; type: "f64" }, { docs: ["Cumulative short funding in quote native units", "If the user paid $1 in funding for a short position, this would be -1e6.", "", "(Display only)"]; name: "cumulativeShortFunding"; type: "f64" }, { docs: ["Cumulative maker volume in quote native units", "", "(Display only)"]; name: "makerVolume"; type: "u64" }, { docs: ["Cumulative taker volume in quote native units", "", "(Display only)"]; name: "takerVolume"; type: "u64" }, { docs: ["Cumulative number of quote native units transfered from the perp position", "to the settle token spot position.", "", "For example, if the user settled $1 of positive pnl into their USDC spot", "position, this would be 1e6.", "", "(Display only)"]; name: "perpSpotTransfers"; type: "i64" }, { docs: ["The native average entry price for the base lots of the current position.", "Reset to 0 when the base position reaches or crosses 0."]; name: "avgEntryPricePerBaseLot"; type: "f64" }, { docs: ["Amount of pnl that was realized by bringing the base position closer to 0.", "", "The settlement of this type of pnl is limited by settle_pnl_limit_realized_trade.", "Settling pnl reduces this value once other_pnl below is exhausted."]; name: "realizedTradePnlNative"; type: { defined: "I80F48" } }, { docs: ["Amount of pnl realized from fees, funding and liquidation.", "", "This type of realized pnl is always settleable.", "Settling pnl reduces this value first."]; name: "realizedOtherPnlNative"; type: { defined: "I80F48" } }, { docs: ["Settle limit contribution from realized pnl.", "", "Every time pnl is realized, this is increased by a fraction of the stable", "value of the realization. It magnitude decreases when realized pnl drops below its value."]; name: "settlePnlLimitRealizedTrade"; type: "i64" }, { docs: ["Trade pnl, fees, funding that were added over the current position's lifetime.", "", "Reset when the position changes sign or goes to zero.", "Not decreased by settling.", "", "This is tracked for display purposes: this value plus the difference between entry", "price and current price of the base position is the overall pnl."]; name: "realizedPnlForPositionNative"; type: { defined: "I80F48" } }, { name: "reserved"; type: { array: ["u8", 88] } }]; kind: "struct" } }, { name: "PerpOpenOrder"; type: { fields: [{ name: "sideAndTree"; type: "u8" }, { name: "padding1"; type: { array: ["u8", 1] } }, { name: "market"; type: "u16" }, { name: "padding2"; type: { array: ["u8", 4] } }, { name: "clientId"; type: "u64" }, { name: "id"; type: "u128" }, { name: "reserved"; type: { array: ["u8", 64] } }]; kind: "struct" } }, { name: "MangoAccountFixed"; type: { fields: [{ name: "group"; type: "publicKey" }, { name: "owner"; type: "publicKey" }, { name: "name"; type: { array: ["u8", 32] } }, { name: "delegate"; type: "publicKey" }, { name: "accountNum"; type: "u32" }, { name: "beingLiquidated"; type: "u8" }, { name: "inHealthRegion"; type: "u8" }, { name: "bump"; type: "u8" }, { name: "padding"; type: { array: ["u8", 1] } }, { name: "netDeposits"; type: "i64" }, { name: "perpSpotTransfers"; type: "i64" }, { name: "healthRegionBeginInitHealth"; type: "i64" }, { name: "frozenUntil"; type: "u64" }, { name: "buybackFeesAccruedCurrent"; type: "u64" }, { name: "buybackFeesAccruedPrevious"; type: "u64" }, { name: "buybackFeesExpiryTimestamp"; type: "u64" }, { name: "nextTokenConditionalSwapId"; type: "u64" }, { name: "temporaryDelegate"; type: "publicKey" }, { name: "temporaryDelegateExpiry"; type: "u64" }, { name: "reserved"; type: { array: ["u8", 160] } }]; kind: "struct" } }, { name: "OracleConfig"; type: { fields: [{ name: "confFilter"; type: { defined: "I80F48" } }, { name: "maxStalenessSlots"; type: "i64" }, { name: "reserved"; type: { array: ["u8", 72] } }]; kind: "struct" } }, { name: "OracleConfigParams"; type: { fields: [{ name: "confFilter"; type: "f32" }, { name: "maxStalenessSlots"; type: { option: "u32" } }]; kind: "struct" } }, { docs: ["InnerNodes and LeafNodes compose the binary tree of orders.", "", "Each InnerNode has exactly two children, which are either InnerNodes themselves,", "or LeafNodes. The children share the top `prefix_len` bits of `key`. The left", "child has a 0 in the next bit, and the right a 1."]; name: "InnerNode"; type: { fields: [{ name: "tag"; type: "u8" }, { name: "padding"; type: { array: ["u8", 3] } }, { docs: ["number of highest `key` bits that all children share", "e.g. if it's 2, the two highest bits of `key` will be the same on all children"]; name: "prefixLen"; type: "u32" }, { docs: ["only the top `prefix_len` bits of `key` are relevant"]; name: "key"; type: "u128" }, { docs: ["indexes into `BookSide::nodes`"]; name: "children"; type: { array: ["u32", 2] } }, { docs: ["The earliest expiry timestamp for the left and right subtrees.", "", "Needed to be able to find and remove expired orders without having to", "iterate through the whole bookside."]; name: "childEarliestExpiry"; type: { array: ["u64", 2] } }, { name: "reserved"; type: { array: ["u8", 72] } }]; kind: "struct" } }, { docs: ["LeafNodes represent an order in the binary tree"]; name: "LeafNode"; type: { fields: [{ docs: ["NodeTag"]; name: "tag"; type: "u8" }, { docs: ["Index into the owning MangoAccount's PerpOpenOrders"]; name: "ownerSlot"; type: "u8" }, { docs: ["PostOrderType, this was added for TradingView move order"]; name: "orderType"; type: "u8" }, { name: "padding"; type: { array: ["u8", 1] } }, { docs: ["Time in seconds after `timestamp` at which the order expires.", "A value of 0 means no expiry."]; name: "timeInForce"; type: "u16" }, { name: "padding2"; type: { array: ["u8", 2] } }, { docs: ["The binary tree key, see new_node_key()"]; name: "key"; type: "u128" }, { docs: ["Address of the owning MangoAccount"]; name: "owner"; type: "publicKey" }, { docs: ["Number of base lots to buy or sell, always >=1"]; name: "quantity"; type: "i64" }, { docs: ["The time the order was placed"]; name: "timestamp"; type: "u64" }, { docs: ["If the effective price of an oracle pegged order exceeds this limit,", "it will be considered invalid and may be removed.", "", "Only applicable in the oracle_pegged OrderTree"]; name: "pegLimit"; type: "i64" }, { docs: ["User defined id for this order, used in FillEvents"]; name: "clientOrderId"; type: "u64" }, { name: "reserved"; type: { array: ["u8", 32] } }]; kind: "struct" } }, { name: "AnyNode"; type: { fields: [{ name: "tag"; type: "u8" }, { name: "data"; type: { array: ["u8", 119] } }]; kind: "struct" } }, { name: "OrderTreeRoot"; type: { fields: [{ name: "maybeNode"; type: "u32" }, { name: "leafCount"; type: "u32" }]; kind: "struct" } }, { docs: ["A binary tree on AnyNode::key()", "", "The key encodes the price in the top 64 bits."]; name: "OrderTreeNodes"; type: { fields: [{ name: "orderTreeType"; type: "u8" }, { name: "padding"; type: { array: ["u8", 3] } }, { name: "bumpIndex"; type: "u32" }, { name: "freeListLen"; type: "u32" }, { name: "freeListHead"; type: "u32" }, { name: "reserved"; type: { array: ["u8", 512] } }, { name: "nodes"; type: { array: [{ defined: "AnyNode" }, 1024] } }]; kind: "struct" } }, { name: "EventQueueHeader"; type: { fields: [{ name: "head"; type: "u32" }, { name: "count"; type: "u32" }, { name: "seqNum"; type: "u64" }]; kind: "struct" } }, { name: "AnyEvent"; type: { fields: [{ name: "eventType"; type: "u8" }, { name: "padding"; type: { array: ["u8", 207] } }]; kind: "struct" } }, { name: "FillEvent"; type: { fields: [{ name: "eventType"; type: "u8" }, { name: "takerSide"; type: "u8" }, { name: "makerOut"; type: "u8" }, { name: "makerSlot"; type: "u8" }, { name: "padding"; type: { array: ["u8", 4] } }, { name: "timestamp"; type: "u64" }, { name: "seqNum"; type: "u64" }, { name: "maker"; type: "publicKey" }, { name: "padding2"; type: { array: ["u8", 32] } }, { name: "makerTimestamp"; type: "u64" }, { name: "taker"; type: "publicKey" }, { name: "padding3"; type: { array: ["u8", 16] } }, { name: "takerClientOrderId"; type: "u64" }, { name: "padding4"; type: { array: ["u8", 16] } }, { name: "price"; type: "i64" }, { name: "quantity"; type: "i64" }, { name: "makerClientOrderId"; type: "u64" }, { name: "makerFee"; type: "f32" }, { name: "takerFee"; type: "f32" }, { name: "reserved"; type: { array: ["u8", 8] } }]; kind: "struct" } }, { name: "OutEvent"; type: { fields: [{ name: "eventType"; type: "u8" }, { name: "side"; type: "u8" }, { name: "ownerSlot"; type: "u8" }, { name: "padding0"; type: { array: ["u8", 5] } }, { name: "timestamp"; type: "u64" }, { name: "seqNum"; type: "u64" }, { name: "owner"; type: "publicKey" }, { name: "quantity"; type: "i64" }, { name: "padding1"; type: { array: ["u8", 144] } }]; kind: "struct" } }, { docs: ["Maintains a \"stable_price\" based on the oracle price.", "", "The stable price follows the oracle price, but its relative rate of", "change is limited (to `stable_growth_limit`) and futher reduced if", "the oracle price is far from the `delay_price`.", "", "Conceptually the `delay_price` is itself a time delayed", "(`24 * delay_interval_seconds`, assume 24h) and relative rate of change limited", "function of the oracle price. It is implemented as averaging the oracle", "price over every `delay_interval_seconds` (assume 1h) and then applying the", "`delay_growth_limit` between intervals."]; name: "StablePriceModel"; type: { fields: [{ docs: ["Current stable price to use in health"]; name: "stablePrice"; type: "f64" }, { name: "lastUpdateTimestamp"; type: "u64" }, { docs: ["Stored delay_price for each delay_interval.", "If we want the delay_price to be 24h delayed, we would store one for each hour.", "This is used in a cyclical way: We use the maximally-delayed value at delay_interval_index", "and once enough time passes to move to the next delay interval, that gets overwritten and", "we use the next one."]; name: "delayPrices"; type: { array: ["f64", 24] } }, { docs: ["The delay price is based on an average over each delay_interval. The contributions", "to the average are summed up here."]; name: "delayAccumulatorPrice"; type: "f64" }, { docs: ["Accumulating the total time for the above average."]; name: "delayAccumulatorTime"; type: "u32" }, { docs: ["Length of a delay_interval"]; name: "delayIntervalSeconds"; type: "u32" }, { docs: ["Maximal relative difference between two delay_price in consecutive intervals."]; name: "delayGrowthLimit"; type: "f32" }, { docs: ["Maximal per-second relative difference of the stable price.", "It gets further reduced if stable and delay price disagree."]; name: "stableGrowthLimit"; type: "f32" }, { docs: ["The delay_interval_index that update() was last called on."]; name: "lastDelayIntervalIndex"; type: "u8" }, { docs: ["If set to 1, the stable price will reset on the next non-zero price it sees."]; name: "resetOnNonzeroPrice"; type: "u8" }, { name: "padding"; type: { array: ["u8", 6] } }, { name: "reserved"; type: { array: ["u8", 48] } }]; kind: "struct" } }, { name: "TokenConditionalSwap"; type: { fields: [{ name: "id"; type: "u64" }, { docs: ["maximum amount of native tokens to buy or sell"]; name: "maxBuy"; type: "u64" }, { name: "maxSell"; type: "u64" }, { docs: ["how many native tokens were already bought/sold"]; name: "bought"; type: "u64" }, { name: "sold"; type: "u64" }, { docs: ["timestamp until which the conditional swap is valid"]; name: "expiryTimestamp"; type: "u64" }, { docs: ["The price must exceed this threshold to allow execution.", "", "This threshold is compared to the \"sell_token per buy_token\" oracle price", "(which can be computed by dividing the buy token oracle price by the", "sell token oracle price). If that price is >= lower_limit and <= upper_limit", "the tcs may be executable.", "", "Example: Stop loss to get out of a SOL long: The user bought SOL at 20 USDC/SOL", "and wants to stop loss at 18 USDC/SOL. They'd set buy_token=USDC, sell_token=SOL", "so the reference price is in SOL/USDC units. Set price_lower_limit=toNative(1/18)", "and price_upper_limit=toNative(1/10). Also set allow_borrows=false.", "", "Example: Want to buy SOL with USDC if the price falls below 22 USDC/SOL.", "buy_token=SOL, sell_token=USDC, reference price is in USDC/SOL units. Set", "price_upper_limit=toNative(22), price_lower_limit=0."]; name: "priceLowerLimit"; type: "f64" }, { docs: ["Parallel to price_lower_limit, but an upper limit."]; name: "priceUpperLimit"; type: "f64" }, { docs: ["The premium to pay over oracle price to incentivize execution."]; name: "pricePremiumRate"; type: "f64" }, { docs: ["The taker receives only premium_price * (1 - taker_fee_rate)"]; name: "takerFeeRate"; type: "f32" }, { docs: ["The maker has to pay premium_price * (1 + maker_fee_rate)"]; name: "makerFeeRate"; type: "f32" }, { docs: ["indexes of tokens for the swap"]; name: "buyTokenIndex"; type: "u16" }, { name: "sellTokenIndex"; type: "u16" }, { name: "hasData"; type: "u8" }, { docs: ["may token purchases create deposits? (often users just want to get out of a borrow)"]; name: "allowCreatingDeposits"; type: "u8" }, { docs: ["may token selling create borrows? (often users just want to get out of a long)"]; name: "allowCreatingBorrows"; type: "u8" }, { docs: ["The stored prices are always \"sell token per buy token\", but if the user", "used \"buy token per sell token\" when creating the tcs order, we should continue", "to show them prices in that way.", "", "Stores a TokenConditionalSwapDisplayPriceStyle enum value"]; name: "displayPriceStyle"; type: "u8" }, { docs: ["The intention the user had when placing this order, display-only", "", "Stores a TokenConditionalSwapIntention enum value"]; name: "intention"; type: "u8" }, { name: "reserved"; type: { array: ["u8", 111] } }]; kind: "struct" } }, { docs: ["Nothing in Rust shall use these types. They only exist so that the Anchor IDL", "knows about them and typescript can deserialize it."]; name: "TokenIndex"; type: { fields: [{ name: "val"; type: "u16" }]; kind: "struct" } }, { name: "Serum3MarketIndex"; type: { fields: [{ name: "val"; type: "u16" }]; kind: "struct" } }, { name: "PerpMarketIndex"; type: { fields: [{ name: "val"; type: "u16" }]; kind: "struct" } }, { name: "I80F48"; type: { fields: [{ name: "val"; type: "i128" }]; kind: "struct" } }, { name: "FlashLoanType"; type: { kind: "enum"; variants: [{ name: "Unknown" }, { name: "Swap" }] } }, { docs: ["Copy paste a bunch of enums so that we could AnchorSerialize & AnchorDeserialize them"]; name: "Serum3SelfTradeBehavior"; type: { kind: "enum"; variants: [{ name: "DecrementTake" }, { name: "CancelProvide" }, { name: "AbortTransaction" }] } }, { name: "Serum3OrderType"; type: { kind: "enum"; variants: [{ name: "Limit" }, { name: "ImmediateOrCancel" }, { name: "PostOnly" }] } }, { name: "Serum3Side"; type: { kind: "enum"; variants: [{ name: "Bid" }, { name: "Ask" }] } }, { docs: ["There are three types of health:", "- initial health (\"init\"): users can only open new positions if it's >= 0", "- maintenance health (\"maint\"): users get liquidated if it's < 0", "- liquidation end health: once liquidation started (see being_liquidated), it", "only stops once this is >= 0", "", "The ordering is", "init health <= liquidation end health <= maint health", "", "The different health types are realized by using different weights and prices:", "- init health: init weights with scaling, stable-price adjusted prices", "- liq end health: init weights without scaling, oracle prices", "- maint health: maint weights, oracle prices", ""]; name: "HealthType"; type: { kind: "enum"; variants: [{ name: "Init" }, { name: "Maint" }, { name: "LiquidationEnd" }] } }, { name: "LoanOriginationFeeInstruction"; type: { kind: "enum"; variants: [{ name: "Unknown" }, { name: "LiqTokenBankruptcy" }, { name: "LiqTokenWithToken" }, { name: "Serum3LiqForceCancelOrders" }, { name: "Serum3PlaceOrder" }, { name: "Serum3SettleFunds" }, { name: "TokenWithdraw" }, { name: "TokenConditionalSwapTrigger" }] } }, { docs: ["Enum for lookup into ix gate", "note:", "total ix files 56,", "ix files included 48,", "ix files not included 8,", "- Benchmark,", "- ComputeAccountData,", "- GroupCreate", "- GroupEdit", "- IxGateSet,", "- PerpZeroOut,", "- PerpEditMarket,", "- TokenEdit,"]; name: "IxGate"; type: { kind: "enum"; variants: [{ name: "AccountClose" }, { name: "AccountCreate" }, { name: "AccountEdit" }, { name: "AccountExpand" }, { name: "AccountToggleFreeze" }, { name: "AltExtend" }, { name: "AltSet" }, { name: "FlashLoan" }, { name: "GroupClose" }, { name: "GroupCreate" }, { name: "HealthRegion" }, { name: "PerpCancelAllOrders" }, { name: "PerpCancelAllOrdersBySide" }, { name: "PerpCancelOrder" }, { name: "PerpCancelOrderByClientOrderId" }, { name: "PerpCloseMarket" }, { name: "PerpConsumeEvents" }, { name: "PerpCreateMarket" }, { name: "PerpDeactivatePosition" }, { name: "PerpLiqBaseOrPositivePnl" }, { name: "PerpLiqForceCancelOrders" }, { name: "PerpLiqNegativePnlOrBankruptcy" }, { name: "PerpPlaceOrder" }, { name: "PerpSettleFees" }, { name: "PerpSettlePnl" }, { name: "PerpUpdateFunding" }, { name: "Serum3CancelAllOrders" }, { name: "Serum3CancelOrder" }, { name: "Serum3CloseOpenOrders" }, { name: "Serum3CreateOpenOrders" }, { name: "Serum3DeregisterMarket" }, { name: "Serum3EditMarket" }, { name: "Serum3LiqForceCancelOrders" }, { name: "Serum3PlaceOrder" }, { name: "Serum3RegisterMarket" }, { name: "Serum3SettleFunds" }, { name: "StubOracleClose" }, { name: "StubOracleCreate" }, { name: "StubOracleSet" }, { name: "TokenAddBank" }, { name: "TokenDeposit" }, { name: "TokenDeregister" }, { name: "TokenLiqBankruptcy" }, { name: "TokenLiqWithToken" }, { name: "TokenRegister" }, { name: "TokenRegisterTrustless" }, { name: "TokenUpdateIndexAndRate" }, { name: "TokenWithdraw" }, { name: "AccountBuybackFeesWithMngo" }, { name: "TokenForceCloseBorrowsWithToken" }, { name: "PerpForceClosePosition" }, { name: "GroupWithdrawInsuranceFund" }, { name: "TokenConditionalSwapCreate" }, { name: "TokenConditionalSwapTrigger" }, { name: "TokenConditionalSwapCancel" }, { name: "OpenbookV2CancelOrder" }, { name: "OpenbookV2CloseOpenOrders" }, { name: "OpenbookV2CreateOpenOrders" }, { name: "OpenbookV2DeregisterMarket" }, { name: "OpenbookV2EditMarket" }, { name: "OpenbookV2LiqForceCancelOrders" }, { name: "OpenbookV2PlaceOrder" }, { name: "OpenbookV2PlaceTakeOrder" }, { name: "OpenbookV2RegisterMarket" }, { name: "OpenbookV2SettleFunds" }, { name: "AdminTokenWithdrawFees" }, { name: "AdminPerpWithdrawFees" }, { name: "AccountSizeMigration" }] } }, { name: "CheckLiquidatable"; type: { kind: "enum"; variants: [{ name: "NotLiquidatable" }, { name: "Liquidatable" }, { name: "BecameNotLiquidatable" }] } }, { name: "OracleType"; type: { kind: "enum"; variants: [{ name: "Pyth" }, { name: "Stub" }, { name: "SwitchboardV1" }, { name: "SwitchboardV2" }] } }, { name: "OrderState"; type: { kind: "enum"; variants: [{ name: "Valid" }, { name: "Invalid" }, { name: "Skipped" }] } }, { name: "BookSideOrderTree"; type: { kind: "enum"; variants: [{ name: "Fixed" }, { name: "OraclePegged" }] } }, { name: "NodeTag"; type: { kind: "enum"; variants: [{ name: "Uninitialized" }, { name: "InnerNode" }, { name: "LeafNode" }, { name: "FreeNode" }, { name: "LastFreeNode" }] } }, { name: "PlaceOrderType"; type: { kind: "enum"; variants: [{ name: "Limit" }, { name: "ImmediateOrCancel" }, { name: "PostOnly" }, { name: "Market" }, { name: "PostOnlySlide" }] } }, { name: "PostOrderType"; type: { kind: "enum"; variants: [{ name: "Limit" }, { name: "PostOnly" }, { name: "PostOnlySlide" }] } }, { docs: ["Self trade behavior controls how taker orders interact with resting limit orders of the same account.", "This setting has no influence on placing a resting or oracle pegged limit order that does not match", "immediately, instead it's the responsibility of the user to correctly configure his taker orders."]; name: "SelfTradeBehavior"; type: { kind: "enum"; variants: [{ name: "DecrementTake" }, { name: "CancelProvide" }, { name: "AbortTransaction" }] } }, { name: "Side"; type: { kind: "enum"; variants: [{ name: "Bid" }, { name: "Ask" }] } }, { docs: ["SideAndOrderTree is a storage optimization, so we don't need two bytes for the data"]; name: "SideAndOrderTree"; type: { kind: "enum"; variants: [{ name: "BidFixed" }, { name: "AskFixed" }, { name: "BidOraclePegged" }, { name: "AskOraclePegged" }] } }, { name: "OrderParams"; type: { kind: "enum"; variants: [{ name: "Market" }, { fields: [{ name: "price_lots"; type: "i64" }]; name: "ImmediateOrCancel" }, { fields: [{ name: "price_lots"; type: "i64" }, { name: "order_type"; type: { defined: "PostOrderType" } }]; name: "Fixed" }, { fields: [{ name: "price_offset_lots"; type: "i64" }, { name: "order_type"; type: { defined: "PostOrderType" } }, { name: "peg_limit"; type: "i64" }, { name: "max_oracle_staleness_slots"; type: "i32" }]; name: "OraclePegged" }] } }, { name: "OrderTreeType"; type: { kind: "enum"; variants: [{ name: "Bids" }, { name: "Asks" }] } }, { name: "EventType"; type: { kind: "enum"; variants: [{ name: "Fill" }, { name: "Out" }, { name: "Liquidate" }] } }, { name: "TokenConditionalSwapDisplayPriceStyle"; type: { kind: "enum"; variants: [{ name: "SellTokenPerBuyToken" }, { name: "BuyTokenPerSellToken" }] } }, { name: "TokenConditionalSwapIntention"; type: { kind: "enum"; variants: [{ name: "Unknown" }, { name: "StopLoss" }, { name: "TakeProfit" }] } }]
version: "0.19.1"
Modify
Type parameters
T
R
Oracle
Config Type declaration
conf
Filter: I80F48 max
Staleness Slots: BN
Oracle
Config Dto Type declaration
conf
Filter: I80F48Dto max
Staleness Slots: BN
Parsed
Fill Event Perp
Market Index Platform
Fee Type declaration
fee
Account: string fee
Bps: number
Price
Impact Type declaration
avg_
price_ impact_ percent: number max_
price_ impact_ percent: number min_
price_ impact_ percent: number side: "bid" | "ask"
symbol: string
target_
amount: number
Quote
Mint To Referrer Routes
Stable
Price Model Type declaration
delay
Accumulator Price: number delay
Accumulator Time: number delay
Growth Limit: number delay
Interval Seconds: number delay
Prices: number[] last
Delay Interval Index: number last
Update Timestamp: BN stable
Growth Limit: number stable
Price: number
Token
Type declaration
address: string
chain
Id: number decimals: number
extensions: { coingeckoId?: string }
Optional coingecko
Id?: string
logoURI: string
name: string
symbol: string
tags: string[]
Token
Index Token
Mint Address Variables
Const I64_
MAX_ BN Const IDL
Const MANGO_
ROUTER_ API_ URL Const MANGO_
V4_ ID Type declaration
devnet: PublicKey
mainnet-
beta: PublicKey testnet: PublicKey
Const MAX_
RECENT_ PRIORITY_ FEE_ ACCOUNTS Const Null
Perp Edit Params Const Null
Token Edit Params Const OPENBOOK_
PROGRAM_ ID Type declaration
devnet: PublicKey
mainnet-
beta: PublicKey
Const QUOTE_
DECIMALS Const True
Ix Gate Params Const U64_
MAX_ BN Const USDC_
MINT Functions
HUNDRED_
I80 F48 Returns I80F48
MAX_
I80 F48 Returns I80F48
MINUS_
ONE_ I80 F48 Returns I80F48
ONE_
I80 F48 Returns I80F48
RUST_
I64_ MAX Returns BN
RUST_
I64_ MIN Returns BN
RUST_
U64_ MAX Returns BN
ZERO_
I80 F48 Returns I80F48
bps
To Decimal Parameters
bps: number
Returns number
build
Fetch Returns Promise<(input: RequestInfo | URL, init?: RequestInit) => Promise<Response>>
build
Ix Gate Parameters
p: IxGateParams
Returns BN
build
Versioned Tx Parameters
provider: AnchorProvider
ix: TransactionInstruction[]
additionalSigners: Signer[] = []
alts: AddressLookupTableAccount[] = []
Returns Promise<VersionedTransaction>
compute
Price Impact On Jup - +
@blockworks-foundation/mango-v4 @blockworks-foundation/mango-v4
Index
Enumerations
Classes
- As
- Bank
- Book
Side - Book
Side Type - Flash
Loan Type - Flash
Loan Withdraw - Group
- Health
Type - I80
F48 - I80
F48 Dto - Inner
Node - Interest
Rate Params - Leaf
Node - Mango
Account - Mango
Client - Mint
Info - Oracle
Config Params - Perp
Event Queue - Perp
Market - Perp
Oo - Perp
Oo Dto - Perp
Order - Perp
Order Side - Perp
Order Type - Perp
Position - Perp
Position Dto - Perp
Self Trade Behavior - Serum3
Market - Serum3
Order Type - Serum3
Orders - Serum3
Position Dto - Serum3
Self Trade Behavior - Serum3
Side - Stub
Oracle - Token
Conditional Swap - Token
Conditional Swap Display Price Style - Token
Conditional Swap Dto - Token
Conditional Swap Intention - Token
Position - Token
Position Dto
Interfaces
Type aliases
Variables
Functions
- HUNDRED_
I80 F48 - MAX_
I80 F48 - MINUS_
ONE_ I80 F48 - ONE_
I80 F48 - RUST_
I64_ MAX - RUST_
I64_ MIN - RUST_
U64_ MAX - ZERO_
I80 F48 - bps
To Decimal - build
Fetch - build
Ix Gate - build
Versioned Tx - compute
Price Impact On Jup - create
Associated Token Account Idempotent Instruction - create
Compute Budget Ix - fetch
Jupiter Transaction - fetch
Routes - get
Associated Token Address - get
Closest To Liquidation Perp Positions - get
Equity For Mango Accounts - get
Largest Perp Positions - get
On Chain Price For Mints - get
Perp Positions To Be Liquidated - get
Price Impact For Liqor - get
Risk Stats - percentage
To Decimal - prepare
Mango Router Instructions - round
To5 - send
Transaction - to
Native - to
Native I80 F48 - to
Native I80 F48 For Quote - to
Native Sell Per Buy Token Price - to
Ui Decimals - to
Ui Decimals For Quote - to
Ui I80 F48 - to
Ui Sell Per Buy Token Price
Type aliases
Account
Info Map Amm
Label Mango
V4 Type declaration
accounts: [{ name: "bank"; type: { fields: [{ name: "group"; type: "publicKey" }, { name: "name"; type: { array: ["u8", 16] } }, { name: "mint"; type: "publicKey" }, { name: "vault"; type: "publicKey" }, { name: "oracle"; type: "publicKey" }, { name: "oracleConfig"; type: { defined: "OracleConfig" } }, { name: "stablePriceModel"; type: { defined: "StablePriceModel" } }, { docs: ["the index used to scale the value of an IndexedPosition", "TODO: should always be >= 0, add checks?"]; name: "depositIndex"; type: { defined: "I80F48" } }, { name: "borrowIndex"; type: { defined: "I80F48" } }, { docs: ["deposits/borrows for this bank", "", "Note that these may become negative. It's perfectly fine for users to borrow one one bank", "(increasing indexed_borrows there) and paying back on another (possibly decreasing indexed_borrows", "below zero).", "", "The vault amount is not deducable from these values.", "", "These become meaningful when summed over all banks (like in update_index_and_rate)."]; name: "indexedDeposits"; type: { defined: "I80F48" } }, { name: "indexedBorrows"; type: { defined: "I80F48" } }, { name: "indexLastUpdated"; type: "u64" }, { name: "bankRateLastUpdated"; type: "u64" }, { name: "avgUtilization"; type: { defined: "I80F48" } }, { name: "adjustmentFactor"; type: { defined: "I80F48" } }, { name: "util0"; type: { defined: "I80F48" } }, { name: "rate0"; type: { defined: "I80F48" } }, { name: "util1"; type: { defined: "I80F48" } }, { name: "rate1"; type: { defined: "I80F48" } }, { name: "maxRate"; type: { defined: "I80F48" } }, { name: "collectedFeesNative"; type: { defined: "I80F48" } }, { name: "loanOriginationFeeRate"; type: { defined: "I80F48" } }, { name: "loanFeeRate"; type: { defined: "I80F48" } }, { name: "maintAssetWeight"; type: { defined: "I80F48" } }, { name: "initAssetWeight"; type: { defined: "I80F48" } }, { name: "maintLiabWeight"; type: { defined: "I80F48" } }, { name: "initLiabWeight"; type: { defined: "I80F48" } }, { name: "liquidationFee"; type: { defined: "I80F48" } }, { name: "dust"; type: { defined: "I80F48" } }, { name: "flashLoanTokenAccountInitial"; type: "u64" }, { name: "flashLoanApprovedAmount"; type: "u64" }, { name: "tokenIndex"; type: "u16" }, { name: "bump"; type: "u8" }, { name: "mintDecimals"; type: "u8" }, { name: "bankNum"; type: "u32" }, { docs: ["Min fraction of deposits that must remain in the vault when borrowing."]; name: "minVaultToDepositsRatio"; type: "f64" }, { docs: ["Size in seconds of a net borrows window"]; name: "netBorrowLimitWindowSizeTs"; type: "u64" }, { docs: ["Timestamp at which the last net borrows window started"]; name: "lastNetBorrowsWindowStartTs"; type: "u64" }, { docs: ["Net borrow limit per window in quote native; set to -1 to disable."]; name: "netBorrowLimitPerWindowQuote"; type: "i64" }, { docs: ["Sum of all deposits and borrows in the last window, in native units."]; name: "netBorrowsInWindow"; type: "i64" }, { docs: ["Soft borrow limit in native quote", "", "Once the borrows on the bank exceed this quote value, init_liab_weight is scaled up.", "Set to f64::MAX to disable.", "", "See scaled_init_liab_weight()."]; name: "borrowWeightScaleStartQuote"; type: "f64" }, { docs: ["Limit for collateral of deposits in native quote", "", "Once the deposits in the bank exceed this quote value, init_asset_weight is scaled", "down to keep the total collateral value constant.", "Set to f64::MAX to disable.", "", "See scaled_init_asset_weight()."]; name: "depositWeightScaleStartQuote"; type: "f64" }, { name: "reduceOnly"; type: "u8" }, { name: "forceClose"; type: "u8" }, { name: "padding"; type: { array: ["u8", 6] } }, { name: "feesWithdrawn"; type: "u64" }, { docs: ["Fees for the token conditional swap feature"]; name: "tokenConditionalSwapTakerFeeRate"; type: "f32" }, { name: "tokenConditionalSwapMakerFeeRate"; type: "f32" }, { name: "flashLoanDepositFeeRate"; type: "f32" }, { name: "reserved"; type: { array: ["u8", 2092] } }]; kind: "struct" } }, { name: "group"; type: { fields: [{ name: "creator"; type: "publicKey" }, { name: "groupNum"; type: "u32" }, { name: "admin"; type: "publicKey" }, { name: "fastListingAdmin"; type: "publicKey" }, { name: "mngoTokenIndex"; type: "u16" }, { name: "padding"; type: { array: ["u8", 2] } }, { name: "insuranceVault"; type: "publicKey" }, { name: "insuranceMint"; type: "publicKey" }, { name: "bump"; type: "u8" }, { name: "testing"; type: "u8" }, { name: "version"; type: "u8" }, { name: "buybackFees"; type: "u8" }, { name: "buybackFeesMngoBonusFactor"; type: "f32" }, { name: "addressLookupTables"; type: { array: ["publicKey", 20] } }, { name: "securityAdmin"; type: "publicKey" }, { name: "depositLimitQuote"; type: "u64" }, { name: "ixGate"; type: "u128" }, { name: "buybackFeesSwapMangoAccount"; type: "publicKey" }, { docs: ["Number of seconds after which fees that could be used with the fees buyback feature expire.", "", "The actual expiry is staggered such that the fees users accumulate are always", "available for at least this interval - but may be available for up to twice this time.", "", "When set to 0, there's no expiry of buyback fees."]; name: "buybackFeesExpiryInterval"; type: "u64" }, { name: "reserved"; type: { array: ["u8", 1824] } }]; kind: "struct" } }, { name: "mangoAccount"; type: { fields: [{ name: "group"; type: "publicKey" }, { name: "owner"; type: "publicKey" }, { name: "name"; type: { array: ["u8", 32] } }, { name: "delegate"; type: "publicKey" }, { name: "accountNum"; type: "u32" }, { docs: ["Tracks that this account should be liquidated until init_health >= 0.", "", "Normally accounts can not be liquidated while maint_health >= 0. But when an account", "reaches maint_health < 0, liquidators will call a liquidation instruction and thereby", "set this flag. Now the account may be liquidated until init_health >= 0.", "", "Many actions should be disabled while the account is being liquidated, even if", "its maint health has recovered to positive. Creating new open orders would, for example,", "confuse liquidators."]; name: "beingLiquidated"; type: "u8" }, { docs: ["The account is currently inside a health region marked by HealthRegionBegin...HealthRegionEnd.", "", "Must never be set after a transaction ends."]; name: "inHealthRegion"; type: "u8" }, { name: "bump"; type: "u8" }, { name: "padding"; type: { array: ["u8", 1] } }, { name: "netDeposits"; type: "i64" }, { name: "perpSpotTransfers"; type: "i64" }, { docs: ["Init health as calculated during HealthReginBegin, rounded up."]; name: "healthRegionBeginInitHealth"; type: "i64" }, { name: "frozenUntil"; type: "u64" }, { docs: ["Fees usable with the \"fees buyback\" feature.", "This tracks the ones that accrued in the current expiry interval."]; name: "buybackFeesAccruedCurrent"; type: "u64" }, { docs: ["Fees buyback amount from the previous expiry interval."]; name: "buybackFeesAccruedPrevious"; type: "u64" }, { docs: ["End timestamp of the current expiry interval of the buyback fees amount."]; name: "buybackFeesExpiryTimestamp"; type: "u64" }, { docs: ["Next id to use when adding a token condition swap"]; name: "nextTokenConditionalSwapId"; type: "u64" }, { name: "reserved"; type: { array: ["u8", 200] } }, { name: "headerVersion"; type: "u8" }, { name: "padding3"; type: { array: ["u8", 7] } }, { name: "padding4"; type: "u32" }, { name: "tokens"; type: { vec: { defined: "TokenPosition" } } }, { name: "padding5"; type: "u32" }, { name: "serum3"; type: { vec: { defined: "Serum3Orders" } } }, { name: "padding6"; type: "u32" }, { name: "perps"; type: { vec: { defined: "PerpPosition" } } }, { name: "padding7"; type: "u32" }, { name: "perpOpenOrders"; type: { vec: { defined: "PerpOpenOrder" } } }]; kind: "struct" } }, { name: "mintInfo"; type: { fields: [{ name: "group"; type: "publicKey" }, { name: "tokenIndex"; type: "u16" }, { name: "groupInsuranceFund"; type: "u8" }, { name: "padding1"; type: { array: ["u8", 5] } }, { name: "mint"; type: "publicKey" }, { name: "banks"; type: { array: ["publicKey", 6] } }, { name: "vaults"; type: { array: ["publicKey", 6] } }, { name: "oracle"; type: "publicKey" }, { name: "registrationTime"; type: "u64" }, { name: "reserved"; type: { array: ["u8", 2560] } }]; kind: "struct" } }, { name: "openbookV2Market"; type: { fields: [{ name: "group"; type: "publicKey" }, { name: "baseTokenIndex"; type: "u16" }, { name: "quoteTokenIndex"; type: "u16" }, { name: "reduceOnly"; type: "u8" }, { name: "forceClose"; type: "u8" }, { name: "padding1"; type: { array: ["u8", 2] } }, { name: "name"; type: { array: ["u8", 16] } }, { name: "openbookV2Program"; type: "publicKey" }, { name: "openbookV2MarketExternal"; type: "publicKey" }, { name: "marketIndex"; type: "u16" }, { name: "bump"; type: "u8" }, { name: "padding2"; type: { array: ["u8", 5] } }, { name: "registrationTime"; type: "u64" }, { name: "reserved"; type: { array: ["u8", 512] } }]; kind: "struct" } }, { name: "openbookV2MarketIndexReservation"; type: { fields: [{ name: "group"; type: "publicKey" }, { name: "marketIndex"; type: "u16" }, { name: "reserved"; type: { array: ["u8", 38] } }]; kind: "struct" } }, { name: "stubOracle"; type: { fields: [{ name: "group"; type: "publicKey" }, { name: "mint"; type: "publicKey" }, { name: "price"; type: { defined: "I80F48" } }, { name: "lastUpdateTs"; type: "i64" }, { name: "lastUpdateSlot"; type: "u64" }, { name: "deviation"; type: { defined: "I80F48" } }, { name: "reserved"; type: { array: ["u8", 104] } }]; kind: "struct" } }, { name: "bookSide"; type: { fields: [{ name: "roots"; type: { array: [{ defined: "OrderTreeRoot" }, 2] } }, { name: "reservedRoots"; type: { array: [{ defined: "OrderTreeRoot" }, 4] } }, { name: "reserved"; type: { array: ["u8", 256] } }, { name: "nodes"; type: { defined: "OrderTreeNodes" } }]; kind: "struct" } }, { name: "eventQueue"; type: { fields: [{ name: "header"; type: { defined: "EventQueueHeader" } }, { name: "buf"; type: { array: [{ defined: "AnyEvent" }, 488] } }, { name: "reserved"; type: { array: ["u8", 64] } }]; kind: "struct" } }, { name: "perpMarket"; type: { fields: [{ name: "group"; type: "publicKey" }, { docs: ["Token index that settlements happen in.", "", "Currently required to be 0, USDC. In the future settlement", "may be allowed to happen in other tokens."]; name: "settleTokenIndex"; type: "u16" }, { docs: ["Index of this perp market. Other data, like the MangoAccount's PerpPosition", "reference this market via this index. Unique for this group's perp markets."]; name: "perpMarketIndex"; type: "u16" }, { docs: ["Field used to contain the trusted_market flag and is now unused."]; name: "blocked1"; type: "u8" }, { docs: ["Is this market covered by the group insurance fund?"]; name: "groupInsuranceFund"; type: "u8" }, { docs: ["PDA bump"]; name: "bump"; type: "u8" }, { docs: ["Number of decimals used for the base token.", "", "Used to convert the oracle's price into a native/native price."]; name: "baseDecimals"; type: "u8" }, { docs: ["Name. Trailing zero bytes are ignored."]; name: "name"; type: { array: ["u8", 16] } }, { docs: ["Address of the BookSide account for bids"]; name: "bids"; type: "publicKey" }, { docs: ["Address of the BookSide account for asks"]; name: "asks"; type: "publicKey" }, { docs: ["Address of the EventQueue account"]; name: "eventQueue"; type: "publicKey" }, { docs: ["Oracle account address"]; name: "oracle"; type: "publicKey" }, { docs: ["Oracle configuration"]; name: "oracleConfig"; type: { defined: "OracleConfig" } }, { docs: ["Maintains a stable price based on the oracle price that is less volatile."]; name: "stablePriceModel"; type: { defined: "StablePriceModel" } }, { docs: ["Number of quote native in a quote lot. Must be a power of 10.", "", "Primarily useful for increasing the tick size on the market: A lot price", "of 1 becomes a native price of quote_lot_size/base_lot_size becomes a", "ui price of quote_lot_size*base_decimals/base_lot_size/quote_decimals."]; name: "quoteLotSize"; type: "i64" }, { docs: ["Number of base native in a base lot. Must be a power of 10.", "", "Example: If base decimals for the underlying asset is 6, base lot size", "is 100 and and base position lots is 10_000 then base position native is", "1_000_000 and base position ui is 1."]; name: "baseLotSize"; type: "i64" }, { docs: ["These weights apply to the base position. The quote position has", "no explicit weight (but may be covered by the overall pnl asset weight)."]; name: "maintBaseAssetWeight"; type: { defined: "I80F48" } }, { name: "initBaseAssetWeight"; type: { defined: "I80F48" } }, { name: "maintBaseLiabWeight"; type: { defined: "I80F48" } }, { name: "initBaseLiabWeight"; type: { defined: "I80F48" } }, { docs: ["Number of base lots currently active in the market. Always >= 0.", "", "Since this counts positive base lots and negative base lots, the more relevant", "number of open base lot pairs is half this value."]; name: "openInterest"; type: "i64" }, { docs: ["Total number of orders seen"]; name: "seqNum"; type: "u64" }, { docs: ["Timestamp in seconds that the market was registered at."]; name: "registrationTime"; type: "u64" }, { docs: ["Minimal funding rate per day, must be <= 0."]; name: "minFunding"; type: { defined: "I80F48" } }, { docs: ["Maximal funding rate per day, must be >= 0."]; name: "maxFunding"; type: { defined: "I80F48" } }, { docs: ["For funding, get the impact price this many base lots deep into the book."]; name: "impactQuantity"; type: "i64" }, { docs: ["Current long funding value. Increasing it means that every long base lot", "needs to pay that amount of quote native in funding.", "", "PerpPosition uses and tracks it settle funding. Updated by the perp", "keeper instruction."]; name: "longFunding"; type: { defined: "I80F48" } }, { docs: ["See long_funding."]; name: "shortFunding"; type: { defined: "I80F48" } }, { docs: ["timestamp that funding was last updated in"]; name: "fundingLastUpdated"; type: "u64" }, { docs: ["Fees", "Fee for base position liquidation"]; name: "baseLiquidationFee"; type: { defined: "I80F48" } }, { docs: ["Fee when matching maker orders. May be negative."]; name: "makerFee"; type: { defined: "I80F48" } }, { docs: ["Fee for taker orders, may not be negative."]; name: "takerFee"; type: { defined: "I80F48" } }, { docs: ["Fees accrued in native quote currency", "these are increased when new fees are paid and decreased when perp_settle_fees is called"]; name: "feesAccrued"; type: { defined: "I80F48" } }, { docs: ["Fees settled in native quote currency", "these are increased when perp_settle_fees is called, and never decreased"]; name: "feesSettled"; type: { defined: "I80F48" } }, { docs: ["Fee (in quote native) to charge for ioc orders"]; name: "feePenalty"; type: "f32" }, { docs: ["In native units of settlement token, given to each settle call above the", "settle_fee_amount_threshold."]; name: "settleFeeFlat"; type: "f32" }, { docs: ["Pnl settlement amount needed to be eligible for the flat fee."]; name: "settleFeeAmountThreshold"; type: "f32" }, { docs: ["Fraction of pnl to pay out as fee if +pnl account has low health."]; name: "settleFeeFractionLowHealth"; type: "f32" }, { docs: ["Controls the strictness of the settle limit.", "Set to a negative value to disable the limit.", "", "This factor applies to the settle limit in two ways", "- for the unrealized pnl settle limit, the factor is multiplied with the stable perp base value", "(i.e. limit_factor * base_native * stable_price)", "- when increasing the realized pnl settle limit (stored per PerpPosition), the factor is", "multiplied with the stable value of the perp pnl being realized", "(i.e. limit_factor * reduced_native * stable_price)", "", "See also PerpPosition::settle_pnl_limit_realized_trade"]; name: "settlePnlLimitFactor"; type: "f32" }, { name: "padding3"; type: { array: ["u8", 4] } }, { docs: ["Window size in seconds for the perp settlement limit"]; name: "settlePnlLimitWindowSizeTs"; type: "u64" }, { docs: ["If true, users may no longer increase their market exposure. Only actions", "that reduce their position are still allowed."]; name: "reduceOnly"; type: "u8" }, { name: "forceClose"; type: "u8" }, { name: "padding4"; type: { array: ["u8", 6] } }, { docs: ["Weights for full perp market health, if positive"]; name: "maintOverallAssetWeight"; type: { defined: "I80F48" } }, { name: "initOverallAssetWeight"; type: { defined: "I80F48" } }, { name: "positivePnlLiquidationFee"; type: { defined: "I80F48" } }, { name: "feesWithdrawn"; type: "u64" }, { name: "reserved"; type: { array: ["u8", 1880] } }]; kind: "struct" } }, { name: "serum3Market"; type: { fields: [{ name: "group"; type: "publicKey" }, { name: "baseTokenIndex"; type: "u16" }, { name: "quoteTokenIndex"; type: "u16" }, { name: "reduceOnly"; type: "u8" }, { name: "forceClose"; type: "u8" }, { name: "padding1"; type: { array: ["u8", 2] } }, { name: "name"; type: { array: ["u8", 16] } }, { name: "serumProgram"; type: "publicKey" }, { name: "serumMarketExternal"; type: "publicKey" }, { name: "marketIndex"; type: "u16" }, { name: "bump"; type: "u8" }, { name: "padding2"; type: { array: ["u8", 5] } }, { name: "registrationTime"; type: "u64" }, { name: "reserved"; type: { array: ["u8", 128] } }]; kind: "struct" } }, { name: "serum3MarketIndexReservation"; type: { fields: [{ name: "group"; type: "publicKey" }, { name: "marketIndex"; type: "u16" }, { name: "reserved"; type: { array: ["u8", 38] } }]; kind: "struct" } }]
errors: [{ code: 6000; msg: ""; name: "SomeError" }, { code: 6001; msg: ""; name: "NotImplementedError" }, { code: 6002; msg: "checked math error"; name: "MathError" }, { code: 6003; msg: ""; name: "UnexpectedOracle" }, { code: 6004; msg: "oracle type cannot be determined"; name: "UnknownOracleType" }, { code: 6005; msg: ""; name: "InvalidFlashLoanTargetCpiProgram" }, { code: 6006; msg: "health must be positive"; name: "HealthMustBePositive" }, { code: 6007; msg: "health must be positive or not decrease"; name: "HealthMustBePositiveOrIncrease" }, { code: 6008; msg: "health must be negative"; name: "HealthMustBeNegative" }, { code: 6009; msg: "the account is bankrupt"; name: "IsBankrupt" }, { code: 6010; msg: "the account is not bankrupt"; name: "IsNotBankrupt" }, { code: 6011; msg: "no free token position index"; name: "NoFreeTokenPositionIndex" }, { code: 6012; msg: "no free serum3 open orders index"; name: "NoFreeSerum3OpenOrdersIndex" }, { code: 6013; msg: "no free perp position index"; name: "NoFreePerpPositionIndex" }, { code: 6014; msg: "serum3 open orders exist already"; name: "Serum3OpenOrdersExistAlready" }, { code: 6015; msg: "bank vault has insufficent funds"; name: "InsufficentBankVaultFunds" }, { code: 6016; msg: "account is currently being liquidated"; name: "BeingLiquidated" }, { code: 6017; msg: "invalid bank"; name: "InvalidBank" }, { code: 6018; msg: "account profitability is mismatched"; name: "ProfitabilityMismatch" }, { code: 6019; msg: "cannot settle with self"; name: "CannotSettleWithSelf" }, { code: 6020; msg: "perp position does not exist"; name: "PerpPositionDoesNotExist" }, { code: 6021; msg: "max settle amount must be greater than zero"; name: "MaxSettleAmountMustBeGreaterThanZero" }, { code: 6022; msg: "the perp position has open orders or unprocessed fill events"; name: "HasOpenPerpOrders" }, { code: 6023; msg: "an oracle does not reach the confidence threshold"; name: "OracleConfidence" }, { code: 6024; msg: "an oracle is stale"; name: "OracleStale" }, { code: 6025; msg: "settlement amount must always be positive"; name: "SettlementAmountMustBePositive" }, { code: 6026; msg: "bank utilization has reached limit"; name: "BankBorrowLimitReached" }, { code: 6027; msg: "bank net borrows has reached limit - this is an intermittent error - the limit will reset regularly"; name: "BankNetBorrowsLimitReached" }, { code: 6028; msg: "token position does not exist"; name: "TokenPositionDoesNotExist" }, { code: 6029; msg: "token deposits into accounts that are being liquidated must bring their health above the init threshold"; name: "DepositsIntoLiquidatingMustRecover" }, { code: 6030; msg: "token is in reduce only mode"; name: "TokenInReduceOnlyMode" }, { code: 6031; msg: "market is in reduce only mode"; name: "MarketInReduceOnlyMode" }, { code: 6032; msg: "group is halted"; name: "GroupIsHalted" }, { code: 6033; msg: "the perp position has non-zero base lots"; name: "PerpHasBaseLots" }, { code: 6034; msg: "there are open or unsettled serum3 orders"; name: "HasOpenOrUnsettledSerum3Orders" }, { code: 6035; msg: "has liquidatable token position"; name: "HasLiquidatableTokenPosition" }, { code: 6036; msg: "has liquidatable perp base position"; name: "HasLiquidatablePerpBasePosition" }, { code: 6037; msg: "has liquidatable positive perp pnl"; name: "HasLiquidatablePositivePerpPnl" }, { code: 6038; msg: "account is frozen"; name: "AccountIsFrozen" }, { code: 6039; msg: "Init Asset Weight can't be negative"; name: "InitAssetWeightCantBeNegative" }, { code: 6040; msg: "has open perp taker fills"; name: "HasOpenPerpTakerFills" }, { code: 6041; msg: "deposit crosses the current group deposit limit"; name: "DepositLimit" }, { code: 6042; msg: "instruction is disabled"; name: "IxIsDisabled" }, { code: 6043; msg: "no liquidatable perp base position"; name: "NoLiquidatablePerpBasePosition" }, { code: 6044; msg: "perp order id not found on the orderbook"; name: "PerpOrderIdNotFound" }, { code: 6045; msg: "HealthRegions allow only specific instructions between Begin and End"; name: "HealthRegionBadInnerInstruction" }, { code: 6046; msg: "token is in force close"; name: "TokenInForceClose" }, { code: 6047; msg: "incorrect number of health accounts"; name: "InvalidHealthAccountCount" }, { code: 6048; msg: "would self trade"; name: "WouldSelfTrade" }, { code: 6049; msg: "conditional token swap price is not in execution range"; name: "TokenConditionalSwapPriceNotInRange" }]
events: [{ fields: [{ index: false; name: "initHealth"; type: { defined: "I80F48" } }, { index: false; name: "maintHealth"; type: { defined: "I80F48" } }, { index: false; name: "equity"; type: { defined: "Equity" } }]; name: "MangoAccountData" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "marketIndex"; type: "u16" }, { index: false; name: "basePosition"; type: "i64" }, { index: false; name: "quotePosition"; type: "i128" }, { index: false; name: "longSettledFunding"; type: "i128" }, { index: false; name: "shortSettledFunding"; type: "i128" }, { index: false; name: "longFunding"; type: "i128" }, { index: false; name: "shortFunding"; type: "i128" }]; name: "PerpBalanceLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "tokenIndex"; type: "u16" }, { index: false; name: "indexedPosition"; type: "i128" }, { index: false; name: "depositIndex"; type: "i128" }, { index: false; name: "borrowIndex"; type: "i128" }]; name: "TokenBalanceLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "tokenLoanDetails"; type: { vec: { defined: "FlashLoanTokenDetail" } } }, { index: false; name: "flashLoanType"; type: { defined: "FlashLoanType" } }]; name: "FlashLoanLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "tokenLoanDetails"; type: { vec: { defined: "FlashLoanTokenDetailV2" } } }, { index: false; name: "flashLoanType"; type: { defined: "FlashLoanType" } }]; name: "FlashLoanLogV2" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "signer"; type: "publicKey" }, { index: false; name: "tokenIndex"; type: "u16" }, { index: false; name: "quantity"; type: "u64" }, { index: false; name: "price"; type: "i128" }]; name: "WithdrawLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "signer"; type: "publicKey" }, { index: false; name: "tokenIndex"; type: "u16" }, { index: false; name: "quantity"; type: "u64" }, { index: false; name: "price"; type: "i128" }]; name: "DepositLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "marketIndex"; type: "u16" }, { index: false; name: "takerSide"; type: "u8" }, { index: false; name: "makerSlot"; type: "u8" }, { index: false; name: "makerOut"; type: "bool" }, { index: false; name: "timestamp"; type: "u64" }, { index: false; name: "seqNum"; type: "u64" }, { index: false; name: "maker"; type: "publicKey" }, { index: false; name: "makerOrderId"; type: "u128" }, { index: false; name: "makerFee"; type: "i128" }, { index: false; name: "makerTimestamp"; type: "u64" }, { index: false; name: "taker"; type: "publicKey" }, { index: false; name: "takerOrderId"; type: "u128" }, { index: false; name: "takerClientOrderId"; type: "u64" }, { index: false; name: "takerFee"; type: "i128" }, { index: false; name: "price"; type: "i64" }, { index: false; name: "quantity"; type: "i64" }]; name: "FillLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "marketIndex"; type: "u16" }, { index: false; name: "takerSide"; type: "u8" }, { index: false; name: "makerSlot"; type: "u8" }, { index: false; name: "makerOut"; type: "bool" }, { index: false; name: "timestamp"; type: "u64" }, { index: false; name: "seqNum"; type: "u64" }, { index: false; name: "maker"; type: "publicKey" }, { index: false; name: "makerClientOrderId"; type: "u64" }, { index: false; name: "makerFee"; type: "f32" }, { index: false; name: "makerTimestamp"; type: "u64" }, { index: false; name: "taker"; type: "publicKey" }, { index: false; name: "takerClientOrderId"; type: "u64" }, { index: false; name: "takerFee"; type: "f32" }, { index: false; name: "price"; type: "i64" }, { index: false; name: "quantity"; type: "i64" }]; name: "FillLogV2" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "marketIndex"; type: "u16" }, { index: false; name: "takerSide"; type: "u8" }, { index: false; name: "makerSlot"; type: "u8" }, { index: false; name: "makerOut"; type: "bool" }, { index: false; name: "timestamp"; type: "u64" }, { index: false; name: "seqNum"; type: "u64" }, { index: false; name: "maker"; type: "publicKey" }, { index: false; name: "makerClientOrderId"; type: "u64" }, { index: false; name: "makerFee"; type: "f32" }, { index: false; name: "makerTimestamp"; type: "u64" }, { index: false; name: "taker"; type: "publicKey" }, { index: false; name: "takerClientOrderId"; type: "u64" }, { index: false; name: "takerFee"; type: "f32" }, { index: false; name: "price"; type: "i64" }, { index: false; name: "quantity"; type: "i64" }, { index: false; name: "makerClosedPnl"; type: "f64" }, { index: false; name: "takerClosedPnl"; type: "f64" }]; name: "FillLogV3" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "marketIndex"; type: "u16" }, { index: false; name: "longFunding"; type: "i128" }, { index: false; name: "shortFunding"; type: "i128" }, { index: false; name: "price"; type: "i128" }, { index: false; name: "oracleSlot"; type: "u64" }, { index: false; name: "stablePrice"; type: "i128" }, { index: false; name: "feesAccrued"; type: "i128" }, { index: false; name: "feesSettled"; type: "i128" }, { index: false; name: "openInterest"; type: "i64" }, { index: false; name: "instantaneousFundingRate"; type: "i128" }]; name: "PerpUpdateFundingLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "marketIndex"; type: "u16" }, { index: false; name: "longFunding"; type: "i128" }, { index: false; name: "shortFunding"; type: "i128" }, { index: false; name: "price"; type: "i128" }, { index: false; name: "oracleSlot"; type: "u64" }, { index: false; name: "oracleConfidence"; type: "i128" }, { index: false; name: "oracleType"; type: { defined: "OracleType" } }, { index: false; name: "stablePrice"; type: "i128" }, { index: false; name: "feesAccrued"; type: "i128" }, { index: false; name: "feesSettled"; type: "i128" }, { index: false; name: "openInterest"; type: "i64" }, { index: false; name: "instantaneousFundingRate"; type: "i128" }]; name: "PerpUpdateFundingLogV2" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "tokenIndex"; type: "u16" }, { index: false; name: "depositIndex"; type: "i128" }, { index: false; name: "borrowIndex"; type: "i128" }, { index: false; name: "avgUtilization"; type: "i128" }, { index: false; name: "price"; type: "i128" }, { index: false; name: "stablePrice"; type: "i128" }, { index: false; name: "collectedFees"; type: "i128" }, { index: false; name: "loanFeeRate"; type: "i128" }, { index: false; name: "totalBorrows"; type: "i128" }, { index: false; name: "totalDeposits"; type: "i128" }, { index: false; name: "borrowRate"; type: "i128" }, { index: false; name: "depositRate"; type: "i128" }]; name: "UpdateIndexLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "tokenIndex"; type: "u16" }, { index: false; name: "rate0"; type: "i128" }, { index: false; name: "rate1"; type: "i128" }, { index: false; name: "maxRate"; type: "i128" }]; name: "UpdateRateLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "liqee"; type: "publicKey" }, { index: false; name: "liqor"; type: "publicKey" }, { index: false; name: "assetTokenIndex"; type: "u16" }, { index: false; name: "liabTokenIndex"; type: "u16" }, { index: false; name: "assetTransfer"; type: "i128" }, { index: false; name: "liabTransfer"; type: "i128" }, { index: false; name: "assetPrice"; type: "i128" }, { index: false; name: "liabPrice"; type: "i128" }, { index: false; name: "bankruptcy"; type: "bool" }]; name: "TokenLiqWithTokenLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "baseTokenIndex"; type: "u16" }, { index: false; name: "quoteTokenIndex"; type: "u16" }, { index: false; name: "baseTotal"; type: "u64" }, { index: false; name: "baseFree"; type: "u64" }, { index: false; name: "quoteTotal"; type: "u64" }, { index: false; name: "quoteFree"; type: "u64" }, { index: false; name: "referrerRebatesAccrued"; type: "u64" }]; name: "Serum3OpenOrdersBalanceLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "marketIndex"; type: "u16" }, { index: false; name: "baseTokenIndex"; type: "u16" }, { index: false; name: "quoteTokenIndex"; type: "u16" }, { index: false; name: "baseTotal"; type: "u64" }, { index: false; name: "baseFree"; type: "u64" }, { index: false; name: "quoteTotal"; type: "u64" }, { index: false; name: "quoteFree"; type: "u64" }, { index: false; name: "referrerRebatesAccrued"; type: "u64" }]; name: "Serum3OpenOrdersBalanceLogV2" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "tokenIndex"; type: "u16" }, { index: false; name: "loanOriginationFee"; type: "i128" }, { index: false; name: "instruction"; type: { defined: "LoanOriginationFeeInstruction" } }]; name: "WithdrawLoanOriginationFeeLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "tokenIndex"; type: "u16" }, { index: false; name: "loanAmount"; type: "i128" }, { index: false; name: "loanOriginationFee"; type: "i128" }, { index: false; name: "instruction"; type: { defined: "LoanOriginationFeeInstruction" } }, { index: false; name: "price"; type: { option: "i128" } }]; name: "WithdrawLoanLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "liqee"; type: "publicKey" }, { index: false; name: "liqor"; type: "publicKey" }, { index: false; name: "liabTokenIndex"; type: "u16" }, { index: false; name: "initialLiabNative"; type: "i128" }, { index: false; name: "liabPrice"; type: "i128" }, { index: false; name: "insuranceTokenIndex"; type: "u16" }, { index: false; name: "insuranceTransfer"; type: "i128" }, { index: false; name: "socializedLoss"; type: "i128" }, { index: false; name: "startingLiabDepositIndex"; type: "i128" }, { index: false; name: "endingLiabDepositIndex"; type: "i128" }]; name: "TokenLiqBankruptcyLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "tokenIndex"; type: "u16" }, { index: false; name: "cumulativeDepositInterest"; type: "f64" }, { index: false; name: "cumulativeBorrowInterest"; type: "f64" }]; name: "DeactivateTokenPositionLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "marketIndex"; type: "u16" }, { index: false; name: "cumulativeLongFunding"; type: "f64" }, { index: false; name: "cumulativeShortFunding"; type: "f64" }, { index: false; name: "makerVolume"; type: "u64" }, { index: false; name: "takerVolume"; type: "u64" }, { index: false; name: "perpSpotTransfers"; type: "i64" }]; name: "DeactivatePerpPositionLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mint"; type: "publicKey" }, { index: false; name: "tokenIndex"; type: "u16" }, { index: false; name: "mintDecimals"; type: "u8" }, { index: false; name: "oracle"; type: "publicKey" }, { index: false; name: "mintInfo"; type: "publicKey" }]; name: "TokenMetaDataLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "perpMarket"; type: "publicKey" }, { index: false; name: "perpMarketIndex"; type: "u16" }, { index: false; name: "baseDecimals"; type: "u8" }, { index: false; name: "baseLotSize"; type: "i64" }, { index: false; name: "quoteLotSize"; type: "i64" }, { index: false; name: "oracle"; type: "publicKey" }]; name: "PerpMarketMetaDataLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "serumMarket"; type: "publicKey" }, { index: false; name: "marketIndex"; type: "u16" }, { index: false; name: "baseTokenIndex"; type: "u16" }, { index: false; name: "quoteTokenIndex"; type: "u16" }, { index: false; name: "serumProgram"; type: "publicKey" }, { index: false; name: "serumProgramExternal"; type: "publicKey" }]; name: "Serum3RegisterMarketLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "perpMarketIndex"; type: "u16" }, { index: false; name: "liqor"; type: "publicKey" }, { index: false; name: "liqee"; type: "publicKey" }, { index: false; name: "baseTransfer"; type: "i64" }, { index: false; name: "quoteTransfer"; type: "i128" }, { index: false; name: "pnlTransfer"; type: "i128" }, { index: false; name: "pnlSettleLimitTransfer"; type: "i128" }, { index: false; name: "price"; type: "i128" }]; name: "PerpLiqBaseOrPositivePnlLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "liqee"; type: "publicKey" }, { index: false; name: "liqor"; type: "publicKey" }, { index: false; name: "perpMarketIndex"; type: "u16" }, { index: false; name: "insuranceTransfer"; type: "i128" }, { index: false; name: "socializedLoss"; type: "i128" }, { index: false; name: "startingLongFunding"; type: "i128" }, { index: false; name: "startingShortFunding"; type: "i128" }, { index: false; name: "endingLongFunding"; type: "i128" }, { index: false; name: "endingShortFunding"; type: "i128" }]; name: "PerpLiqBankruptcyLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "liqee"; type: "publicKey" }, { index: false; name: "liqor"; type: "publicKey" }, { index: false; name: "perpMarketIndex"; type: "u16" }, { index: false; name: "settlement"; type: "i128" }]; name: "PerpLiqNegativePnlOrBankruptcyLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccountA"; type: "publicKey" }, { index: false; name: "mangoAccountB"; type: "publicKey" }, { index: false; name: "perpMarketIndex"; type: "u16" }, { index: false; name: "settlement"; type: "i128" }, { index: false; name: "settler"; type: "publicKey" }, { index: false; name: "fee"; type: "i128" }]; name: "PerpSettlePnlLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "perpMarketIndex"; type: "u16" }, { index: false; name: "settlement"; type: "i128" }]; name: "PerpSettleFeesLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "buybackFees"; type: "i128" }, { index: false; name: "buybackMngo"; type: "i128" }, { index: false; name: "mngoBuybackPrice"; type: "i128" }, { index: false; name: "oraclePrice"; type: "i128" }]; name: "AccountBuybackFeesWithMngoLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "perpMarketIndex"; type: "u16" }, { index: false; name: "seqNum"; type: "u64" }]; name: "FilledPerpOrderLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "perpMarketIndex"; type: "u16" }, { index: false; name: "takerSide"; type: "u8" }, { index: false; name: "totalBaseLotsTaken"; type: "i64" }, { index: false; name: "totalBaseLotsDecremented"; type: "i64" }, { index: false; name: "totalQuoteLotsTaken"; type: "i64" }, { index: false; name: "totalQuoteLotsDecremented"; type: "i64" }, { index: false; name: "takerFeesPaid"; type: "i128" }, { index: false; name: "feePenalty"; type: "i128" }]; name: "PerpTakerTradeLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "perpMarketIndex"; type: "u16" }, { index: false; name: "accountA"; type: "publicKey" }, { index: false; name: "accountB"; type: "publicKey" }, { index: false; name: "baseTransfer"; type: "i64" }, { index: false; name: "quoteTransfer"; type: "i128" }, { index: false; name: "price"; type: "i128" }]; name: "PerpForceClosePositionLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "liqor"; type: "publicKey" }, { index: false; name: "liqee"; type: "publicKey" }, { index: false; name: "assetTokenIndex"; type: "u16" }, { index: false; name: "liabTokenIndex"; type: "u16" }, { index: false; name: "assetTransfer"; type: "i128" }, { index: false; name: "liabTransfer"; type: "i128" }, { index: false; name: "assetPrice"; type: "i128" }, { index: false; name: "liabPrice"; type: "i128" }, { index: false; name: "feeFactor"; type: "i128" }]; name: "TokenForceCloseBorrowsWithTokenLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "id"; type: "u64" }, { index: false; name: "maxBuy"; type: "u64" }, { index: false; name: "maxSell"; type: "u64" }, { index: false; name: "expiryTimestamp"; type: "u64" }, { index: false; name: "priceLowerLimit"; type: "f64" }, { index: false; name: "priceUpperLimit"; type: "f64" }, { index: false; name: "pricePremiumRate"; type: "f64" }, { index: false; name: "takerFeeRate"; type: "f32" }, { index: false; name: "makerFeeRate"; type: "f32" }, { index: false; name: "buyTokenIndex"; type: "u16" }, { index: false; name: "sellTokenIndex"; type: "u16" }, { index: false; name: "allowCreatingDeposits"; type: "bool" }, { index: false; name: "allowCreatingBorrows"; type: "bool" }]; name: "TokenConditionalSwapCreateLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "id"; type: "u64" }, { index: false; name: "maxBuy"; type: "u64" }, { index: false; name: "maxSell"; type: "u64" }, { index: false; name: "expiryTimestamp"; type: "u64" }, { index: false; name: "priceLowerLimit"; type: "f64" }, { index: false; name: "priceUpperLimit"; type: "f64" }, { index: false; name: "pricePremiumRate"; type: "f64" }, { index: false; name: "takerFeeRate"; type: "f32" }, { index: false; name: "makerFeeRate"; type: "f32" }, { index: false; name: "buyTokenIndex"; type: "u16" }, { index: false; name: "sellTokenIndex"; type: "u16" }, { index: false; name: "allowCreatingDeposits"; type: "bool" }, { index: false; name: "allowCreatingBorrows"; type: "bool" }, { index: false; name: "displayPriceStyle"; type: "u8" }, { index: false; name: "intention"; type: "u8" }]; name: "TokenConditionalSwapCreateLogV2" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "liqee"; type: "publicKey" }, { index: false; name: "liqor"; type: "publicKey" }, { index: false; name: "tokenConditionalSwapId"; type: "u64" }, { index: false; name: "buyTokenIndex"; type: "u16" }, { index: false; name: "sellTokenIndex"; type: "u16" }, { index: false; name: "buyAmount"; type: "u64" }, { index: false; name: "sellAmount"; type: "u64" }, { index: false; name: "makerFee"; type: "u64" }, { index: false; name: "takerFee"; type: "u64" }, { index: false; name: "buyTokenPrice"; type: "i128" }, { index: false; name: "sellTokenPrice"; type: "i128" }, { index: false; name: "closed"; type: "bool" }]; name: "TokenConditionalSwapTriggerLog" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "liqee"; type: "publicKey" }, { index: false; name: "liqor"; type: "publicKey" }, { index: false; name: "tokenConditionalSwapId"; type: "u64" }, { index: false; name: "buyTokenIndex"; type: "u16" }, { index: false; name: "sellTokenIndex"; type: "u16" }, { index: false; name: "buyAmount"; type: "u64" }, { index: false; name: "sellAmount"; type: "u64" }, { index: false; name: "makerFee"; type: "u64" }, { index: false; name: "takerFee"; type: "u64" }, { index: false; name: "buyTokenPrice"; type: "i128" }, { index: false; name: "sellTokenPrice"; type: "i128" }, { index: false; name: "closed"; type: "bool" }, { index: false; name: "displayPriceStyle"; type: "u8" }, { index: false; name: "intention"; type: "u8" }]; name: "TokenConditionalSwapTriggerLogV2" }, { fields: [{ index: false; name: "mangoGroup"; type: "publicKey" }, { index: false; name: "mangoAccount"; type: "publicKey" }, { index: false; name: "id"; type: "u64" }]; name: "TokenConditionalSwapCancelLog" }]
instructions: [{ accounts: [{ isMut: false; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: true; isSigner: false; name: "bank"; relations: ["group", "vault"] }, { isMut: true; isSigner: false; name: "vault" }, { isMut: true; isSigner: false; name: "tokenAccount" }, { isMut: false; isSigner: false; name: "tokenProgram" }, { isMut: false; isSigner: true; name: "admin" }]; args: []; name: "adminTokenWithdrawFees" }, { accounts: [{ isMut: false; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group"] }, { isMut: true; isSigner: false; name: "bank"; relations: ["group", "vault"] }, { isMut: true; isSigner: false; name: "vault" }, { isMut: true; isSigner: false; name: "tokenAccount" }, { isMut: false; isSigner: false; name: "tokenProgram" }, { isMut: false; isSigner: true; name: "admin" }]; args: []; name: "adminPerpWithdrawFees" }, { accounts: [{ isMut: true; isSigner: false; name: "group"; pda: { seeds: [{ kind: "const"; type: "string"; value: "Group" }, { kind: "account"; path: "creator"; type: "publicKey" }, { kind: "arg"; path: "group_num"; type: "u32" }] } }, { isMut: false; isSigner: true; name: "creator" }, { isMut: false; isSigner: false; name: "insuranceMint" }, { isMut: true; isSigner: false; name: "insuranceVault"; pda: { seeds: [{ kind: "const"; type: "string"; value: "InsuranceVault" }, { kind: "account"; path: "group"; type: "publicKey" }] } }, { isMut: true; isSigner: true; name: "payer" }, { isMut: false; isSigner: false; name: "tokenProgram" }, { isMut: false; isSigner: false; name: "systemProgram" }, { isMut: false; isSigner: false; name: "rent" }]; args: [{ name: "groupNum"; type: "u32" }, { name: "testing"; type: "u8" }, { name: "version"; type: "u8" }]; name: "groupCreate" }, { accounts: [{ isMut: true; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: false; isSigner: true; name: "admin" }]; args: [{ name: "adminOpt"; type: { option: "publicKey" } }, { name: "fastListingAdminOpt"; type: { option: "publicKey" } }, { name: "securityAdminOpt"; type: { option: "publicKey" } }, { name: "testingOpt"; type: { option: "u8" } }, { name: "versionOpt"; type: { option: "u8" } }, { name: "depositLimitQuoteOpt"; type: { option: "u64" } }, { name: "buybackFeesOpt"; type: { option: "bool" } }, { name: "buybackFeesBonusFactorOpt"; type: { option: "f32" } }, { name: "buybackFeesSwapMangoAccountOpt"; type: { option: "publicKey" } }, { name: "mngoTokenIndexOpt"; type: { option: "u16" } }, { name: "buybackFeesExpiryIntervalOpt"; type: { option: "u64" } }]; name: "groupEdit" }, { accounts: [{ isMut: false; isSigner: false; name: "group"; relations: ["insurance_vault", "admin"] }, { isMut: false; isSigner: true; name: "admin" }, { isMut: true; isSigner: false; name: "insuranceVault" }, { isMut: true; isSigner: false; name: "destination" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: [{ name: "amount"; type: "u64" }]; name: "groupWithdrawInsuranceFund" }, { accounts: [{ isMut: true; isSigner: false; name: "group" }, { isMut: false; isSigner: true; name: "admin" }]; args: [{ name: "ixGate"; type: "u128" }]; name: "ixGateSet" }, { accounts: [{ isMut: true; isSigner: false; name: "group"; relations: ["admin", "insurance_vault"] }, { isMut: false; isSigner: true; name: "admin" }, { isMut: true; isSigner: false; name: "insuranceVault" }, { isMut: true; isSigner: false; name: "solDestination" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: []; name: "groupClose" }, { accounts: [{ isMut: false; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: false; isSigner: true; name: "admin" }, { isMut: false; isSigner: false; name: "mint" }, { isMut: true; isSigner: false; name: "bank"; pda: { seeds: [{ kind: "const"; type: "string"; value: "Bank" }, { kind: "account"; path: "group"; type: "publicKey" }, { kind: "arg"; path: "token_index"; type: "u16" }, { kind: "const"; type: "u32"; value: 0 }] } }, { isMut: true; isSigner: false; name: "vault"; pda: { seeds: [{ kind: "const"; type: "string"; value: "Vault" }, { kind: "account"; path: "group"; type: "publicKey" }, { kind: "arg"; path: "token_index"; type: "u16" }, { kind: "const"; type: "u32"; value: 0 }] } }, { isMut: true; isSigner: false; name: "mintInfo"; pda: { seeds: [{ kind: "const"; type: "string"; value: "MintInfo" }, { kind: "account"; path: "group"; type: "publicKey" }, { account: "Mint"; kind: "account"; path: "mint"; type: "publicKey" }] } }, { isMut: false; isSigner: false; name: "oracle" }, { isMut: true; isSigner: true; name: "payer" }, { isMut: false; isSigner: false; name: "tokenProgram" }, { isMut: false; isSigner: false; name: "systemProgram" }, { isMut: false; isSigner: false; name: "rent" }]; args: [{ name: "tokenIndex"; type: "u16" }, { name: "name"; type: "string" }, { name: "oracleConfig"; type: { defined: "OracleConfigParams" } }, { name: "interestRateParams"; type: { defined: "InterestRateParams" } }, { name: "loanFeeRate"; type: "f32" }, { name: "loanOriginationFeeRate"; type: "f32" }, { name: "maintAssetWeight"; type: "f32" }, { name: "initAssetWeight"; type: "f32" }, { name: "maintLiabWeight"; type: "f32" }, { name: "initLiabWeight"; type: "f32" }, { name: "liquidationFee"; type: "f32" }, { name: "stablePriceDelayIntervalSeconds"; type: "u32" }, { name: "stablePriceDelayGrowthLimit"; type: "f32" }, { name: "stablePriceGrowthLimit"; type: "f32" }, { name: "minVaultToDepositsRatio"; type: "f64" }, { name: "netBorrowLimitWindowSizeTs"; type: "u64" }, { name: "netBorrowLimitPerWindowQuote"; type: "i64" }, { name: "borrowWeightScaleStartQuote"; type: "f64" }, { name: "depositWeightScaleStartQuote"; type: "f64" }, { name: "reduceOnly"; type: "u8" }, { name: "tokenConditionalSwapTakerFeeRate"; type: "f32" }, { name: "tokenConditionalSwapMakerFeeRate"; type: "f32" }, { name: "flashLoanDepositFeeRate"; type: "f32" }]; name: "tokenRegister" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: false; isSigner: true; name: "admin" }, { isMut: false; isSigner: false; name: "mint" }, { isMut: true; isSigner: false; name: "bank"; pda: { seeds: [{ kind: "const"; type: "string"; value: "Bank" }, { kind: "account"; path: "group"; type: "publicKey" }, { kind: "arg"; path: "token_index"; type: "u16" }, { kind: "const"; type: "u32"; value: 0 }] } }, { isMut: true; isSigner: false; name: "vault"; pda: { seeds: [{ kind: "const"; type: "string"; value: "Vault" }, { kind: "account"; path: "group"; type: "publicKey" }, { kind: "arg"; path: "token_index"; type: "u16" }, { kind: "const"; type: "u32"; value: 0 }] } }, { isMut: true; isSigner: false; name: "mintInfo"; pda: { seeds: [{ kind: "const"; type: "string"; value: "MintInfo" }, { kind: "account"; path: "group"; type: "publicKey" }, { account: "Mint"; kind: "account"; path: "mint"; type: "publicKey" }] } }, { isMut: false; isSigner: false; name: "oracle" }, { isMut: true; isSigner: true; name: "payer" }, { isMut: false; isSigner: false; name: "tokenProgram" }, { isMut: false; isSigner: false; name: "systemProgram" }, { isMut: false; isSigner: false; name: "rent" }]; args: [{ name: "tokenIndex"; type: "u16" }, { name: "name"; type: "string" }]; name: "tokenRegisterTrustless" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: false; isSigner: true; name: "admin" }, { isMut: true; isSigner: false; name: "mintInfo"; relations: ["group"] }, { docs: ["The oracle account is optional and only used when reset_stable_price is set.", ""]; isMut: false; isSigner: false; name: "oracle" }]; args: [{ name: "oracleOpt"; type: { option: "publicKey" } }, { name: "oracleConfigOpt"; type: { option: { defined: "OracleConfigParams" } } }, { name: "groupInsuranceFundOpt"; type: { option: "bool" } }, { name: "interestRateParamsOpt"; type: { option: { defined: "InterestRateParams" } } }, { name: "loanFeeRateOpt"; type: { option: "f32" } }, { name: "loanOriginationFeeRateOpt"; type: { option: "f32" } }, { name: "maintAssetWeightOpt"; type: { option: "f32" } }, { name: "initAssetWeightOpt"; type: { option: "f32" } }, { name: "maintLiabWeightOpt"; type: { option: "f32" } }, { name: "initLiabWeightOpt"; type: { option: "f32" } }, { name: "liquidationFeeOpt"; type: { option: "f32" } }, { name: "stablePriceDelayIntervalSecondsOpt"; type: { option: "u32" } }, { name: "stablePriceDelayGrowthLimitOpt"; type: { option: "f32" } }, { name: "stablePriceGrowthLimitOpt"; type: { option: "f32" } }, { name: "minVaultToDepositsRatioOpt"; type: { option: "f64" } }, { name: "netBorrowLimitPerWindowQuoteOpt"; type: { option: "i64" } }, { name: "netBorrowLimitWindowSizeTsOpt"; type: { option: "u64" } }, { name: "borrowWeightScaleStartQuoteOpt"; type: { option: "f64" } }, { name: "depositWeightScaleStartQuoteOpt"; type: { option: "f64" } }, { name: "resetStablePrice"; type: "bool" }, { name: "resetNetBorrowLimit"; type: "bool" }, { name: "reduceOnlyOpt"; type: { option: "u8" } }, { name: "nameOpt"; type: { option: "string" } }, { name: "forceCloseOpt"; type: { option: "bool" } }, { name: "tokenConditionalSwapTakerFeeRateOpt"; type: { option: "f32" } }, { name: "tokenConditionalSwapMakerFeeRateOpt"; type: { option: "f32" } }, { name: "flashLoanDepositFeeRateOpt"; type: { option: "f32" } }]; name: "tokenEdit" }, { accounts: [{ isMut: false; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: false; isSigner: true; name: "admin" }, { isMut: false; isSigner: false; name: "mint" }, { isMut: false; isSigner: false; name: "existingBank"; relations: ["group", "mint"] }, { isMut: true; isSigner: false; name: "bank"; pda: { seeds: [{ kind: "const"; type: "string"; value: "Bank" }, { kind: "account"; path: "group"; type: "publicKey" }, { kind: "arg"; path: "token_index"; type: "u16" }, { kind: "arg"; path: "bank_num"; type: "u32" }] } }, { isMut: true; isSigner: false; name: "vault"; pda: { seeds: [{ kind: "const"; type: "string"; value: "Vault" }, { kind: "account"; path: "group"; type: "publicKey" }, { kind: "arg"; path: "token_index"; type: "u16" }, { kind: "arg"; path: "bank_num"; type: "u32" }] } }, { isMut: true; isSigner: false; name: "mintInfo"; relations: ["group", "mint"] }, { isMut: true; isSigner: true; name: "payer" }, { isMut: false; isSigner: false; name: "tokenProgram" }, { isMut: false; isSigner: false; name: "systemProgram" }, { isMut: false; isSigner: false; name: "rent" }]; args: [{ name: "tokenIndex"; type: "u16" }, { name: "bankNum"; type: "u32" }]; name: "tokenAddBank" }, { accounts: [{ isMut: false; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: false; isSigner: true; name: "admin" }, { isMut: true; isSigner: false; name: "mintInfo"; relations: ["group"] }, { isMut: true; isSigner: false; name: "dustVault" }, { isMut: true; isSigner: false; name: "solDestination" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: []; name: "tokenDeregister" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: false; isSigner: false; name: "mintInfo"; relations: ["oracle", "group"] }, { isMut: false; isSigner: false; name: "oracle" }, { isMut: false; isSigner: false; name: "instructions" }]; args: []; name: "tokenUpdateIndexAndRate" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; pda: { seeds: [{ kind: "const"; type: "string"; value: "MangoAccount" }, { kind: "account"; path: "group"; type: "publicKey" }, { kind: "account"; path: "owner"; type: "publicKey" }, { kind: "arg"; path: "account_num"; type: "u32" }] } }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: true; name: "payer" }, { isMut: false; isSigner: false; name: "systemProgram" }]; args: [{ name: "accountNum"; type: "u32" }, { name: "tokenCount"; type: "u8" }, { name: "serum3Count"; type: "u8" }, { name: "perpCount"; type: "u8" }, { name: "perpOoCount"; type: "u8" }, { name: "name"; type: "string" }]; name: "accountCreate" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; pda: { seeds: [{ kind: "const"; type: "string"; value: "MangoAccount" }, { kind: "account"; path: "group"; type: "publicKey" }, { kind: "account"; path: "owner"; type: "publicKey" }, { kind: "arg"; path: "account_num"; type: "u32" }] } }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: true; name: "payer" }, { isMut: false; isSigner: false; name: "systemProgram" }]; args: [{ name: "accountNum"; type: "u32" }, { name: "tokenCount"; type: "u8" }, { name: "serum3Count"; type: "u8" }, { name: "perpCount"; type: "u8" }, { name: "perpOoCount"; type: "u8" }, { name: "tokenConditionalSwapCount"; type: "u8" }, { name: "name"; type: "string" }]; name: "accountCreateV2" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group", "owner"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: true; name: "payer" }, { isMut: false; isSigner: false; name: "systemProgram" }]; args: [{ name: "tokenCount"; type: "u8" }, { name: "serum3Count"; type: "u8" }, { name: "perpCount"; type: "u8" }, { name: "perpOoCount"; type: "u8" }]; name: "accountExpand" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group", "owner"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: true; name: "payer" }, { isMut: false; isSigner: false; name: "systemProgram" }]; args: [{ name: "tokenCount"; type: "u8" }, { name: "serum3Count"; type: "u8" }, { name: "perpCount"; type: "u8" }, { name: "perpOoCount"; type: "u8" }, { name: "tokenConditionalSwapCount"; type: "u8" }]; name: "accountExpandV2" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: true; isSigner: true; name: "payer" }, { isMut: false; isSigner: false; name: "systemProgram" }]; args: []; name: "accountSizeMigration" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group", "owner"] }, { isMut: false; isSigner: true; name: "owner" }]; args: [{ name: "nameOpt"; type: { option: "string" } }, { name: "delegateOpt"; type: { option: "publicKey" } }, { name: "temporaryDelegateOpt"; type: { option: "publicKey" } }, { name: "temporaryDelegateExpiryOpt"; type: { option: "u64" } }]; name: "accountEdit" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "admin" }]; args: [{ name: "freeze"; type: "bool" }]; name: "accountToggleFreeze" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group", "owner"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: false; name: "solDestination" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: [{ name: "forceClose"; type: "bool" }]; name: "accountClose" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: false; name: "daoAccount"; relations: ["group"] }, { isMut: true; isSigner: false; name: "mngoBank"; relations: ["group"] }, { isMut: false; isSigner: false; name: "mngoOracle" }, { isMut: true; isSigner: false; name: "feesBank"; relations: ["group"] }, { isMut: false; isSigner: false; name: "feesOracle" }]; args: [{ name: "maxBuybackUsd"; type: "u64" }]; name: "accountBuybackFeesWithMngo" }, { accounts: [{ isMut: false; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: true; isSigner: false; name: "oracle"; pda: { seeds: [{ kind: "const"; type: "string"; value: "StubOracle" }, { kind: "account"; path: "group"; type: "publicKey" }, { account: "Mint"; kind: "account"; path: "mint"; type: "publicKey" }] } }, { isMut: false; isSigner: true; name: "admin" }, { isMut: false; isSigner: false; name: "mint" }, { isMut: true; isSigner: true; name: "payer" }, { isMut: false; isSigner: false; name: "systemProgram" }]; args: [{ name: "price"; type: { defined: "I80F48" } }]; name: "stubOracleCreate" }, { accounts: [{ isMut: false; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: false; isSigner: true; name: "admin" }, { isMut: true; isSigner: false; name: "oracle"; relations: ["group"] }, { isMut: true; isSigner: false; name: "solDestination" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: []; name: "stubOracleClose" }, { accounts: [{ isMut: false; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: false; isSigner: true; name: "admin" }, { isMut: true; isSigner: false; name: "oracle"; relations: ["group"] }]; args: [{ name: "price"; type: { defined: "I80F48" } }]; name: "stubOracleSet" }, { accounts: [{ isMut: false; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: false; isSigner: true; name: "admin" }, { isMut: true; isSigner: false; name: "oracle"; relations: ["group"] }]; args: [{ name: "price"; type: { defined: "I80F48" } }, { name: "lastUpdateSlot"; type: "u64" }, { name: "deviation"; type: { defined: "I80F48" } }]; name: "stubOracleSetTest" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group", "owner"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: false; name: "bank"; relations: ["group", "vault", "oracle"] }, { isMut: true; isSigner: false; name: "vault" }, { isMut: false; isSigner: false; name: "oracle" }, { isMut: true; isSigner: false; name: "tokenAccount" }, { isMut: false; isSigner: true; name: "tokenAuthority" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: [{ name: "amount"; type: "u64" }, { name: "reduceOnly"; type: "bool" }]; name: "tokenDeposit" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: true; isSigner: false; name: "bank"; relations: ["group", "vault", "oracle"] }, { isMut: true; isSigner: false; name: "vault" }, { isMut: false; isSigner: false; name: "oracle" }, { isMut: true; isSigner: false; name: "tokenAccount" }, { isMut: false; isSigner: true; name: "tokenAuthority" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: [{ name: "amount"; type: "u64" }, { name: "reduceOnly"; type: "bool" }]; name: "tokenDepositIntoExisting" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group", "owner"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: false; name: "bank"; relations: ["group", "vault", "oracle"] }, { isMut: true; isSigner: false; name: "vault" }, { isMut: false; isSigner: false; name: "oracle" }, { isMut: true; isSigner: false; name: "tokenAccount" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: [{ name: "amount"; type: "u64" }, { name: "allowBorrow"; type: "bool" }]; name: "tokenWithdraw" }, { accounts: [{ isMut: false; isSigner: false; name: "account" }, { isMut: false; isSigner: true; name: "owner" }, { isMut: false; isSigner: false; name: "tokenProgram" }, { docs: ["Instructions Sysvar for instruction introspection"]; isMut: false; isSigner: false; name: "instructions" }]; args: [{ name: "loanAmounts"; type: { vec: "u64" } }]; name: "flashLoanBegin" }, { accounts: [{ isMut: true; isSigner: false; name: "account" }, { isMut: false; isSigner: true; name: "owner" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: [{ name: "flashLoanType"; type: { defined: "FlashLoanType" } }]; name: "flashLoanEnd" }, { accounts: [{ isMut: true; isSigner: false; name: "account" }, { isMut: false; isSigner: true; name: "owner" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: [{ name: "numLoans"; type: "u8" }, { name: "flashLoanType"; type: { defined: "FlashLoanType" } }]; name: "flashLoanEndV2" }, { accounts: [{ docs: ["Instructions Sysvar for instruction introspection"]; isMut: false; isSigner: false; name: "instructions" }, { isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }]; args: []; name: "healthRegionBegin" }, { accounts: [{ isMut: true; isSigner: false; name: "account" }]; args: []; name: "healthRegionEnd" }, { accounts: [{ isMut: true; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: false; isSigner: true; name: "admin" }, { isMut: false; isSigner: false; name: "serumProgram" }, { isMut: false; isSigner: false; name: "serumMarketExternal" }, { isMut: true; isSigner: false; name: "serumMarket"; pda: { seeds: [{ kind: "const"; type: "string"; value: "Serum3Market" }, { kind: "account"; path: "group"; type: "publicKey" }, { kind: "account"; path: "serum_market_external"; type: "publicKey" }] } }, { isMut: true; isSigner: false; name: "indexReservation"; pda: { seeds: [{ kind: "const"; type: "string"; value: "Serum3Index" }, { kind: "account"; path: "group"; type: "publicKey" }, { kind: "arg"; path: "market_index"; type: "u16" }] } }, { isMut: false; isSigner: false; name: "quoteBank"; relations: ["group"] }, { isMut: false; isSigner: false; name: "baseBank"; relations: ["group"] }, { isMut: true; isSigner: true; name: "payer" }, { isMut: false; isSigner: false; name: "systemProgram" }]; args: [{ name: "marketIndex"; type: "u16" }, { name: "name"; type: "string" }]; docs: ["", "Serum", ""]; name: "serum3RegisterMarket" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: false; isSigner: true; name: "admin" }, { isMut: true; isSigner: false; name: "market"; relations: ["group"] }]; args: [{ name: "reduceOnlyOpt"; type: { option: "bool" } }, { name: "forceCloseOpt"; type: { option: "bool" } }, { name: "nameOpt"; type: { option: "string" } }]; name: "serum3EditMarket" }, { accounts: [{ isMut: true; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: false; isSigner: true; name: "admin" }, { isMut: true; isSigner: false; name: "serumMarket"; relations: ["group"] }, { isMut: true; isSigner: false; name: "indexReservation"; relations: ["group"] }, { isMut: true; isSigner: false; name: "solDestination" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: []; name: "serum3DeregisterMarket" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: false; isSigner: false; name: "serumMarket"; relations: ["group", "serum_program", "serum_market_external"] }, { isMut: false; isSigner: false; name: "serumProgram" }, { isMut: false; isSigner: false; name: "serumMarketExternal" }, { isMut: true; isSigner: false; name: "openOrders"; pda: { seeds: [{ kind: "const"; type: "string"; value: "Serum3OO" }, { kind: "account"; path: "account"; type: "publicKey" }, { kind: "account"; path: "serum_market"; type: "publicKey" }] } }, { isMut: true; isSigner: true; name: "payer" }, { isMut: false; isSigner: false; name: "systemProgram" }, { isMut: false; isSigner: false; name: "rent" }]; args: []; name: "serum3CreateOpenOrders" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: false; isSigner: false; name: "serumMarket"; relations: ["group", "serum_program", "serum_market_external"] }, { isMut: false; isSigner: false; name: "serumProgram" }, { isMut: false; isSigner: false; name: "serumMarketExternal" }, { isMut: true; isSigner: false; name: "openOrders" }, { isMut: true; isSigner: false; name: "solDestination" }]; args: []; name: "serum3CloseOpenOrders" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: false; name: "openOrders" }, { isMut: false; isSigner: false; name: "serumMarket"; relations: ["group", "serum_program", "serum_market_external"] }, { isMut: false; isSigner: false; name: "serumProgram" }, { isMut: true; isSigner: false; name: "serumMarketExternal" }, { isMut: true; isSigner: false; name: "marketBids" }, { isMut: true; isSigner: false; name: "marketAsks" }, { isMut: true; isSigner: false; name: "marketEventQueue" }, { isMut: true; isSigner: false; name: "marketRequestQueue" }, { isMut: true; isSigner: false; name: "marketBaseVault" }, { isMut: true; isSigner: false; name: "marketQuoteVault" }, { docs: ["needed for the automatic settle_funds call"]; isMut: false; isSigner: false; name: "marketVaultSigner" }, { docs: ["The bank that pays for the order, if necessary"]; isMut: true; isSigner: false; name: "payerBank"; relations: ["group"] }, { docs: ["The bank vault that pays for the order, if necessary"]; isMut: true; isSigner: false; name: "payerVault" }, { isMut: false; isSigner: false; name: "payerOracle" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: [{ name: "side"; type: { defined: "Serum3Side" } }, { name: "limitPrice"; type: "u64" }, { name: "maxBaseQty"; type: "u64" }, { name: "maxNativeQuoteQtyIncludingFees"; type: "u64" }, { name: "selfTradeBehavior"; type: { defined: "Serum3SelfTradeBehavior" } }, { name: "orderType"; type: { defined: "Serum3OrderType" } }, { name: "clientOrderId"; type: "u64" }, { name: "limit"; type: "u16" }]; name: "serum3PlaceOrder" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: false; name: "openOrders" }, { isMut: false; isSigner: false; name: "serumMarket"; relations: ["group", "serum_program", "serum_market_external"] }, { isMut: false; isSigner: false; name: "serumProgram" }, { isMut: true; isSigner: false; name: "serumMarketExternal" }, { isMut: true; isSigner: false; name: "marketBids" }, { isMut: true; isSigner: false; name: "marketAsks" }, { isMut: true; isSigner: false; name: "marketEventQueue" }]; args: [{ name: "side"; type: { defined: "Serum3Side" } }, { name: "orderId"; type: "u128" }]; name: "serum3CancelOrder" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: false; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: false; name: "openOrders" }, { isMut: false; isSigner: false; name: "serumMarket"; relations: ["group", "serum_program", "serum_market_external"] }, { isMut: false; isSigner: false; name: "serumProgram" }, { isMut: true; isSigner: false; name: "serumMarketExternal" }, { isMut: true; isSigner: false; name: "marketBids" }, { isMut: true; isSigner: false; name: "marketAsks" }, { isMut: true; isSigner: false; name: "marketEventQueue" }]; args: [{ name: "limit"; type: "u8" }]; name: "serum3CancelAllOrders" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: false; name: "openOrders" }, { isMut: false; isSigner: false; name: "serumMarket"; relations: ["group", "serum_program", "serum_market_external"] }, { isMut: false; isSigner: false; name: "serumProgram" }, { isMut: true; isSigner: false; name: "serumMarketExternal" }, { isMut: true; isSigner: false; name: "marketBaseVault" }, { isMut: true; isSigner: false; name: "marketQuoteVault" }, { docs: ["needed for the automatic settle_funds call"]; isMut: false; isSigner: false; name: "marketVaultSigner" }, { isMut: true; isSigner: false; name: "quoteBank"; relations: ["group"] }, { isMut: true; isSigner: false; name: "quoteVault" }, { isMut: true; isSigner: false; name: "baseBank"; relations: ["group"] }, { isMut: true; isSigner: false; name: "baseVault" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: []; docs: ["Deprecated instruction that used to settles all free funds from the OpenOrders account", "into the MangoAccount.", "", "Any serum \"referrer rebates\" (ui fees) are considered Mango fees."]; name: "serum3SettleFunds" }, { accounts: [{ accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: false; name: "openOrders" }, { isMut: false; isSigner: false; name: "serumMarket"; relations: ["group", "serum_program", "serum_market_external"] }, { isMut: false; isSigner: false; name: "serumProgram" }, { isMut: true; isSigner: false; name: "serumMarketExternal" }, { isMut: true; isSigner: false; name: "marketBaseVault" }, { isMut: true; isSigner: false; name: "marketQuoteVault" }, { docs: ["needed for the automatic settle_funds call"]; isMut: false; isSigner: false; name: "marketVaultSigner" }, { isMut: true; isSigner: false; name: "quoteBank"; relations: ["group"] }, { isMut: true; isSigner: false; name: "quoteVault" }, { isMut: true; isSigner: false; name: "baseBank"; relations: ["group"] }, { isMut: true; isSigner: false; name: "baseVault" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; name: "v1" }, { accounts: [{ isMut: false; isSigner: false; name: "quoteOracle" }, { isMut: false; isSigner: false; name: "baseOracle" }]; name: "v2" }]; args: [{ name: "feesToDao"; type: "bool" }]; docs: ["Like Serum3SettleFunds, but `fees_to_dao` determines if referrer rebates are considered fees", "or are credited to the MangoAccount."]; name: "serum3SettleFundsV2" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: true; isSigner: false; name: "openOrders" }, { isMut: false; isSigner: false; name: "serumMarket"; relations: ["group", "serum_program", "serum_market_external"] }, { isMut: false; isSigner: false; name: "serumProgram" }, { isMut: true; isSigner: false; name: "serumMarketExternal" }, { isMut: true; isSigner: false; name: "marketBids" }, { isMut: true; isSigner: false; name: "marketAsks" }, { isMut: true; isSigner: false; name: "marketEventQueue" }, { isMut: true; isSigner: false; name: "marketBaseVault" }, { isMut: true; isSigner: false; name: "marketQuoteVault" }, { isMut: false; isSigner: false; name: "marketVaultSigner" }, { isMut: true; isSigner: false; name: "quoteBank"; relations: ["group"] }, { isMut: true; isSigner: false; name: "quoteVault" }, { isMut: true; isSigner: false; name: "baseBank"; relations: ["group"] }, { isMut: true; isSigner: false; name: "baseVault" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: [{ name: "limit"; type: "u8" }]; name: "serum3LiqForceCancelOrders" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "liqor"; relations: ["group"] }, { isMut: false; isSigner: true; name: "liqorOwner" }, { isMut: true; isSigner: false; name: "liqee"; relations: ["group"] }]; args: [{ name: "assetTokenIndex"; type: "u16" }, { name: "liabTokenIndex"; type: "u16" }, { name: "maxLiabTransfer"; type: { defined: "I80F48" } }]; name: "liqTokenWithToken" }, { accounts: [{ isMut: false; isSigner: false; name: "group"; relations: ["insurance_vault"] }, { isMut: true; isSigner: false; name: "liqor"; relations: ["group"] }, { isMut: false; isSigner: true; name: "liqorOwner" }, { isMut: true; isSigner: false; name: "liqee"; relations: ["group"] }, { isMut: false; isSigner: false; name: "liabMintInfo"; relations: ["group"] }, { isMut: true; isSigner: false; name: "quoteVault" }, { isMut: true; isSigner: false; name: "insuranceVault" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: [{ name: "maxLiabTransfer"; type: { defined: "I80F48" } }]; name: "liqTokenBankruptcy" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "liqor"; relations: ["group"] }, { isMut: false; isSigner: true; name: "liqorOwner" }, { isMut: true; isSigner: false; name: "liqee"; relations: ["group"] }]; args: [{ name: "assetTokenIndex"; type: "u16" }, { name: "liabTokenIndex"; type: "u16" }, { name: "maxLiabTransfer"; type: { defined: "I80F48" } }]; name: "tokenLiqWithToken" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "liqor"; relations: ["group"] }, { isMut: false; isSigner: true; name: "liqorOwner" }, { isMut: true; isSigner: false; name: "liqee"; relations: ["group"] }]; args: [{ name: "assetTokenIndex"; type: "u16" }, { name: "liabTokenIndex"; type: "u16" }, { name: "maxLiabTransfer"; type: "u64" }]; name: "tokenForceCloseBorrowsWithToken" }, { accounts: [{ isMut: false; isSigner: false; name: "group"; relations: ["insurance_vault"] }, { isMut: true; isSigner: false; name: "liqor"; relations: ["group"] }, { isMut: false; isSigner: true; name: "liqorOwner" }, { isMut: true; isSigner: false; name: "liqee"; relations: ["group"] }, { isMut: false; isSigner: false; name: "liabMintInfo"; relations: ["group"] }, { isMut: true; isSigner: false; name: "quoteVault" }, { isMut: true; isSigner: false; name: "insuranceVault" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: [{ name: "maxLiabTransfer"; type: { defined: "I80F48" } }]; name: "tokenLiqBankruptcy" }, { accounts: [{ isMut: false; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: false; isSigner: true; name: "admin" }, { isMut: false; isSigner: false; name: "oracle" }, { isMut: true; isSigner: false; name: "perpMarket"; pda: { seeds: [{ kind: "const"; type: "string"; value: "PerpMarket" }, { kind: "account"; path: "group"; type: "publicKey" }, { kind: "arg"; path: "perp_market_index"; type: "u16" }] } }, { docs: ["Accounts are initialised by client,", "anchor discriminator is set first when ix exits,"]; isMut: true; isSigner: false; name: "bids" }, { isMut: true; isSigner: false; name: "asks" }, { isMut: true; isSigner: false; name: "eventQueue" }, { isMut: true; isSigner: true; name: "payer" }, { isMut: false; isSigner: false; name: "systemProgram" }]; args: [{ name: "perpMarketIndex"; type: "u16" }, { name: "name"; type: "string" }, { name: "oracleConfig"; type: { defined: "OracleConfigParams" } }, { name: "baseDecimals"; type: "u8" }, { name: "quoteLotSize"; type: "i64" }, { name: "baseLotSize"; type: "i64" }, { name: "maintBaseAssetWeight"; type: "f32" }, { name: "initBaseAssetWeight"; type: "f32" }, { name: "maintBaseLiabWeight"; type: "f32" }, { name: "initBaseLiabWeight"; type: "f32" }, { name: "maintOverallAssetWeight"; type: "f32" }, { name: "initOverallAssetWeight"; type: "f32" }, { name: "baseLiquidationFee"; type: "f32" }, { name: "makerFee"; type: "f32" }, { name: "takerFee"; type: "f32" }, { name: "minFunding"; type: "f32" }, { name: "maxFunding"; type: "f32" }, { name: "impactQuantity"; type: "i64" }, { name: "groupInsuranceFund"; type: "bool" }, { name: "feePenalty"; type: "f32" }, { name: "settleFeeFlat"; type: "f32" }, { name: "settleFeeAmountThreshold"; type: "f32" }, { name: "settleFeeFractionLowHealth"; type: "f32" }, { name: "settleTokenIndex"; type: "u16" }, { name: "settlePnlLimitFactor"; type: "f32" }, { name: "settlePnlLimitWindowSizeTs"; type: "u64" }, { name: "positivePnlLiquidationFee"; type: "f32" }]; docs: ["", "Perps", ""]; name: "perpCreateMarket" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: false; isSigner: true; name: "admin" }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group"] }, { docs: ["The oracle account is optional and only used when reset_stable_price is set.", ""]; isMut: false; isSigner: false; name: "oracle" }]; args: [{ name: "oracleOpt"; type: { option: "publicKey" } }, { name: "oracleConfigOpt"; type: { option: { defined: "OracleConfigParams" } } }, { name: "baseDecimalsOpt"; type: { option: "u8" } }, { name: "maintBaseAssetWeightOpt"; type: { option: "f32" } }, { name: "initBaseAssetWeightOpt"; type: { option: "f32" } }, { name: "maintBaseLiabWeightOpt"; type: { option: "f32" } }, { name: "initBaseLiabWeightOpt"; type: { option: "f32" } }, { name: "maintOverallAssetWeightOpt"; type: { option: "f32" } }, { name: "initOverallAssetWeightOpt"; type: { option: "f32" } }, { name: "baseLiquidationFeeOpt"; type: { option: "f32" } }, { name: "makerFeeOpt"; type: { option: "f32" } }, { name: "takerFeeOpt"; type: { option: "f32" } }, { name: "minFundingOpt"; type: { option: "f32" } }, { name: "maxFundingOpt"; type: { option: "f32" } }, { name: "impactQuantityOpt"; type: { option: "i64" } }, { name: "groupInsuranceFundOpt"; type: { option: "bool" } }, { name: "feePenaltyOpt"; type: { option: "f32" } }, { name: "settleFeeFlatOpt"; type: { option: "f32" } }, { name: "settleFeeAmountThresholdOpt"; type: { option: "f32" } }, { name: "settleFeeFractionLowHealthOpt"; type: { option: "f32" } }, { name: "stablePriceDelayIntervalSecondsOpt"; type: { option: "u32" } }, { name: "stablePriceDelayGrowthLimitOpt"; type: { option: "f32" } }, { name: "stablePriceGrowthLimitOpt"; type: { option: "f32" } }, { name: "settlePnlLimitFactorOpt"; type: { option: "f32" } }, { name: "settlePnlLimitWindowSizeTsOpt"; type: { option: "u64" } }, { name: "reduceOnlyOpt"; type: { option: "bool" } }, { name: "resetStablePrice"; type: "bool" }, { name: "positivePnlLiquidationFeeOpt"; type: { option: "f32" } }, { name: "nameOpt"; type: { option: "string" } }, { name: "forceCloseOpt"; type: { option: "bool" } }]; name: "perpEditMarket" }, { accounts: [{ isMut: false; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: false; isSigner: true; name: "admin" }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group", "bids", "asks", "event_queue"] }, { isMut: true; isSigner: false; name: "bids" }, { isMut: true; isSigner: false; name: "asks" }, { isMut: true; isSigner: false; name: "eventQueue" }, { isMut: true; isSigner: false; name: "solDestination" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: []; name: "perpCloseMarket" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: false; isSigner: false; name: "perpMarket"; relations: ["group"] }]; args: []; name: "perpDeactivatePosition" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group", "bids", "asks", "event_queue", "oracle"] }, { isMut: true; isSigner: false; name: "bids" }, { isMut: true; isSigner: false; name: "asks" }, { isMut: true; isSigner: false; name: "eventQueue" }, { isMut: false; isSigner: false; name: "oracle" }]; args: [{ name: "side"; type: { defined: "Side" } }, { name: "priceLots"; type: "i64" }, { name: "maxBaseLots"; type: "i64" }, { name: "maxQuoteLots"; type: "i64" }, { name: "clientOrderId"; type: "u64" }, { name: "orderType"; type: { defined: "PlaceOrderType" } }, { name: "reduceOnly"; type: "bool" }, { name: "expiryTimestamp"; type: "u64" }, { name: "limit"; type: "u8" }]; name: "perpPlaceOrder"; returns: { option: "u128" } }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group", "bids", "asks", "event_queue", "oracle"] }, { isMut: true; isSigner: false; name: "bids" }, { isMut: true; isSigner: false; name: "asks" }, { isMut: true; isSigner: false; name: "eventQueue" }, { isMut: false; isSigner: false; name: "oracle" }]; args: [{ name: "side"; type: { defined: "Side" } }, { name: "priceLots"; type: "i64" }, { name: "maxBaseLots"; type: "i64" }, { name: "maxQuoteLots"; type: "i64" }, { name: "clientOrderId"; type: "u64" }, { name: "orderType"; type: { defined: "PlaceOrderType" } }, { name: "selfTradeBehavior"; type: { defined: "SelfTradeBehavior" } }, { name: "reduceOnly"; type: "bool" }, { name: "expiryTimestamp"; type: "u64" }, { name: "limit"; type: "u8" }]; name: "perpPlaceOrderV2"; returns: { option: "u128" } }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group", "bids", "asks", "event_queue", "oracle"] }, { isMut: true; isSigner: false; name: "bids" }, { isMut: true; isSigner: false; name: "asks" }, { isMut: true; isSigner: false; name: "eventQueue" }, { isMut: false; isSigner: false; name: "oracle" }]; args: [{ name: "side"; type: { defined: "Side" } }, { name: "priceOffsetLots"; type: "i64" }, { name: "pegLimit"; type: "i64" }, { name: "maxBaseLots"; type: "i64" }, { name: "maxQuoteLots"; type: "i64" }, { name: "clientOrderId"; type: "u64" }, { name: "orderType"; type: { defined: "PlaceOrderType" } }, { name: "reduceOnly"; type: "bool" }, { name: "expiryTimestamp"; type: "u64" }, { name: "limit"; type: "u8" }, { name: "maxOracleStalenessSlots"; type: "i32" }]; name: "perpPlaceOrderPegged"; returns: { option: "u128" } }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group", "bids", "asks", "event_queue", "oracle"] }, { isMut: true; isSigner: false; name: "bids" }, { isMut: true; isSigner: false; name: "asks" }, { isMut: true; isSigner: false; name: "eventQueue" }, { isMut: false; isSigner: false; name: "oracle" }]; args: [{ name: "side"; type: { defined: "Side" } }, { name: "priceOffsetLots"; type: "i64" }, { name: "pegLimit"; type: "i64" }, { name: "maxBaseLots"; type: "i64" }, { name: "maxQuoteLots"; type: "i64" }, { name: "clientOrderId"; type: "u64" }, { name: "orderType"; type: { defined: "PlaceOrderType" } }, { name: "selfTradeBehavior"; type: { defined: "SelfTradeBehavior" } }, { name: "reduceOnly"; type: "bool" }, { name: "expiryTimestamp"; type: "u64" }, { name: "limit"; type: "u8" }, { name: "maxOracleStalenessSlots"; type: "i32" }]; name: "perpPlaceOrderPeggedV2"; returns: { option: "u128" } }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group", "bids", "asks"] }, { isMut: true; isSigner: false; name: "bids" }, { isMut: true; isSigner: false; name: "asks" }]; args: [{ name: "orderId"; type: "u128" }]; name: "perpCancelOrder" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group", "bids", "asks"] }, { isMut: true; isSigner: false; name: "bids" }, { isMut: true; isSigner: false; name: "asks" }]; args: [{ name: "clientOrderId"; type: "u64" }]; name: "perpCancelOrderByClientOrderId" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group", "bids", "asks"] }, { isMut: true; isSigner: false; name: "bids" }, { isMut: true; isSigner: false; name: "asks" }]; args: [{ name: "limit"; type: "u8" }]; name: "perpCancelAllOrders" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "owner" }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group", "bids", "asks"] }, { isMut: true; isSigner: false; name: "bids" }, { isMut: true; isSigner: false; name: "asks" }]; args: [{ name: "sideOption"; type: { option: { defined: "Side" } } }, { name: "limit"; type: "u8" }]; name: "perpCancelAllOrdersBySide" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group", "event_queue"] }, { isMut: true; isSigner: false; name: "eventQueue" }]; args: [{ name: "limit"; type: "u64" }]; name: "perpConsumeEvents" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group", "bids", "asks", "oracle"] }, { isMut: true; isSigner: false; name: "bids" }, { isMut: true; isSigner: false; name: "asks" }, { isMut: false; isSigner: false; name: "oracle" }]; args: []; name: "perpUpdateFunding" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "settler"; relations: ["group"] }, { isMut: false; isSigner: true; name: "settlerOwner" }, { isMut: false; isSigner: false; name: "perpMarket"; relations: ["group", "oracle"] }, { isMut: true; isSigner: false; name: "accountA"; relations: ["group"] }, { isMut: true; isSigner: false; name: "accountB"; relations: ["group"] }, { isMut: false; isSigner: false; name: "oracle" }, { isMut: true; isSigner: false; name: "settleBank"; relations: ["group"] }, { isMut: false; isSigner: false; name: "settleOracle" }]; args: []; name: "perpSettlePnl" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group", "oracle"] }, { isMut: true; isSigner: false; name: "accountA"; relations: ["group"] }, { isMut: true; isSigner: false; name: "accountB"; relations: ["group"] }, { isMut: false; isSigner: false; name: "oracle" }]; args: []; name: "perpForceClosePosition" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group", "oracle"] }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: false; name: "oracle" }, { isMut: true; isSigner: false; name: "settleBank"; relations: ["group"] }, { isMut: false; isSigner: false; name: "settleOracle" }]; args: [{ name: "maxSettleAmount"; type: "u64" }]; name: "perpSettleFees" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group", "oracle"] }, { isMut: false; isSigner: false; name: "oracle" }, { isMut: true; isSigner: false; name: "liqor"; relations: ["group"] }, { isMut: false; isSigner: true; name: "liqorOwner" }, { isMut: true; isSigner: false; name: "liqee"; relations: ["group"] }, { isMut: true; isSigner: false; name: "settleBank"; relations: ["group"] }, { isMut: true; isSigner: false; name: "settleVault" }, { isMut: false; isSigner: false; name: "settleOracle" }]; args: [{ name: "maxBaseTransfer"; type: "i64" }, { name: "maxPnlTransfer"; type: "u64" }]; name: "perpLiqBaseOrPositivePnl" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group", "bids", "asks"] }, { isMut: true; isSigner: false; name: "bids" }, { isMut: true; isSigner: false; name: "asks" }]; args: [{ name: "limit"; type: "u8" }]; name: "perpLiqForceCancelOrders" }, { accounts: [{ isMut: false; isSigner: false; name: "group"; relations: ["insurance_vault"] }, { isMut: true; isSigner: false; name: "liqor"; relations: ["group"] }, { isMut: false; isSigner: true; name: "liqorOwner" }, { isMut: true; isSigner: false; name: "liqee"; relations: ["group"] }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group", "oracle"] }, { isMut: false; isSigner: false; name: "oracle" }, { isMut: true; isSigner: false; name: "settleBank"; relations: ["group"] }, { isMut: true; isSigner: false; name: "settleVault" }, { isMut: false; isSigner: false; name: "settleOracle" }, { isMut: true; isSigner: false; name: "insuranceVault" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: [{ name: "maxLiabTransfer"; type: "u64" }]; name: "perpLiqNegativePnlOrBankruptcy" }, { accounts: [{ isMut: false; isSigner: false; name: "group"; relations: ["insurance_vault"] }, { isMut: true; isSigner: false; name: "liqor"; relations: ["group"] }, { isMut: false; isSigner: true; name: "liqorOwner" }, { isMut: true; isSigner: false; name: "liqee"; relations: ["group"] }, { isMut: true; isSigner: false; name: "perpMarket"; relations: ["group", "oracle"] }, { isMut: false; isSigner: false; name: "oracle" }, { isMut: true; isSigner: false; name: "settleBank"; relations: ["group"] }, { isMut: true; isSigner: false; name: "settleVault" }, { isMut: false; isSigner: false; name: "settleOracle" }, { isMut: true; isSigner: false; name: "insuranceVault" }, { isMut: true; isSigner: false; name: "insuranceBank"; relations: ["group"] }, { isMut: true; isSigner: false; name: "insuranceBankVault" }, { isMut: false; isSigner: false; name: "insuranceOracle" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: [{ name: "maxLiabTransfer"; type: "u64" }]; name: "perpLiqNegativePnlOrBankruptcyV2" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "authority" }, { isMut: false; isSigner: false; name: "buyBank"; relations: ["group"] }, { isMut: false; isSigner: false; name: "sellBank"; relations: ["group"] }]; args: [{ name: "maxBuy"; type: "u64" }, { name: "maxSell"; type: "u64" }, { name: "expiryTimestamp"; type: "u64" }, { name: "priceLowerLimit"; type: "f64" }, { name: "priceUpperLimit"; type: "f64" }, { name: "pricePremiumRate"; type: "f64" }, { name: "allowCreatingDeposits"; type: "bool" }, { name: "allowCreatingBorrows"; type: "bool" }]; name: "tokenConditionalSwapCreate" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "authority" }, { isMut: false; isSigner: false; name: "buyBank"; relations: ["group"] }, { isMut: false; isSigner: false; name: "sellBank"; relations: ["group"] }]; args: [{ name: "maxBuy"; type: "u64" }, { name: "maxSell"; type: "u64" }, { name: "expiryTimestamp"; type: "u64" }, { name: "priceLowerLimit"; type: "f64" }, { name: "priceUpperLimit"; type: "f64" }, { name: "pricePremiumRate"; type: "f64" }, { name: "allowCreatingDeposits"; type: "bool" }, { name: "allowCreatingBorrows"; type: "bool" }, { name: "displayPriceStyle"; type: { defined: "TokenConditionalSwapDisplayPriceStyle" } }, { name: "intention"; type: { defined: "TokenConditionalSwapIntention" } }]; name: "tokenConditionalSwapCreateV2" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "authority" }, { docs: ["The bank's token_index is checked at #1"]; isMut: true; isSigner: false; name: "buyBank"; relations: ["group"] }, { isMut: true; isSigner: false; name: "sellBank"; relations: ["group"] }]; args: [{ name: "tokenConditionalSwapIndex"; type: "u8" }, { name: "tokenConditionalSwapId"; type: "u64" }]; name: "tokenConditionalSwapCancel" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "liqee"; relations: ["group"] }, { isMut: true; isSigner: false; name: "liqor"; relations: ["group"] }, { isMut: false; isSigner: true; name: "liqorAuthority" }]; args: [{ name: "tokenConditionalSwapIndex"; type: "u8" }, { name: "tokenConditionalSwapId"; type: "u64" }, { name: "maxBuyTokenToLiqee"; type: "u64" }, { name: "maxSellTokenToLiqor"; type: "u64" }]; name: "tokenConditionalSwapTrigger" }, { accounts: [{ isMut: true; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: false; isSigner: true; name: "admin" }, { isMut: true; isSigner: false; name: "addressLookupTable" }]; args: [{ name: "index"; type: "u8" }]; name: "altSet" }, { accounts: [{ isMut: false; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: false; isSigner: true; name: "admin" }, { isMut: false; isSigner: true; name: "payer" }, { isMut: true; isSigner: false; name: "addressLookupTable" }]; args: [{ name: "index"; type: "u8" }, { name: "newAddresses"; type: { vec: "publicKey" } }]; name: "altExtend" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: false; isSigner: false; name: "account"; relations: ["group"] }]; args: []; docs: ["Warning, this instruction is for testing purposes only!"]; name: "computeAccountData" }, { accounts: [{ isMut: true; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: false; isSigner: true; name: "admin" }, { isMut: false; isSigner: false; name: "openbookV2Program" }, { isMut: false; isSigner: false; name: "openbookV2MarketExternal" }, { isMut: true; isSigner: false; name: "openbookV2Market"; pda: { seeds: [{ kind: "const"; type: "string"; value: "OpenbookV2Market" }, { kind: "account"; path: "group"; type: "publicKey" }, { kind: "account"; path: "openbook_v2_market_external"; type: "publicKey" }] } }, { isMut: true; isSigner: false; name: "indexReservation"; pda: { seeds: [{ kind: "const"; type: "string"; value: "OpenbookV2Index" }, { kind: "account"; path: "group"; type: "publicKey" }, { kind: "arg"; path: "market_index"; type: "u16" }] } }, { isMut: false; isSigner: false; name: "quoteBank"; relations: ["group"] }, { isMut: false; isSigner: false; name: "baseBank"; relations: ["group"] }, { isMut: true; isSigner: true; name: "payer" }, { isMut: false; isSigner: false; name: "systemProgram" }]; args: [{ name: "marketIndex"; type: "u16" }, { name: "name"; type: "string" }]; docs: ["", "OpenbookV2", ""]; name: "openbookV2RegisterMarket" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: false; isSigner: true; name: "admin" }, { isMut: true; isSigner: false; name: "market"; relations: ["group"] }]; args: [{ name: "reduceOnlyOpt"; type: { option: "bool" } }, { name: "forceCloseOpt"; type: { option: "bool" } }]; name: "openbookV2EditMarket" }, { accounts: [{ isMut: true; isSigner: false; name: "group"; relations: ["admin"] }, { isMut: false; isSigner: true; name: "admin" }, { isMut: true; isSigner: false; name: "openbookV2Market"; relations: ["group"] }, { isMut: true; isSigner: false; name: "indexReservation"; relations: ["group"] }, { isMut: true; isSigner: false; name: "solDestination" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: []; name: "openbookV2DeregisterMarket" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "authority" }, { isMut: false; isSigner: false; name: "openbookV2Market"; relations: ["group", "openbook_v2_program", "openbook_v2_market_external"] }, { isMut: false; isSigner: false; name: "openbookV2Program" }, { isMut: false; isSigner: false; name: "openbookV2MarketExternal" }, { isMut: true; isSigner: false; name: "openOrders"; pda: { programId: { kind: "account"; path: "openbook_v2_program"; type: "publicKey" }; seeds: [{ kind: "const"; type: "string"; value: "OpenOrders" }, { kind: "account"; path: "openbook_v2_market"; type: "publicKey" }, { kind: "account"; path: "openbook_v2_market_external"; type: "publicKey" }, { kind: "arg"; path: "account_num"; type: "u32" }] } }, { isMut: true; isSigner: true; name: "payer" }, { isMut: false; isSigner: false; name: "systemProgram" }, { isMut: false; isSigner: false; name: "rent" }]; args: [{ name: "accountNum"; type: "u32" }]; name: "openbookV2CreateOpenOrders" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "authority" }, { isMut: false; isSigner: false; name: "openbookV2Market"; relations: ["group", "openbook_v2_program", "openbook_v2_market_external"] }, { isMut: false; isSigner: false; name: "openbookV2Program" }, { isMut: false; isSigner: false; name: "openbookV2MarketExternal" }, { isMut: true; isSigner: false; name: "openOrders" }, { isMut: true; isSigner: false; name: "solDestination" }]; args: []; name: "openbookV2CloseOpenOrders" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "authority" }, { isMut: true; isSigner: false; name: "openOrders" }, { isMut: false; isSigner: false; name: "openbookV2Market" }, { isMut: false; isSigner: false; name: "openbookV2Program" }, { isMut: true; isSigner: false; name: "openbookV2MarketExternal"; relations: ["bids", "asks", "event_queue"] }, { isMut: true; isSigner: false; name: "bids" }, { isMut: true; isSigner: false; name: "asks" }, { isMut: true; isSigner: false; name: "eventQueue" }, { isMut: true; isSigner: false; name: "marketBaseVault" }, { isMut: true; isSigner: false; name: "marketQuoteVault" }, { isMut: false; isSigner: false; name: "marketVaultSigner" }, { docs: ["The bank that pays for the order, if necessary"]; isMut: true; isSigner: false; name: "payerBank"; relations: ["group"] }, { docs: ["The bank vault that pays for the order, if necessary"]; isMut: true; isSigner: false; name: "payerVault" }, { isMut: false; isSigner: false; name: "payerOracle" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: [{ name: "side"; type: "u8" }, { name: "limitPrice"; type: "u64" }, { name: "maxBaseQty"; type: "u64" }, { name: "maxNativeQuoteQtyIncludingFees"; type: "u64" }, { name: "selfTradeBehavior"; type: "u8" }, { name: "orderType"; type: "u8" }, { name: "clientOrderId"; type: "u64" }, { name: "limit"; type: "u16" }]; name: "openbookV2PlaceOrder" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "authority" }, { isMut: false; isSigner: false; name: "openbookV2Market"; relations: ["group", "openbook_v2_program", "openbook_v2_market_external"] }, { isMut: false; isSigner: false; name: "openbookV2Program" }, { isMut: true; isSigner: false; name: "openbookV2MarketExternal"; relations: ["bids", "asks", "event_queue"] }, { isMut: true; isSigner: false; name: "bids" }, { isMut: true; isSigner: false; name: "asks" }, { isMut: true; isSigner: false; name: "eventQueue" }, { isMut: true; isSigner: false; name: "marketRequestQueue" }, { isMut: true; isSigner: false; name: "marketBaseVault" }, { isMut: true; isSigner: false; name: "marketQuoteVault" }, { isMut: false; isSigner: false; name: "marketVaultSigner" }, { docs: ["The bank that pays for the order, if necessary"]; isMut: true; isSigner: false; name: "payerBank"; relations: ["group"] }, { docs: ["The bank vault that pays for the order, if necessary"]; isMut: true; isSigner: false; name: "payerVault" }, { isMut: false; isSigner: false; name: "payerOracle" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: [{ name: "side"; type: "u8" }, { name: "limitPrice"; type: "u64" }, { name: "maxBaseQty"; type: "u64" }, { name: "maxNativeQuoteQtyIncludingFees"; type: "u64" }, { name: "selfTradeBehavior"; type: "u8" }, { name: "clientOrderId"; type: "u64" }, { name: "limit"; type: "u16" }]; name: "openbookV2PlaceTakerOrder" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "authority" }, { isMut: true; isSigner: false; name: "openOrders" }, { isMut: false; isSigner: false; name: "openbookV2Market"; relations: ["group", "openbook_v2_program", "openbook_v2_market_external"] }, { isMut: false; isSigner: false; name: "openbookV2Program" }, { isMut: false; isSigner: false; name: "openbookV2MarketExternal"; relations: ["bids", "asks"] }, { isMut: true; isSigner: false; name: "bids" }, { isMut: true; isSigner: false; name: "asks" }]; args: [{ name: "side"; type: "u8" }, { name: "orderId"; type: "u128" }]; name: "openbookV2CancelOrder" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "authority" }, { isMut: true; isSigner: false; name: "openOrders" }, { isMut: false; isSigner: false; name: "openbookV2Market"; relations: ["group", "openbook_v2_program", "openbook_v2_market_external"] }, { isMut: false; isSigner: false; name: "openbookV2Program" }, { isMut: true; isSigner: false; name: "openbookV2MarketExternal" }, { isMut: true; isSigner: false; name: "marketBaseVault" }, { isMut: true; isSigner: false; name: "marketQuoteVault" }, { docs: ["needed for the automatic settle_funds call"]; isMut: false; isSigner: false; name: "marketVaultSigner" }, { isMut: true; isSigner: false; name: "quoteBank"; relations: ["group"] }, { isMut: true; isSigner: false; name: "quoteVault" }, { isMut: true; isSigner: false; name: "baseBank"; relations: ["group"] }, { isMut: true; isSigner: false; name: "baseVault" }, { isMut: false; isSigner: false; name: "quoteOracle" }, { isMut: false; isSigner: false; name: "baseOracle" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: [{ name: "feesToDao"; type: "bool" }]; name: "openbookV2SettleFunds" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: true; isSigner: false; name: "openOrders" }, { isMut: false; isSigner: false; name: "openbookV2Market"; relations: ["group", "openbook_v2_program", "openbook_v2_market_external"] }, { isMut: false; isSigner: false; name: "openbookV2Program" }, { isMut: false; isSigner: false; name: "openbookV2MarketExternal"; relations: ["bids", "asks", "event_queue"] }, { isMut: true; isSigner: false; name: "bids" }, { isMut: true; isSigner: false; name: "asks" }, { isMut: true; isSigner: false; name: "eventQueue" }, { isMut: true; isSigner: false; name: "marketBaseVault" }, { isMut: true; isSigner: false; name: "marketQuoteVault" }, { isMut: false; isSigner: false; name: "marketVaultSigner" }, { isMut: true; isSigner: false; name: "quoteBank"; relations: ["group"] }, { isMut: true; isSigner: false; name: "quoteVault" }, { isMut: true; isSigner: false; name: "baseBank"; relations: ["group"] }, { isMut: true; isSigner: false; name: "baseVault" }, { isMut: false; isSigner: false; name: "tokenProgram" }]; args: [{ name: "limit"; type: "u8" }]; name: "openbookV2LiqForceCancelOrders" }, { accounts: [{ isMut: false; isSigner: false; name: "group" }, { isMut: true; isSigner: false; name: "account"; relations: ["group"] }, { isMut: false; isSigner: true; name: "authority" }, { isMut: true; isSigner: false; name: "openOrders" }, { isMut: false; isSigner: false; name: "openbookV2Market"; relations: ["group", "openbook_v2_program", "openbook_v2_market_external"] }, { isMut: false; isSigner: false; name: "openbookV2Program" }, { isMut: false; isSigner: false; name: "openbookV2MarketExternal"; relations: ["bids", "asks"] }, { isMut: true; isSigner: false; name: "bids" }, { isMut: true; isSigner: false; name: "asks" }]; args: [{ name: "limit"; type: "u8" }]; name: "openbookV2CancelAllOrders" }, { accounts: [{ isMut: false; isSigner: false; name: "dummy" }]; args: []; docs: ["", "benchmark", ""]; name: "benchmark" }]
name: "mango_v4"
types: [{ name: "InterestRateParams"; type: { fields: [{ name: "util0"; type: "f32" }, { name: "rate0"; type: "f32" }, { name: "util1"; type: "f32" }, { name: "rate1"; type: "f32" }, { name: "maxRate"; type: "f32" }, { name: "adjustmentFactor"; type: "f32" }]; kind: "struct" } }, { name: "Equity"; type: { fields: [{ name: "tokens"; type: { vec: { defined: "TokenEquity" } } }, { name: "perps"; type: { vec: { defined: "PerpEquity" } } }]; kind: "struct" } }, { name: "TokenEquity"; type: { fields: [{ name: "tokenIndex"; type: "u16" }, { name: "value"; type: { defined: "I80F48" } }]; kind: "struct" } }, { name: "PerpEquity"; type: { fields: [{ name: "perpMarketIndex"; type: "u16" }, { name: "value"; type: { defined: "I80F48" } }]; kind: "struct" } }, { name: "FlashLoanTokenDetail"; type: { fields: [{ name: "tokenIndex"; type: "u16" }, { name: "changeAmount"; type: "i128" }, { name: "loan"; type: "i128" }, { name: "loanOriginationFee"; type: "i128" }, { name: "depositIndex"; type: "i128" }, { name: "borrowIndex"; type: "i128" }, { name: "price"; type: "i128" }]; kind: "struct" } }, { name: "FlashLoanTokenDetailV2"; type: { fields: [{ name: "tokenIndex"; type: "u16" }, { docs: ["The amount by which the user's token position changed at the end", "", "So if the user repaid the approved_amount in full, it'd be 0.", "", "Does NOT include the loan_origination_fee or deposit_fee, so the true", "change is `change_amount - loan_origination_fee - deposit_fee`."]; name: "changeAmount"; type: "i128" }, { docs: ["The amount that was a loan (<= approved_amount, depends on user's deposits)"]; name: "loan"; type: "i128" }, { docs: ["The fee paid on the loan, not included in `loan` or `change_amount`"]; name: "loanOriginationFee"; type: "i128" }, { name: "depositIndex"; type: "i128" }, { name: "borrowIndex"; type: "i128" }, { name: "price"; type: "i128" }, { docs: ["Deposit fee paid for positive change_amount.", "", "Not factored into change_amount."]; name: "depositFee"; type: "i128" }, { docs: ["The amount that was transfered out to the user"]; name: "approvedAmount"; type: "u64" }]; kind: "struct" } }, { name: "TokenPosition"; type: { fields: [{ docs: ["The deposit_index (if positive) or borrow_index (if negative) scaled position"]; name: "indexedPosition"; type: { defined: "I80F48" } }, { docs: ["index into Group.tokens"]; name: "tokenIndex"; type: "u16" }, { docs: ["incremented when a market requires this position to stay alive"]; name: "inUseCount"; type: "u16" }, { name: "padding"; type: { array: ["u8", 4] } }, { name: "previousIndex"; type: { defined: "I80F48" } }, { name: "cumulativeDepositInterest"; type: "f64" }, { name: "cumulativeBorrowInterest"; type: "f64" }, { name: "reserved"; type: { array: ["u8", 128] } }]; kind: "struct" } }, { name: "Serum3Orders"; type: { fields: [{ name: "openOrders"; type: "publicKey" }, { docs: ["Tracks the amount of borrows that have flowed into the serum open orders account.", "These borrows did not have the loan origination fee applied, and that may happen", "later (in serum3_settle_funds) if we can guarantee that the funds were used.", "In particular a place-on-book, cancel, settle should not cost fees."]; name: "baseBorrowsWithoutFee"; type: "u64" }, { name: "quoteBorrowsWithoutFee"; type: "u64" }, { name: "marketIndex"; type: "u16" }, { docs: ["Store the base/quote token index, so health computations don't need", "to get passed the static SerumMarket to find which tokens a market", "uses and look up the correct oracles."]; name: "baseTokenIndex"; type: "u16" }, { name: "quoteTokenIndex"; type: "u16" }, { name: "padding"; type: { array: ["u8", 2] } }, { docs: ["Track something like the highest open bid / lowest open ask, in native/native units.", "", "Tracking it exactly isn't possible since we don't see fills. So instead track", "the min/max of the _placed_ bids and asks.", "", "The value is reset in serum3_place_order when a new order is placed without an", "existing one on the book.", "", "0 is a special \"unset\" state."]; name: "highestPlacedBidInv"; type: "f64" }, { name: "lowestPlacedAsk"; type: "f64" }, { name: "reserved"; type: { array: ["u8", 48] } }]; kind: "struct" } }, { name: "PerpPosition"; type: { fields: [{ name: "marketIndex"; type: "u16" }, { name: "padding"; type: { array: ["u8", 2] } }, { docs: ["Index of the current settle pnl limit window"]; name: "settlePnlLimitWindow"; type: "u32" }, { docs: ["Amount of realized trade pnl and unrealized pnl that was already settled this window.", "", "Will be negative when negative pnl was settled.", "", "Note that this will be adjusted for bookkeeping reasons when the realized_trade settle", "limitchanges and is not useable for actually tracking how much pnl was settled", "on balance."]; name: "settlePnlLimitSettledInCurrentWindowNative"; type: "i64" }, { docs: ["Active position size, measured in base lots"]; name: "basePositionLots"; type: "i64" }, { docs: ["Active position in oracle quote native. At the same time this is 1:1 a settle_token native amount.", "", "Example: Say there's a perp market on the BTC/USD price using SOL for settlement. The user buys", "one long contract for $20k, then base = 1, quote = -20k. The price goes to $21k. Now their", "unsettled pnl is (1 * 21k - 20k) __SOL__ = 1000 SOL. This is because the perp contract arbitrarily", "decides that each unit of price difference creates 1 SOL worth of settlement.", "(yes, causing 1 SOL of settlement for each $1 price change implies a lot of extra leverage; likely", "there should be an extra configurable scaling factor before we use this for cases like that)"]; name: "quotePositionNative"; type: { defined: "I80F48" } }, { docs: ["Tracks what the position is to calculate average entry & break even price"]; name: "quoteRunningNative"; type: "i64" }, { docs: ["Already settled long funding"]; name: "longSettledFunding"; type: { defined: "I80F48" } }, { docs: ["Already settled short funding"]; name: "shortSettledFunding"; type: { defined: "I80F48" } }, { docs: ["Base lots in open bids"]; name: "bidsBaseLots"; type: "i64" }, { docs: ["Base lots in open asks"]; name: "asksBaseLots"; type: "i64" }, { docs: ["Amount of base lots on the EventQueue waiting to be processed"]; name: "takerBaseLots"; type: "i64" }, { docs: ["Amount of quote lots on the EventQueue waiting to be processed"]; name: "takerQuoteLots"; type: "i64" }, { docs: ["Cumulative long funding in quote native units.", "If the user paid $1 in funding for a long position, this would be 1e6.", "Beware of the sign!", "", "(Display only)"]; name: "cumulativeLongFunding"; type: "f64" }, { docs: ["Cumulative short funding in quote native units", "If the user paid $1 in funding for a short position, this would be -1e6.", "", "(Display only)"]; name: "cumulativeShortFunding"; type: "f64" }, { docs: ["Cumulative maker volume in quote native units", "", "(Display only)"]; name: "makerVolume"; type: "u64" }, { docs: ["Cumulative taker volume in quote native units", "", "(Display only)"]; name: "takerVolume"; type: "u64" }, { docs: ["Cumulative number of quote native units transfered from the perp position", "to the settle token spot position.", "", "For example, if the user settled $1 of positive pnl into their USDC spot", "position, this would be 1e6.", "", "(Display only)"]; name: "perpSpotTransfers"; type: "i64" }, { docs: ["The native average entry price for the base lots of the current position.", "Reset to 0 when the base position reaches or crosses 0."]; name: "avgEntryPricePerBaseLot"; type: "f64" }, { docs: ["Amount of pnl that was realized by bringing the base position closer to 0.", "", "The settlement of this type of pnl is limited by settle_pnl_limit_realized_trade.", "Settling pnl reduces this value once other_pnl below is exhausted."]; name: "realizedTradePnlNative"; type: { defined: "I80F48" } }, { docs: ["Amount of pnl realized from fees, funding and liquidation.", "", "This type of realized pnl is always settleable.", "Settling pnl reduces this value first."]; name: "realizedOtherPnlNative"; type: { defined: "I80F48" } }, { docs: ["Settle limit contribution from realized pnl.", "", "Every time pnl is realized, this is increased by a fraction of the stable", "value of the realization. It magnitude decreases when realized pnl drops below its value."]; name: "settlePnlLimitRealizedTrade"; type: "i64" }, { docs: ["Trade pnl, fees, funding that were added over the current position's lifetime.", "", "Reset when the position changes sign or goes to zero.", "Not decreased by settling.", "", "This is tracked for display purposes: this value plus the difference between entry", "price and current price of the base position is the overall pnl."]; name: "realizedPnlForPositionNative"; type: { defined: "I80F48" } }, { name: "reserved"; type: { array: ["u8", 88] } }]; kind: "struct" } }, { name: "PerpOpenOrder"; type: { fields: [{ name: "sideAndTree"; type: "u8" }, { name: "padding1"; type: { array: ["u8", 1] } }, { name: "market"; type: "u16" }, { name: "padding2"; type: { array: ["u8", 4] } }, { name: "clientId"; type: "u64" }, { name: "id"; type: "u128" }, { name: "reserved"; type: { array: ["u8", 64] } }]; kind: "struct" } }, { name: "MangoAccountFixed"; type: { fields: [{ name: "group"; type: "publicKey" }, { name: "owner"; type: "publicKey" }, { name: "name"; type: { array: ["u8", 32] } }, { name: "delegate"; type: "publicKey" }, { name: "accountNum"; type: "u32" }, { name: "beingLiquidated"; type: "u8" }, { name: "inHealthRegion"; type: "u8" }, { name: "bump"; type: "u8" }, { name: "padding"; type: { array: ["u8", 1] } }, { name: "netDeposits"; type: "i64" }, { name: "perpSpotTransfers"; type: "i64" }, { name: "healthRegionBeginInitHealth"; type: "i64" }, { name: "frozenUntil"; type: "u64" }, { name: "buybackFeesAccruedCurrent"; type: "u64" }, { name: "buybackFeesAccruedPrevious"; type: "u64" }, { name: "buybackFeesExpiryTimestamp"; type: "u64" }, { name: "nextTokenConditionalSwapId"; type: "u64" }, { name: "temporaryDelegate"; type: "publicKey" }, { name: "temporaryDelegateExpiry"; type: "u64" }, { name: "reserved"; type: { array: ["u8", 160] } }]; kind: "struct" } }, { name: "OracleConfig"; type: { fields: [{ name: "confFilter"; type: { defined: "I80F48" } }, { name: "maxStalenessSlots"; type: "i64" }, { name: "reserved"; type: { array: ["u8", 72] } }]; kind: "struct" } }, { name: "OracleConfigParams"; type: { fields: [{ name: "confFilter"; type: "f32" }, { name: "maxStalenessSlots"; type: { option: "u32" } }]; kind: "struct" } }, { docs: ["InnerNodes and LeafNodes compose the binary tree of orders.", "", "Each InnerNode has exactly two children, which are either InnerNodes themselves,", "or LeafNodes. The children share the top `prefix_len` bits of `key`. The left", "child has a 0 in the next bit, and the right a 1."]; name: "InnerNode"; type: { fields: [{ name: "tag"; type: "u8" }, { name: "padding"; type: { array: ["u8", 3] } }, { docs: ["number of highest `key` bits that all children share", "e.g. if it's 2, the two highest bits of `key` will be the same on all children"]; name: "prefixLen"; type: "u32" }, { docs: ["only the top `prefix_len` bits of `key` are relevant"]; name: "key"; type: "u128" }, { docs: ["indexes into `BookSide::nodes`"]; name: "children"; type: { array: ["u32", 2] } }, { docs: ["The earliest expiry timestamp for the left and right subtrees.", "", "Needed to be able to find and remove expired orders without having to", "iterate through the whole bookside."]; name: "childEarliestExpiry"; type: { array: ["u64", 2] } }, { name: "reserved"; type: { array: ["u8", 72] } }]; kind: "struct" } }, { docs: ["LeafNodes represent an order in the binary tree"]; name: "LeafNode"; type: { fields: [{ docs: ["NodeTag"]; name: "tag"; type: "u8" }, { docs: ["Index into the owning MangoAccount's PerpOpenOrders"]; name: "ownerSlot"; type: "u8" }, { docs: ["PostOrderType, this was added for TradingView move order"]; name: "orderType"; type: "u8" }, { name: "padding"; type: { array: ["u8", 1] } }, { docs: ["Time in seconds after `timestamp` at which the order expires.", "A value of 0 means no expiry."]; name: "timeInForce"; type: "u16" }, { name: "padding2"; type: { array: ["u8", 2] } }, { docs: ["The binary tree key, see new_node_key()"]; name: "key"; type: "u128" }, { docs: ["Address of the owning MangoAccount"]; name: "owner"; type: "publicKey" }, { docs: ["Number of base lots to buy or sell, always >=1"]; name: "quantity"; type: "i64" }, { docs: ["The time the order was placed"]; name: "timestamp"; type: "u64" }, { docs: ["If the effective price of an oracle pegged order exceeds this limit,", "it will be considered invalid and may be removed.", "", "Only applicable in the oracle_pegged OrderTree"]; name: "pegLimit"; type: "i64" }, { docs: ["User defined id for this order, used in FillEvents"]; name: "clientOrderId"; type: "u64" }, { name: "reserved"; type: { array: ["u8", 32] } }]; kind: "struct" } }, { name: "AnyNode"; type: { fields: [{ name: "tag"; type: "u8" }, { name: "data"; type: { array: ["u8", 119] } }]; kind: "struct" } }, { name: "OrderTreeRoot"; type: { fields: [{ name: "maybeNode"; type: "u32" }, { name: "leafCount"; type: "u32" }]; kind: "struct" } }, { docs: ["A binary tree on AnyNode::key()", "", "The key encodes the price in the top 64 bits."]; name: "OrderTreeNodes"; type: { fields: [{ name: "orderTreeType"; type: "u8" }, { name: "padding"; type: { array: ["u8", 3] } }, { name: "bumpIndex"; type: "u32" }, { name: "freeListLen"; type: "u32" }, { name: "freeListHead"; type: "u32" }, { name: "reserved"; type: { array: ["u8", 512] } }, { name: "nodes"; type: { array: [{ defined: "AnyNode" }, 1024] } }]; kind: "struct" } }, { name: "EventQueueHeader"; type: { fields: [{ name: "head"; type: "u32" }, { name: "count"; type: "u32" }, { name: "seqNum"; type: "u64" }]; kind: "struct" } }, { name: "AnyEvent"; type: { fields: [{ name: "eventType"; type: "u8" }, { name: "padding"; type: { array: ["u8", 207] } }]; kind: "struct" } }, { name: "FillEvent"; type: { fields: [{ name: "eventType"; type: "u8" }, { name: "takerSide"; type: "u8" }, { name: "makerOut"; type: "u8" }, { name: "makerSlot"; type: "u8" }, { name: "padding"; type: { array: ["u8", 4] } }, { name: "timestamp"; type: "u64" }, { name: "seqNum"; type: "u64" }, { name: "maker"; type: "publicKey" }, { name: "padding2"; type: { array: ["u8", 32] } }, { name: "makerTimestamp"; type: "u64" }, { name: "taker"; type: "publicKey" }, { name: "padding3"; type: { array: ["u8", 16] } }, { name: "takerClientOrderId"; type: "u64" }, { name: "padding4"; type: { array: ["u8", 16] } }, { name: "price"; type: "i64" }, { name: "quantity"; type: "i64" }, { name: "makerClientOrderId"; type: "u64" }, { name: "makerFee"; type: "f32" }, { name: "takerFee"; type: "f32" }, { name: "reserved"; type: { array: ["u8", 8] } }]; kind: "struct" } }, { name: "OutEvent"; type: { fields: [{ name: "eventType"; type: "u8" }, { name: "side"; type: "u8" }, { name: "ownerSlot"; type: "u8" }, { name: "padding0"; type: { array: ["u8", 5] } }, { name: "timestamp"; type: "u64" }, { name: "seqNum"; type: "u64" }, { name: "owner"; type: "publicKey" }, { name: "quantity"; type: "i64" }, { name: "padding1"; type: { array: ["u8", 144] } }]; kind: "struct" } }, { docs: ["Maintains a \"stable_price\" based on the oracle price.", "", "The stable price follows the oracle price, but its relative rate of", "change is limited (to `stable_growth_limit`) and futher reduced if", "the oracle price is far from the `delay_price`.", "", "Conceptually the `delay_price` is itself a time delayed", "(`24 * delay_interval_seconds`, assume 24h) and relative rate of change limited", "function of the oracle price. It is implemented as averaging the oracle", "price over every `delay_interval_seconds` (assume 1h) and then applying the", "`delay_growth_limit` between intervals."]; name: "StablePriceModel"; type: { fields: [{ docs: ["Current stable price to use in health"]; name: "stablePrice"; type: "f64" }, { name: "lastUpdateTimestamp"; type: "u64" }, { docs: ["Stored delay_price for each delay_interval.", "If we want the delay_price to be 24h delayed, we would store one for each hour.", "This is used in a cyclical way: We use the maximally-delayed value at delay_interval_index", "and once enough time passes to move to the next delay interval, that gets overwritten and", "we use the next one."]; name: "delayPrices"; type: { array: ["f64", 24] } }, { docs: ["The delay price is based on an average over each delay_interval. The contributions", "to the average are summed up here."]; name: "delayAccumulatorPrice"; type: "f64" }, { docs: ["Accumulating the total time for the above average."]; name: "delayAccumulatorTime"; type: "u32" }, { docs: ["Length of a delay_interval"]; name: "delayIntervalSeconds"; type: "u32" }, { docs: ["Maximal relative difference between two delay_price in consecutive intervals."]; name: "delayGrowthLimit"; type: "f32" }, { docs: ["Maximal per-second relative difference of the stable price.", "It gets further reduced if stable and delay price disagree."]; name: "stableGrowthLimit"; type: "f32" }, { docs: ["The delay_interval_index that update() was last called on."]; name: "lastDelayIntervalIndex"; type: "u8" }, { docs: ["If set to 1, the stable price will reset on the next non-zero price it sees."]; name: "resetOnNonzeroPrice"; type: "u8" }, { name: "padding"; type: { array: ["u8", 6] } }, { name: "reserved"; type: { array: ["u8", 48] } }]; kind: "struct" } }, { name: "TokenConditionalSwap"; type: { fields: [{ name: "id"; type: "u64" }, { docs: ["maximum amount of native tokens to buy or sell"]; name: "maxBuy"; type: "u64" }, { name: "maxSell"; type: "u64" }, { docs: ["how many native tokens were already bought/sold"]; name: "bought"; type: "u64" }, { name: "sold"; type: "u64" }, { docs: ["timestamp until which the conditional swap is valid"]; name: "expiryTimestamp"; type: "u64" }, { docs: ["The price must exceed this threshold to allow execution.", "", "This threshold is compared to the \"sell_token per buy_token\" oracle price", "(which can be computed by dividing the buy token oracle price by the", "sell token oracle price). If that price is >= lower_limit and <= upper_limit", "the tcs may be executable.", "", "Example: Stop loss to get out of a SOL long: The user bought SOL at 20 USDC/SOL", "and wants to stop loss at 18 USDC/SOL. They'd set buy_token=USDC, sell_token=SOL", "so the reference price is in SOL/USDC units. Set price_lower_limit=toNative(1/18)", "and price_upper_limit=toNative(1/10). Also set allow_borrows=false.", "", "Example: Want to buy SOL with USDC if the price falls below 22 USDC/SOL.", "buy_token=SOL, sell_token=USDC, reference price is in USDC/SOL units. Set", "price_upper_limit=toNative(22), price_lower_limit=0."]; name: "priceLowerLimit"; type: "f64" }, { docs: ["Parallel to price_lower_limit, but an upper limit."]; name: "priceUpperLimit"; type: "f64" }, { docs: ["The premium to pay over oracle price to incentivize execution."]; name: "pricePremiumRate"; type: "f64" }, { docs: ["The taker receives only premium_price * (1 - taker_fee_rate)"]; name: "takerFeeRate"; type: "f32" }, { docs: ["The maker has to pay premium_price * (1 + maker_fee_rate)"]; name: "makerFeeRate"; type: "f32" }, { docs: ["indexes of tokens for the swap"]; name: "buyTokenIndex"; type: "u16" }, { name: "sellTokenIndex"; type: "u16" }, { name: "hasData"; type: "u8" }, { docs: ["may token purchases create deposits? (often users just want to get out of a borrow)"]; name: "allowCreatingDeposits"; type: "u8" }, { docs: ["may token selling create borrows? (often users just want to get out of a long)"]; name: "allowCreatingBorrows"; type: "u8" }, { docs: ["The stored prices are always \"sell token per buy token\", but if the user", "used \"buy token per sell token\" when creating the tcs order, we should continue", "to show them prices in that way.", "", "Stores a TokenConditionalSwapDisplayPriceStyle enum value"]; name: "displayPriceStyle"; type: "u8" }, { docs: ["The intention the user had when placing this order, display-only", "", "Stores a TokenConditionalSwapIntention enum value"]; name: "intention"; type: "u8" }, { name: "reserved"; type: { array: ["u8", 111] } }]; kind: "struct" } }, { docs: ["Nothing in Rust shall use these types. They only exist so that the Anchor IDL", "knows about them and typescript can deserialize it."]; name: "TokenIndex"; type: { fields: [{ name: "val"; type: "u16" }]; kind: "struct" } }, { name: "Serum3MarketIndex"; type: { fields: [{ name: "val"; type: "u16" }]; kind: "struct" } }, { name: "PerpMarketIndex"; type: { fields: [{ name: "val"; type: "u16" }]; kind: "struct" } }, { name: "I80F48"; type: { fields: [{ name: "val"; type: "i128" }]; kind: "struct" } }, { name: "FlashLoanType"; type: { kind: "enum"; variants: [{ name: "Unknown" }, { name: "Swap" }] } }, { docs: ["Copy paste a bunch of enums so that we could AnchorSerialize & AnchorDeserialize them"]; name: "Serum3SelfTradeBehavior"; type: { kind: "enum"; variants: [{ name: "DecrementTake" }, { name: "CancelProvide" }, { name: "AbortTransaction" }] } }, { name: "Serum3OrderType"; type: { kind: "enum"; variants: [{ name: "Limit" }, { name: "ImmediateOrCancel" }, { name: "PostOnly" }] } }, { name: "Serum3Side"; type: { kind: "enum"; variants: [{ name: "Bid" }, { name: "Ask" }] } }, { docs: ["There are three types of health:", "- initial health (\"init\"): users can only open new positions if it's >= 0", "- maintenance health (\"maint\"): users get liquidated if it's < 0", "- liquidation end health: once liquidation started (see being_liquidated), it", "only stops once this is >= 0", "", "The ordering is", "init health <= liquidation end health <= maint health", "", "The different health types are realized by using different weights and prices:", "- init health: init weights with scaling, stable-price adjusted prices", "- liq end health: init weights without scaling, oracle prices", "- maint health: maint weights, oracle prices", ""]; name: "HealthType"; type: { kind: "enum"; variants: [{ name: "Init" }, { name: "Maint" }, { name: "LiquidationEnd" }] } }, { name: "LoanOriginationFeeInstruction"; type: { kind: "enum"; variants: [{ name: "Unknown" }, { name: "LiqTokenBankruptcy" }, { name: "LiqTokenWithToken" }, { name: "Serum3LiqForceCancelOrders" }, { name: "Serum3PlaceOrder" }, { name: "Serum3SettleFunds" }, { name: "TokenWithdraw" }, { name: "TokenConditionalSwapTrigger" }] } }, { docs: ["Enum for lookup into ix gate", "note:", "total ix files 56,", "ix files included 48,", "ix files not included 8,", "- Benchmark,", "- ComputeAccountData,", "- GroupCreate", "- GroupEdit", "- IxGateSet,", "- PerpZeroOut,", "- PerpEditMarket,", "- TokenEdit,"]; name: "IxGate"; type: { kind: "enum"; variants: [{ name: "AccountClose" }, { name: "AccountCreate" }, { name: "AccountEdit" }, { name: "AccountExpand" }, { name: "AccountToggleFreeze" }, { name: "AltExtend" }, { name: "AltSet" }, { name: "FlashLoan" }, { name: "GroupClose" }, { name: "GroupCreate" }, { name: "HealthRegion" }, { name: "PerpCancelAllOrders" }, { name: "PerpCancelAllOrdersBySide" }, { name: "PerpCancelOrder" }, { name: "PerpCancelOrderByClientOrderId" }, { name: "PerpCloseMarket" }, { name: "PerpConsumeEvents" }, { name: "PerpCreateMarket" }, { name: "PerpDeactivatePosition" }, { name: "PerpLiqBaseOrPositivePnl" }, { name: "PerpLiqForceCancelOrders" }, { name: "PerpLiqNegativePnlOrBankruptcy" }, { name: "PerpPlaceOrder" }, { name: "PerpSettleFees" }, { name: "PerpSettlePnl" }, { name: "PerpUpdateFunding" }, { name: "Serum3CancelAllOrders" }, { name: "Serum3CancelOrder" }, { name: "Serum3CloseOpenOrders" }, { name: "Serum3CreateOpenOrders" }, { name: "Serum3DeregisterMarket" }, { name: "Serum3EditMarket" }, { name: "Serum3LiqForceCancelOrders" }, { name: "Serum3PlaceOrder" }, { name: "Serum3RegisterMarket" }, { name: "Serum3SettleFunds" }, { name: "StubOracleClose" }, { name: "StubOracleCreate" }, { name: "StubOracleSet" }, { name: "TokenAddBank" }, { name: "TokenDeposit" }, { name: "TokenDeregister" }, { name: "TokenLiqBankruptcy" }, { name: "TokenLiqWithToken" }, { name: "TokenRegister" }, { name: "TokenRegisterTrustless" }, { name: "TokenUpdateIndexAndRate" }, { name: "TokenWithdraw" }, { name: "AccountBuybackFeesWithMngo" }, { name: "TokenForceCloseBorrowsWithToken" }, { name: "PerpForceClosePosition" }, { name: "GroupWithdrawInsuranceFund" }, { name: "TokenConditionalSwapCreate" }, { name: "TokenConditionalSwapTrigger" }, { name: "TokenConditionalSwapCancel" }, { name: "OpenbookV2CancelOrder" }, { name: "OpenbookV2CloseOpenOrders" }, { name: "OpenbookV2CreateOpenOrders" }, { name: "OpenbookV2DeregisterMarket" }, { name: "OpenbookV2EditMarket" }, { name: "OpenbookV2LiqForceCancelOrders" }, { name: "OpenbookV2PlaceOrder" }, { name: "OpenbookV2PlaceTakeOrder" }, { name: "OpenbookV2RegisterMarket" }, { name: "OpenbookV2SettleFunds" }, { name: "AdminTokenWithdrawFees" }, { name: "AdminPerpWithdrawFees" }, { name: "AccountSizeMigration" }] } }, { name: "CheckLiquidatable"; type: { kind: "enum"; variants: [{ name: "NotLiquidatable" }, { name: "Liquidatable" }, { name: "BecameNotLiquidatable" }] } }, { name: "OracleType"; type: { kind: "enum"; variants: [{ name: "Pyth" }, { name: "Stub" }, { name: "SwitchboardV1" }, { name: "SwitchboardV2" }] } }, { name: "OrderState"; type: { kind: "enum"; variants: [{ name: "Valid" }, { name: "Invalid" }, { name: "Skipped" }] } }, { name: "BookSideOrderTree"; type: { kind: "enum"; variants: [{ name: "Fixed" }, { name: "OraclePegged" }] } }, { name: "NodeTag"; type: { kind: "enum"; variants: [{ name: "Uninitialized" }, { name: "InnerNode" }, { name: "LeafNode" }, { name: "FreeNode" }, { name: "LastFreeNode" }] } }, { name: "PlaceOrderType"; type: { kind: "enum"; variants: [{ name: "Limit" }, { name: "ImmediateOrCancel" }, { name: "PostOnly" }, { name: "Market" }, { name: "PostOnlySlide" }] } }, { name: "PostOrderType"; type: { kind: "enum"; variants: [{ name: "Limit" }, { name: "PostOnly" }, { name: "PostOnlySlide" }] } }, { docs: ["Self trade behavior controls how taker orders interact with resting limit orders of the same account.", "This setting has no influence on placing a resting or oracle pegged limit order that does not match", "immediately, instead it's the responsibility of the user to correctly configure his taker orders."]; name: "SelfTradeBehavior"; type: { kind: "enum"; variants: [{ name: "DecrementTake" }, { name: "CancelProvide" }, { name: "AbortTransaction" }] } }, { name: "Side"; type: { kind: "enum"; variants: [{ name: "Bid" }, { name: "Ask" }] } }, { docs: ["SideAndOrderTree is a storage optimization, so we don't need two bytes for the data"]; name: "SideAndOrderTree"; type: { kind: "enum"; variants: [{ name: "BidFixed" }, { name: "AskFixed" }, { name: "BidOraclePegged" }, { name: "AskOraclePegged" }] } }, { name: "OrderParams"; type: { kind: "enum"; variants: [{ name: "Market" }, { fields: [{ name: "price_lots"; type: "i64" }]; name: "ImmediateOrCancel" }, { fields: [{ name: "price_lots"; type: "i64" }, { name: "order_type"; type: { defined: "PostOrderType" } }]; name: "Fixed" }, { fields: [{ name: "price_offset_lots"; type: "i64" }, { name: "order_type"; type: { defined: "PostOrderType" } }, { name: "peg_limit"; type: "i64" }, { name: "max_oracle_staleness_slots"; type: "i32" }]; name: "OraclePegged" }] } }, { name: "OrderTreeType"; type: { kind: "enum"; variants: [{ name: "Bids" }, { name: "Asks" }] } }, { name: "EventType"; type: { kind: "enum"; variants: [{ name: "Fill" }, { name: "Out" }, { name: "Liquidate" }] } }, { name: "TokenConditionalSwapDisplayPriceStyle"; type: { kind: "enum"; variants: [{ name: "SellTokenPerBuyToken" }, { name: "BuyTokenPerSellToken" }] } }, { name: "TokenConditionalSwapIntention"; type: { kind: "enum"; variants: [{ name: "Unknown" }, { name: "StopLoss" }, { name: "TakeProfit" }] } }]
version: "0.20.0"
Modify
Type parameters
T
R
Oracle
Config Type declaration
conf
Filter: I80F48 max
Staleness Slots: BN
Oracle
Config Dto Type declaration
conf
Filter: I80F48Dto max
Staleness Slots: BN
Parsed
Fill Event Perp
Market Index Platform
Fee Type declaration
fee
Account: string fee
Bps: number
Price
Impact Type declaration
avg_
price_ impact_ percent: number max_
price_ impact_ percent: number min_
price_ impact_ percent: number side: "bid" | "ask"
symbol: string
target_
amount: number
Quote
Mint To Referrer Routes
Stable
Price Model Type declaration
delay
Accumulator Price: number delay
Accumulator Time: number delay
Growth Limit: number delay
Interval Seconds: number delay
Prices: number[] last
Delay Interval Index: number last
Update Timestamp: BN stable
Growth Limit: number stable
Price: number
Token
Type declaration
address: string
chain
Id: number decimals: number
extensions: { coingeckoId?: string }
Optional coingecko
Id?: string
logoURI: string
name: string
symbol: string
tags: string[]
Token
Index Token
Mint Address Variables
Const I64_
MAX_ BN Const IDL
Const MANGO_
ROUTER_ API_ URL Const MANGO_
V4_ ID Type declaration
devnet: PublicKey
mainnet-
beta: PublicKey testnet: PublicKey
Const MAX_
RECENT_ PRIORITY_ FEE_ ACCOUNTS Const Null
Perp Edit Params Const Null
Token Edit Params Const OPENBOOK_
PROGRAM_ ID Type declaration
devnet: PublicKey
mainnet-
beta: PublicKey
Const QUOTE_
DECIMALS Const True
Ix Gate Params Const U64_
MAX_ BN Const USDC_
MINT Functions
HUNDRED_
I80 F48 Returns I80F48
MAX_
I80 F48 Returns I80F48
MINUS_
ONE_ I80 F48 Returns I80F48
ONE_
I80 F48 Returns I80F48
RUST_
I64_ MAX Returns BN
RUST_
I64_ MIN Returns BN
RUST_
U64_ MAX Returns BN
ZERO_
I80 F48 Returns I80F48
bps
To Decimal Parameters
bps: number
Returns number
build
Fetch Returns Promise<(input: RequestInfo | URL, init?: RequestInit) => Promise<Response>>
build
Ix Gate Parameters
p: IxGateParams
Returns BN
build
Versioned Tx Parameters
provider: AnchorProvider
ix: TransactionInstruction[]
additionalSigners: Signer[] = []
alts: AddressLookupTableAccount[] = []
Returns Promise<VersionedTransaction>
compute
Price Impact On Jup Returns price impact in bps i.e. 0 to 10,000 returns -1 if data is missing
-Parameters
pis: PriceImpact[]
usdcAmount: number
tokenName: string
Returns number
create
Associated Token Account Idempotent Instruction Parameters
payer: PublicKey
owner: PublicKey
mint: PublicKey
Returns Promise<TransactionInstruction>
create
Compute Budget Ix Parameters
microLamports: number
Returns TransactionInstruction
fetch
Jupiter Transaction Parameters
connection: Connection
selectedRoute: RouteInfo
userPublicKey: PublicKey
slippage: number
inputMint: PublicKey
outputMint: PublicKey
Returns Promise<[TransactionInstruction[], AddressLookupTableAccount[]]>
fetch
Routes Parameters
inputMint: any
outputMint: any
amount: string = '0'
slippage: number = 50
swapMode: string = 'ExactIn'
feeBps: string = '0'
wallet: PublicKey = PublicKey.default
Returns Promise<Routes>
get
Associated Token Address - +
Parameters
pis: PriceImpact[]
usdcAmount: number
tokenName: string
Returns number
create
Associated Token Account Idempotent Instruction Parameters
payer: PublicKey
owner: PublicKey
mint: PublicKey
Returns Promise<TransactionInstruction>
create
Compute Budget Ix Parameters
microLamports: number
Returns TransactionInstruction
fetch
Jupiter Transaction Parameters
connection: Connection
selectedRoute: RouteInfo
userPublicKey: PublicKey
slippage: number
inputMint: PublicKey
outputMint: PublicKey
Returns Promise<[TransactionInstruction[], AddressLookupTableAccount[]]>
fetch
Routes Parameters
inputMint: any
outputMint: any
amount: string = '0'
slippage: number = 50
swapMode: string = 'ExactIn'
feeBps: string = '0'
wallet: PublicKey = PublicKey.default
Returns Promise<Routes>
get
Associated Token Address Get the address of the associated token account for a given mint and owner
Parameters
mint: PublicKey
Token mint account
@@ -14,8 +14,8 @@ returns -1 if data is missingassociatedTokenProgramId: PublicKey = ASSOCIATED_TOKEN_PROGRAM_ID
SPL Associated Token program account
Returns Promise<PublicKey>
Address of the associated token account
-
get
Closest To Liquidation Perp Positions - +
get
Closest To Liquidation Perp Positions Returns a list of perp positions alongwith their mango account, sorted ascending by closest to liquidation
-Parameters
client: MangoClient
group: Group
Optional accounts: MangoAccount[]
filterByNotionalValueUi: number = 10
Returns Promise<{ mangoAccount: PublicKey; pct: I80F48; perpPosition: PerpPosition }[]>
get
Equity For Mango Accounts Parameters
client: MangoClient
group: Group
mangoAccountPks: PublicKey[]
allMangoAccounts: MangoAccount[]
Returns Promise<AccountEquity[]>
get
Largest Perp Positions - +
Parameters
client: MangoClient
group: Group
Optional accounts: MangoAccount[]
filterByNotionalValueUi: number = 10
Returns Promise<{ mangoAccount: PublicKey; pct: I80F48; perpPosition: PerpPosition }[]>
get
Equity For Mango Accounts Parameters
client: MangoClient
group: Group
mangoAccountPks: PublicKey[]
allMangoAccounts: MangoAccount[]
Returns Promise<AccountEquity[]>
get
Largest Perp Positions Returns a list of perp positions alongwith their mango account, sorted descending by notional value
-Parameters
client: MangoClient
group: Group
Optional accounts: MangoAccount[]
Optional perpMarket: PerpMarket
Returns Promise<{ mangoAccount: PublicKey; perpPosition: PerpPosition }[]>
get
On Chain Price For Mints Parameters
mints: string[]
Returns Promise<number[]>
get
Perp Positions To Be Liquidated Parameters
group: Group
mangoAccounts: MangoAccount[]
Returns Promise<PerpPositionsToBeLiquidated[]>
get
Price Impact For Liqor Parameters
group: Group
pis: PriceImpact[]
mangoAccounts: MangoAccount[]
Returns Promise<LiqorPriceImpact[]>
get
Risk Stats Parameters
client: MangoClient
group: Group
change: number = 0.4
Returns Promise<Risk>
percentage
To Decimal Parameters
percentage: number
Returns number
prepare
Mango Router Instructions Parameters
selectedRoute: RouteInfo
inputMint: PublicKey
outputMint: PublicKey
userPublicKey: PublicKey
Returns Promise<[TransactionInstruction[], AddressLookupTableAccount[]]>
round
To5 Parameters
number: any
Returns number
send
Transaction Parameters
provider: AnchorProvider
ixs: TransactionInstruction[]
alts: AddressLookupTableAccount[]
opts: any = {}
Returns Promise<MangoSignatureStatus>
to
Native Parameters
uiAmount: number
decimals: number
Returns BN
to
Native I80 F48 Parameters
uiAmount: number
decimals: number
Returns I80F48
to
Native I80 F48 For Quote Parameters
uiAmount: number
Returns I80F48
to
Native Sell Per Buy Token Price to
Ui Decimals Parameters
nativeAmount: number | BN | I80F48
decimals: number
Returns number
to
Ui Decimals For Quote Parameters
nativeAmount: number | BN | I80F48
Returns number
to
Ui I80 F48 to
Ui Sell Per Buy Token Price
\ No newline at end of file +Generated using TypeDoc
Parameters
client: MangoClient
group: Group
Optional accounts: MangoAccount[]
Optional perpMarket: PerpMarket
Returns Promise<{ mangoAccount: PublicKey; perpPosition: PerpPosition }[]>
get
On Chain Price For Mints Parameters
mints: string[]
Returns Promise<number[]>
get
Perp Positions To Be Liquidated Parameters
group: Group
mangoAccounts: MangoAccount[]
Returns Promise<PerpPositionsToBeLiquidated[]>
get
Price Impact For Liqor Parameters
group: Group
pis: PriceImpact[]
mangoAccounts: MangoAccount[]
Returns Promise<LiqorPriceImpact[]>
get
Risk Stats Parameters
client: MangoClient
group: Group
change: number = 0.4
Returns Promise<Risk>
percentage
To Decimal Parameters
percentage: number
Returns number
prepare
Mango Router Instructions Parameters
selectedRoute: RouteInfo
inputMint: PublicKey
outputMint: PublicKey
userPublicKey: PublicKey
Returns Promise<[TransactionInstruction[], AddressLookupTableAccount[]]>
round
To5 Parameters
number: any
Returns number
send
Transaction Parameters
provider: AnchorProvider
ixs: TransactionInstruction[]
alts: AddressLookupTableAccount[]
opts: any = {}
Returns Promise<MangoSignatureStatus>
to
Native Parameters
uiAmount: number
decimals: number
Returns BN
to
Native I80 F48 Parameters
uiAmount: number
decimals: number
Returns I80F48
to
Native I80 F48 For Quote Parameters
uiAmount: number
Returns I80F48
to
Native Sell Per Buy Token Price to
Ui Decimals Parameters
nativeAmount: number | BN | I80F48
decimals: number
Returns number
to
Ui Decimals For Quote Parameters
nativeAmount: number | BN | I80F48
Returns number
to
Ui I80 F48 to
Ui Sell Per Buy Token Price
\ No newline at end of file diff --git a/ts/client/interfaces/AccountEquity.html b/ts/client/interfaces/AccountEquity.html index 3e94b6cfc..c984c34a1 100644 --- a/ts/client/interfaces/AccountEquity.html +++ b/ts/client/interfaces/AccountEquity.html @@ -1 +1 @@ -Generated using TypeDoc
AccountEquity | @blockworks-foundation/mango-v4 Interface AccountEquity
\ No newline at end of file +Generated using TypeDoc
AccountEquity | @blockworks-foundation/mango-v4 Interface AccountEquity
\ No newline at end of file diff --git a/ts/client/interfaces/BankForHealth.html b/ts/client/interfaces/BankForHealth.html index e49a23f72..1dc20afee 100644 --- a/ts/client/interfaces/BankForHealth.html +++ b/ts/client/interfaces/BankForHealth.html @@ -1 +1 @@ -Generated using TypeDoc
BankForHealth | @blockworks-foundation/mango-v4 Interface BankForHealth
Hierarchy
- BankForHealth
Implemented by
Index
Properties
borrow
Weight Scale Start Quote deposit
Weight Scale Start Quote init
Asset Weight init
Liab Weight maint
Asset Weight maint
Liab Weight price
stable
Price Model token
Index Methods
native
Borrows Returns I80F48
native
Deposits Returns I80F48
scaled
Init Asset Weight scaled
Init Liab Weight \ No newline at end of file +Generated using TypeDoc
BankForHealth | @blockworks-foundation/mango-v4 Interface BankForHealth
Hierarchy
- BankForHealth
Implemented by
Index
Properties
borrow
Weight Scale Start Quote deposit
Weight Scale Start Quote init
Asset Weight init
Liab Weight maint
Asset Weight maint
Liab Weight price
stable
Price Model token
Index Methods
native
Borrows Returns I80F48
native
Deposits Returns I80F48
scaled
Init Asset Weight scaled
Init Liab Weight \ No newline at end of file diff --git a/ts/client/interfaces/Event.html b/ts/client/interfaces/Event.html index c9c8a6067..bd7ee348a 100644 --- a/ts/client/interfaces/Event.html +++ b/ts/client/interfaces/Event.html @@ -1 +1 @@ -Generated using TypeDoc
Event | @blockworks-foundation/mango-v4 Interface Event
\ No newline at end of file +Generated using TypeDoc
Event | @blockworks-foundation/mango-v4 Interface Event
\ No newline at end of file diff --git a/ts/client/interfaces/ExactOutSwapParams.html b/ts/client/interfaces/ExactOutSwapParams.html index ea42de06e..f9e815820 100644 --- a/ts/client/interfaces/ExactOutSwapParams.html +++ b/ts/client/interfaces/ExactOutSwapParams.html @@ -1,3 +1,3 @@ -Generated using TypeDoc
ExactOutSwapParams | @blockworks-foundation/mango-v4 Interface ExactOutSwapParams
Hierarchy
- SwapParams
- ExactOutSwapParams
Index
Properties
amount
+ExactOutSwapParams | @blockworks-foundation/mango-v4 Interface ExactOutSwapParams
Hierarchy
- SwapParams
- ExactOutSwapParams
Index
Properties
amount
amount is used for instruction and can be null when it is an intermediate swap, only the first swap has an amount
-destination
Mint in
Amount Optional open
Orders Address Optional overflow
Fee Account Optional platform
Fee Optional quote
Mint To Referrer slippage
Bps source
Mint swap
Mode user
Destination Token Account user
Source Token Account user
Transfer Authority \ No newline at end of file +Generated using TypeDoc
destination
Mint in
Amount Optional open
Orders Address Optional overflow
Fee Account Optional platform
Fee Optional quote
Mint To Referrer slippage
Bps source
Mint swap
Mode user
Destination Token Account user
Source Token Account user
Transfer Authority \ No newline at end of file diff --git a/ts/client/interfaces/Fee.html b/ts/client/interfaces/Fee.html index 78628d4e3..6d72d1571 100644 --- a/ts/client/interfaces/Fee.html +++ b/ts/client/interfaces/Fee.html @@ -1 +1 @@ -Generated using TypeDoc
Fee | @blockworks-foundation/mango-v4 Interface Fee
\ No newline at end of file +Generated using TypeDoc
Fee | @blockworks-foundation/mango-v4 Interface Fee
\ No newline at end of file diff --git a/ts/client/interfaces/FillEvent.html b/ts/client/interfaces/FillEvent.html index 8a61b79ee..23d1730fd 100644 --- a/ts/client/interfaces/FillEvent.html +++ b/ts/client/interfaces/FillEvent.html @@ -1 +1 @@ -Generated using TypeDoc
FillEvent | @blockworks-foundation/mango-v4 Interface FillEvent
Hierarchy
- Event
- FillEvent
Index
Properties
event
Type maker
maker
Fee maker
Order Id maker
Out maker
Slot maker
Timestamp price
quantity
seq
Num taker
taker
Client Order Id taker
Fee taker
Order Id taker
Side timestamp
\ No newline at end of file +Generated using TypeDoc
FillEvent | @blockworks-foundation/mango-v4 Interface FillEvent
Hierarchy
- Event
- FillEvent
Index
Properties
event
Type maker
maker
Fee maker
Order Id maker
Out maker
Slot maker
Timestamp price
quantity
seq
Num taker
taker
Client Order Id taker
Fee taker
Order Id taker
Side timestamp
\ No newline at end of file diff --git a/ts/client/interfaces/LiqorPriceImpact.html b/ts/client/interfaces/LiqorPriceImpact.html index a6f52e94a..be149d2af 100644 --- a/ts/client/interfaces/LiqorPriceImpact.html +++ b/ts/client/interfaces/LiqorPriceImpact.html @@ -1 +1 @@ -Generated using TypeDoc
LiqorPriceImpact | @blockworks-foundation/mango-v4 Interface LiqorPriceImpact
Hierarchy
- LiqorPriceImpact
Index
Properties
Assets
Type declaration
highlight: boolean
val: number
Assets
Slippage Type declaration
highlight: boolean
val: number
Coin
Type declaration
highlight: boolean
val: string
Future
Price Type declaration
highlight: boolean
val: number
Jup
Price Type declaration
highlight: boolean
val: number
Liabs
Type declaration
highlight: boolean
val: number
Liabs
Slippage Type declaration
highlight: boolean
val: number
Oracle
Price Type declaration
highlight: boolean
val: number
V4
Liq Fee Type declaration
highlight: boolean
val: number
\ No newline at end of file +Generated using TypeDoc
LiqorPriceImpact | @blockworks-foundation/mango-v4 Interface LiqorPriceImpact
Hierarchy
- LiqorPriceImpact
Index
Properties
Assets
Type declaration
highlight: boolean
val: number
Assets
Slippage Type declaration
highlight: boolean
val: number
Coin
Type declaration
highlight: boolean
val: string
Future
Price Type declaration
highlight: boolean
val: number
Jup
Price Type declaration
highlight: boolean
val: number
Liabs
Type declaration
highlight: boolean
val: number
Liabs
Slippage Type declaration
highlight: boolean
val: number
Oracle
Price Type declaration
highlight: boolean
val: number
V4
Liq Fee Type declaration
highlight: boolean
val: number
\ No newline at end of file diff --git a/ts/client/interfaces/LiquidateEvent.html b/ts/client/interfaces/LiquidateEvent.html index 7d73df824..ec1259686 100644 --- a/ts/client/interfaces/LiquidateEvent.html +++ b/ts/client/interfaces/LiquidateEvent.html @@ -1 +1 @@ -Generated using TypeDoc
LiquidateEvent | @blockworks-foundation/mango-v4 Interface LiquidateEvent
\ No newline at end of file +Generated using TypeDoc
LiquidateEvent | @blockworks-foundation/mango-v4 Interface LiquidateEvent
\ No newline at end of file diff --git a/ts/client/interfaces/MangoSignatureStatus.html b/ts/client/interfaces/MangoSignatureStatus.html index 7c94aa246..88035aa55 100644 --- a/ts/client/interfaces/MangoSignatureStatus.html +++ b/ts/client/interfaces/MangoSignatureStatus.html @@ -1 +1 @@ -Generated using TypeDoc
MangoSignatureStatus | @blockworks-foundation/mango-v4 Interface MangoSignatureStatus
\ No newline at end of file +Generated using TypeDoc
MangoSignatureStatus | @blockworks-foundation/mango-v4 Interface MangoSignatureStatus
\ No newline at end of file diff --git a/ts/client/interfaces/MarketInfo.html b/ts/client/interfaces/MarketInfo.html index d31cecff9..95c9c626f 100644 --- a/ts/client/interfaces/MarketInfo.html +++ b/ts/client/interfaces/MarketInfo.html @@ -1 +1 @@ -Generated using TypeDoc
MarketInfo | @blockworks-foundation/mango-v4 Interface MarketInfo
\ No newline at end of file +Generated using TypeDoc
MarketInfo | @blockworks-foundation/mango-v4 Interface MarketInfo
\ No newline at end of file diff --git a/ts/client/interfaces/OutEvent.html b/ts/client/interfaces/OutEvent.html index 4be384d84..b2dd90f6c 100644 --- a/ts/client/interfaces/OutEvent.html +++ b/ts/client/interfaces/OutEvent.html @@ -1 +1 @@ -Generated using TypeDoc
OutEvent | @blockworks-foundation/mango-v4 Interface OutEvent
\ No newline at end of file +Generated using TypeDoc
OutEvent | @blockworks-foundation/mango-v4 Interface OutEvent
\ No newline at end of file diff --git a/ts/client/interfaces/PerpPositionsToBeLiquidated.html b/ts/client/interfaces/PerpPositionsToBeLiquidated.html index e9ed3869f..0339867b1 100644 --- a/ts/client/interfaces/PerpPositionsToBeLiquidated.html +++ b/ts/client/interfaces/PerpPositionsToBeLiquidated.html @@ -1 +1 @@ -Generated using TypeDoc
PerpPositionsToBeLiquidated | @blockworks-foundation/mango-v4 Interface PerpPositionsToBeLiquidated
\ No newline at end of file +Generated using TypeDoc
PerpPositionsToBeLiquidated | @blockworks-foundation/mango-v4 Interface PerpPositionsToBeLiquidated
\ No newline at end of file diff --git a/ts/client/interfaces/Quote.html b/ts/client/interfaces/Quote.html index 707b9745a..3c8f4d464 100644 --- a/ts/client/interfaces/Quote.html +++ b/ts/client/interfaces/Quote.html @@ -1 +1 @@ -Generated using TypeDoc
Quote | @blockworks-foundation/mango-v4 Interface Quote
\ No newline at end of file +Generated using TypeDoc
Quote | @blockworks-foundation/mango-v4 Interface Quote
\ No newline at end of file diff --git a/ts/client/interfaces/QuoteParams.html b/ts/client/interfaces/QuoteParams.html index 8bbd14794..d35784902 100644 --- a/ts/client/interfaces/QuoteParams.html +++ b/ts/client/interfaces/QuoteParams.html @@ -1 +1 @@ -Generated using TypeDoc
QuoteParams | @blockworks-foundation/mango-v4 Interface QuoteParams
\ No newline at end of file +Generated using TypeDoc
QuoteParams | @blockworks-foundation/mango-v4 Interface QuoteParams
\ No newline at end of file diff --git a/ts/client/interfaces/Risk.html b/ts/client/interfaces/Risk.html index 10df8f262..2b8328fc8 100644 --- a/ts/client/interfaces/Risk.html +++ b/ts/client/interfaces/Risk.html @@ -1 +1 @@ -Generated using TypeDoc
Risk | @blockworks-foundation/mango-v4 Interface Risk
Hierarchy
- Risk
Index
Properties
asset
Drop Type declaration
data: LiqorPriceImpact[]
title: string
asset
Rally Type declaration
data: LiqorPriceImpact[]
title: string
liqor
Equity Type declaration
data: AccountEquity[]
title: string
market
Maker Equity Type declaration
data: AccountEquity[]
title: string
perp
Drop Type declaration
data: PerpPositionsToBeLiquidated[]
title: string
perp
Rally Type declaration
data: PerpPositionsToBeLiquidated[]
title: string
usdc
Depeg Type declaration
data: LiqorPriceImpact[]
title: string
usdt
Depeg Type declaration
data: LiqorPriceImpact[]
title: string
\ No newline at end of file +Generated using TypeDoc
Risk | @blockworks-foundation/mango-v4 Interface Risk
Hierarchy
- Risk
Index
Properties
asset
Drop Type declaration
data: LiqorPriceImpact[]
title: string
asset
Rally Type declaration
data: LiqorPriceImpact[]
title: string
liqor
Equity Type declaration
data: AccountEquity[]
title: string
market
Maker Equity Type declaration
data: AccountEquity[]
title: string
perp
Drop Type declaration
data: PerpPositionsToBeLiquidated[]
title: string
perp
Rally Type declaration
data: PerpPositionsToBeLiquidated[]
title: string
usdc
Depeg Type declaration
data: LiqorPriceImpact[]
title: string
usdt
Depeg Type declaration
data: LiqorPriceImpact[]
title: string
\ No newline at end of file diff --git a/ts/client/interfaces/RouteInfo.html b/ts/client/interfaces/RouteInfo.html index 47db179fd..eb5ca08ff 100644 --- a/ts/client/interfaces/RouteInfo.html +++ b/ts/client/interfaces/RouteInfo.html @@ -1 +1 @@ -Generated using TypeDoc
RouteInfo | @blockworks-foundation/mango-v4 Interface RouteInfo
\ No newline at end of file +Generated using TypeDoc
RouteInfo | @blockworks-foundation/mango-v4 Interface RouteInfo
\ No newline at end of file diff --git a/ts/client/interfaces/SwapParams.html b/ts/client/interfaces/SwapParams.html index 44a7cae0e..b691d4e67 100644 --- a/ts/client/interfaces/SwapParams.html +++ b/ts/client/interfaces/SwapParams.html @@ -1,3 +1,3 @@ -Generated using TypeDoc
SwapParams | @blockworks-foundation/mango-v4 Interface SwapParams
Hierarchy
- SwapParams
Index
Properties
amount
+SwapParams | @blockworks-foundation/mango-v4 Interface SwapParams
Hierarchy
- SwapParams
Index
Properties
amount
amount is used for instruction and can be null when it is an intermediate swap, only the first swap has an amount
-destination
Mint Optional open
Orders Address Optional quote
Mint To Referrer source
Mint swap
Mode user
Destination Token Account user
Source Token Account user
Transfer Authority \ No newline at end of file +Generated using TypeDoc
destination
Mint Optional open
Orders Address Optional quote
Mint To Referrer source
Mint swap
Mode user
Destination Token Account user
Source Token Account user
Transfer Authority \ No newline at end of file diff --git a/ts/client/interfaces/TransactionFeeInfo.html b/ts/client/interfaces/TransactionFeeInfo.html index 682b8f0d9..fa51f3289 100644 --- a/ts/client/interfaces/TransactionFeeInfo.html +++ b/ts/client/interfaces/TransactionFeeInfo.html @@ -1 +1 @@ -Generated using TypeDoc
TransactionFeeInfo | @blockworks-foundation/mango-v4 Interface TransactionFeeInfo
\ No newline at end of file +Generated using TypeDoc
TransactionFeeInfo | @blockworks-foundation/mango-v4 Interface TransactionFeeInfo
\ No newline at end of fileGenerated using TypeDoc
- Preparing search index...
- The search index is not available
@blockworks-foundation/mango-v4Class BookSide
Hierarchy
Index
Constructors
Properties
Methods
Constructors
constructor
Parameters
client: MangoClient
perpMarket: PerpMarket
type: BookSideType
rootFixed: OrderTreeRoot
rootOraclePegged: OrderTreeRoot
orderTreeNodes: OrderTreeNodes
Optional maxBookDelay: number
Returns BookSide
Properties
client
now
order Tree Nodes
perp Market
root Fixed
root Oracle Pegged
type
Static Private INNER_ NODE_ TAG
Static Private LEAF_ NODE_ TAG
Methods
best
Returns undefined | PerpOrder
fixed Items
Returns Generator<PerpOrder, any, unknown>
get Impact Price Ui
Parameters
baseLots: BN
Returns undefined | number
get L2
Parameters
depth: number
Returns [number, number, BN, BN][]
get L2 Ui
Parameters
depth: number
Returns [number, number][]
items
iterates over all orders
-Returns Generator<PerpOrder, any, unknown>
items Valid
Returns Generator<PerpOrder, any, unknown>
items Valid
iterates over all orders, skips oracle pegged orders which are invalid due to oracle price crossing the peg limit, skips tif orders which are invalid due to tif having elapsed,
-Returns Generator<PerpOrder, any, unknown>
oracle Pegged Items
Returns Generator<PerpOrder, any, unknown>
Static from
Parameters
client: MangoClient
perpMarket: PerpMarket
bookSideType: BookSideType
obj: { nodes: OrderTreeNodes; roots: OrderTreeRoot[] }
nodes: OrderTreeNodes
roots: OrderTreeRoot[]
Returns BookSide
Static get Price From Key
Parameters
key: BN
Returns BN
Static to Inner Node
Parameters
client: MangoClient
data: [number]
Returns InnerNode
Static to Leaf Node
Parameters
client: MangoClient
data: [number]
Returns LeafNode
Generated using TypeDoc