JetMarginPool: {
accounts: [{
name: "marginPool";
type: {
fields: [{
name: "version";
type: "u8";
}, {
name: "poolBump";
type: {
array: ["u8", 1];
};
}, {
name: "vault";
type: "publicKey";
}, {
name: "feeDestination";
type: "publicKey";
}, {
name: "depositNoteMint";
type: "publicKey";
}, {
name: "loanNoteMint";
type: "publicKey";
}, {
name: "tokenMint";
type: "publicKey";
}, {
name: "tokenPriceOracle";
type: "publicKey";
}, {
name: "address";
type: "publicKey";
}, {
name: "config";
type: {
defined: "MarginPoolConfig";
};
}, {
name: "borrowedTokens";
type: {
array: ["u8", 24];
};
}, {
name: "uncollectedFees";
type: {
array: ["u8", 24];
};
}, {
name: "depositTokens";
type: "u64";
}, {
name: "depositNotes";
type: "u64";
}, {
name: "loanNotes";
type: "u64";
}, {
name: "accruedUntil";
type: "i64";
}];
kind: "struct";
};
}];
errors: [{
code: 141100;
msg: "The pool is currently disabled";
name: "Disabled";
}, {
code: 141101;
msg: "Interest accrual is too far behind";
name: "InterestAccrualBehind";
}, {
code: 141102;
msg: "The pool currently only allows deposits";
name: "DepositsOnly";
}, {
code: 141103;
msg: "The pool does not have sufficient liquidity for the transaction";
name: "InsufficientLiquidity";
}, {
code: 141104;
msg: "An invalid amount has been supplied";
name: "InvalidAmount";
}, {
code: 141105;
name: "InvalidPrice";
}, {
code: 141106;
name: "InvalidOracle";
}, {
code: 141107;
msg: "An invalid `SetTo` value was given for a `TokenChange`";
name: "InvalidSetTo";
}, {
code: 141108;
name: "RepaymentExceedsTotalOutstanding";
}];
events: [{
fields: [{
index: false;
name: "marginPool";
type: "publicKey";
}, {
index: false;
name: "vault";
type: "publicKey";
}, {
index: false;
name: "feeDestination";
type: "publicKey";
}, {
index: false;
name: "depositNoteMint";
type: "publicKey";
}, {
index: false;
name: "loanNoteMint";
type: "publicKey";
}, {
index: false;
name: "tokenMint";
type: "publicKey";
}, {
index: false;
name: "authority";
type: "publicKey";
}, {
index: false;
name: "payer";
type: "publicKey";
}, {
index: false;
name: "summary";
type: {
defined: "MarginPoolSummary";
};
}];
name: "PoolCreated";
}, {
fields: [{
index: false;
name: "marginPool";
type: "publicKey";
}, {
index: false;
name: "pythProduct";
type: "publicKey";
}, {
index: false;
name: "pythPrice";
type: "publicKey";
}, {
index: false;
name: "config";
type: {
defined: "MarginPoolConfig";
};
}];
name: "PoolConfigured";
}, {
fields: [{
index: false;
name: "marginPool";
type: "publicKey";
}, {
index: false;
name: "user";
type: "publicKey";
}, {
index: false;
name: "source";
type: "publicKey";
}, {
index: false;
name: "destination";
type: "publicKey";
}, {
index: false;
name: "depositTokens";
type: "u64";
}, {
index: false;
name: "depositNotes";
type: "u64";
}, {
index: false;
name: "summary";
type: {
defined: "MarginPoolSummary";
};
}];
name: "Deposit";
}, {
fields: [{
index: false;
name: "marginPool";
type: "publicKey";
}, {
index: false;
name: "user";
type: "publicKey";
}, {
index: false;
name: "source";
type: "publicKey";
}, {
index: false;
name: "destination";
type: "publicKey";
}, {
index: false;
name: "withdrawTokens";
type: "u64";
}, {
index: false;
name: "withdrawNotes";
type: "u64";
}, {
index: false;
name: "summary";
type: {
defined: "MarginPoolSummary";
};
}];
name: "Withdraw";
}, {
fields: [{
index: false;
name: "marginPool";
type: "publicKey";
}, {
index: false;
name: "user";
type: "publicKey";
}, {
index: false;
name: "loanAccount";
type: "publicKey";
}, {
index: false;
name: "depositAccount";
type: "publicKey";
}, {
index: false;
name: "tokens";
type: "u64";
}, {
index: false;
name: "loanNotes";
type: "u64";
}, {
index: false;
name: "depositNotes";
type: "u64";
}, {
index: false;
name: "summary";
type: {
defined: "MarginPoolSummary";
};
}];
name: "MarginBorrow";
}, {
fields: [{
index: false;
name: "marginPool";
type: "publicKey";
}, {
index: false;
name: "user";
type: "publicKey";
}, {
index: false;
name: "loanAccount";
type: "publicKey";
}, {
index: false;
name: "depositAccount";
type: "publicKey";
}, {
index: false;
name: "repaidTokens";
type: "u64";
}, {
index: false;
name: "repaidLoanNotes";
type: "u64";
}, {
index: false;
name: "repaidDepositNotes";
type: "u64";
}, {
index: false;
name: "summary";
type: {
defined: "MarginPoolSummary";
};
}];
name: "MarginRepay";
}, {
fields: [{
index: false;
name: "marginPool";
type: "publicKey";
}, {
index: false;
name: "user";
type: "publicKey";
}, {
index: false;
name: "loanAccount";
type: "publicKey";
}, {
index: false;
name: "repaymentTokenAccount";
type: "publicKey";
}, {
index: false;
name: "repaidTokens";
type: "u64";
}, {
index: false;
name: "repaidLoanNotes";
type: "u64";
}, {
index: false;
name: "summary";
type: {
defined: "MarginPoolSummary";
};
}];
name: "Repay";
}, {
fields: [{
index: false;
name: "marginPool";
type: "publicKey";
}, {
index: false;
name: "feeNotesMinted";
type: "u64";
}, {
index: false;
name: "feeTokensClaimed";
type: "u64";
}, {
index: false;
name: "feeNotesBalance";
type: "u64";
}, {
index: false;
name: "feeTokensBalance";
type: "u64";
}, {
index: false;
name: "summary";
type: {
defined: "MarginPoolSummary";
};
}];
name: "Collect";
}];
instructions: [{
accounts: [{
isMut: true;
isSigner: false;
name: "marginPool";
}, {
isMut: true;
isSigner: false;
name: "vault";
}, {
isMut: true;
isSigner: false;
name: "depositNoteMint";
}, {
isMut: true;
isSigner: false;
name: "loanNoteMint";
}, {
isMut: false;
isSigner: false;
name: "tokenMint";
}, {
isMut: false;
isSigner: true;
name: "authority";
}, {
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: "feeDestination";
type: "publicKey";
}];
name: "createPool";
}, {
accounts: [{
isMut: true;
isSigner: false;
name: "marginPool";
}, {
isMut: false;
isSigner: false;
name: "authority";
}, {
isMut: false;
isSigner: false;
name: "pythProduct";
}, {
isMut: false;
isSigner: false;
name: "pythPrice";
}];
args: [{
name: "config";
type: {
option: {
defined: "MarginPoolConfig";
};
};
}];
name: "configure";
}, {
accounts: [{
isMut: true;
isSigner: false;
name: "marginPool";
}, {
isMut: true;
isSigner: false;
name: "vault";
}, {
isMut: true;
isSigner: false;
name: "feeDestination";
}, {
isMut: true;
isSigner: false;
name: "depositNoteMint";
}, {
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [];
name: "collect";
}, {
accounts: [{
isMut: true;
isSigner: false;
name: "marginPool";
}, {
isMut: true;
isSigner: false;
name: "vault";
}, {
isMut: true;
isSigner: false;
name: "depositNoteMint";
}, {
isMut: false;
isSigner: true;
name: "depositor";
}, {
isMut: true;
isSigner: false;
name: "source";
}, {
isMut: true;
isSigner: false;
name: "destination";
}, {
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "changeKind";
type: {
defined: "ChangeKind";
};
}, {
name: "amount";
type: "u64";
}];
name: "deposit";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "depositor";
}, {
isMut: true;
isSigner: false;
name: "marginPool";
}, {
isMut: true;
isSigner: false;
name: "vault";
}, {
isMut: true;
isSigner: false;
name: "depositNoteMint";
}, {
isMut: true;
isSigner: false;
name: "source";
}, {
isMut: true;
isSigner: false;
name: "destination";
}, {
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "changeKind";
type: {
defined: "ChangeKind";
};
}, {
name: "amount";
type: "u64";
}];
name: "withdraw";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "marginAccount";
}, {
isMut: true;
isSigner: false;
name: "marginPool";
}, {
isMut: true;
isSigner: false;
name: "loanNoteMint";
}, {
isMut: true;
isSigner: false;
name: "depositNoteMint";
}, {
isMut: true;
isSigner: false;
name: "loanAccount";
}, {
isMut: true;
isSigner: false;
name: "depositAccount";
}, {
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "changeKind";
type: {
defined: "ChangeKind";
};
}, {
name: "amount";
type: "u64";
}];
name: "marginBorrow";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "marginAccount";
}, {
isMut: true;
isSigner: false;
name: "marginPool";
}, {
isMut: true;
isSigner: false;
name: "loanNoteMint";
}, {
isMut: true;
isSigner: false;
name: "depositNoteMint";
}, {
isMut: true;
isSigner: false;
name: "loanAccount";
}, {
isMut: true;
isSigner: false;
name: "depositAccount";
}, {
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "changeKind";
type: {
defined: "ChangeKind";
};
}, {
name: "amount";
type: "u64";
}];
name: "marginRepay";
}, {
accounts: [{
isMut: true;
isSigner: false;
name: "marginPool";
}, {
isMut: true;
isSigner: false;
name: "loanNoteMint";
}, {
isMut: true;
isSigner: false;
name: "vault";
}, {
isMut: true;
isSigner: false;
name: "loanAccount";
}, {
isMut: true;
isSigner: false;
name: "repaymentTokenAccount";
}, {
isMut: false;
isSigner: true;
name: "repaymentAccountAuthority";
}, {
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "changeKind";
type: {
defined: "ChangeKind";
};
}, {
name: "amount";
type: "u64";
}];
name: "repay";
}, {
accounts: [{
isMut: false;
isSigner: false;
name: "marginAccount";
}, {
isMut: false;
isSigner: false;
name: "marginPool";
}, {
isMut: false;
isSigner: false;
name: "tokenPriceOracle";
}];
args: [];
name: "marginRefreshPosition";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "marginAccount";
}, {
isMut: false;
isSigner: false;
name: "positionTokenMetadata";
}, {
isMut: true;
isSigner: false;
name: "loanNoteAccount";
}, {
isMut: false;
isSigner: false;
name: "loanNoteMint";
}, {
isMut: false;
isSigner: false;
name: "marginPool";
}, {
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: "registerLoan";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "marginAccount";
}, {
isMut: true;
isSigner: false;
name: "loanNoteAccount";
}, {
isMut: false;
isSigner: false;
name: "loanNoteMint";
}, {
isMut: false;
isSigner: false;
name: "marginPool";
}, {
isMut: true;
isSigner: true;
name: "beneficiary";
}, {
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [];
name: "closeLoan";
}];
name: "jet_margin_pool";
types: [{
name: "MarginPoolSummary";
type: {
fields: [{
name: "borrowedTokens";
type: "u64";
}, {
name: "uncollectedFees";
type: "u64";
}, {
name: "depositTokens";
type: "u64";
}, {
name: "depositNotes";
type: "u64";
}, {
name: "loanNotes";
type: "u64";
}, {
name: "accruedUntil";
type: "i64";
}];
kind: "struct";
};
}, {
name: "MarginPoolConfig";
type: {
fields: [{
name: "flags";
type: "u64";
}, {
name: "utilizationRate1";
type: "u16";
}, {
name: "utilizationRate2";
type: "u16";
}, {
name: "borrowRate0";
type: "u16";
}, {
name: "borrowRate1";
type: "u16";
}, {
name: "borrowRate2";
type: "u16";
}, {
name: "borrowRate3";
type: "u16";
}, {
name: "managementFeeRate";
type: "u16";
}, {
name: "managementFeeCollectThreshold";
type: "u64";
}];
kind: "struct";
};
}, {
name: "TokenChange";
type: {
fields: [{
name: "kind";
type: {
defined: "ChangeKind";
};
}, {
name: "tokens";
type: "u64";
}];
kind: "struct";
};
}, {
name: "Amount";
type: {
fields: [{
name: "kind";
type: {
defined: "AmountKind";
};
}, {
name: "value";
type: "u64";
}];
kind: "struct";
};
}, {
name: "PoolAction";
type: {
kind: "enum";
variants: [{
name: "Borrow";
}, {
name: "Deposit";
}, {
name: "Repay";
}, {
name: "Withdraw";
}];
};
}, {
name: "RoundingDirection";
type: {
kind: "enum";
variants: [{
name: "Down";
}, {
name: "Up";
}];
};
}, {
name: "ChangeKind";
type: {
kind: "enum";
variants: [{
name: "SetTo";
}, {
name: "ShiftBy";
}];
};
}, {
name: "AmountKind";
type: {
kind: "enum";
variants: [{
name: "Tokens";
}, {
name: "Notes";
}];
};
}];
version: "0.1.0";
}
Type declaration
-
accounts: [{
name: "marginPool";
type: {
fields: [{
name: "version";
type: "u8";
}, {
name: "poolBump";
type: {
array: ["u8", 1];
};
}, {
name: "vault";
type: "publicKey";
}, {
name: "feeDestination";
type: "publicKey";
}, {
name: "depositNoteMint";
type: "publicKey";
}, {
name: "loanNoteMint";
type: "publicKey";
}, {
name: "tokenMint";
type: "publicKey";
}, {
name: "tokenPriceOracle";
type: "publicKey";
}, {
name: "address";
type: "publicKey";
}, {
name: "config";
type: {
defined: "MarginPoolConfig";
};
}, {
name: "borrowedTokens";
type: {
array: ["u8", 24];
};
}, {
name: "uncollectedFees";
type: {
array: ["u8", 24];
};
}, {
name: "depositTokens";
type: "u64";
}, {
name: "depositNotes";
type: "u64";
}, {
name: "loanNotes";
type: "u64";
}, {
name: "accruedUntil";
type: "i64";
}];
kind: "struct";
};
}]
-
errors: [{
code: 141100;
msg: "The pool is currently disabled";
name: "Disabled";
}, {
code: 141101;
msg: "Interest accrual is too far behind";
name: "InterestAccrualBehind";
}, {
code: 141102;
msg: "The pool currently only allows deposits";
name: "DepositsOnly";
}, {
code: 141103;
msg: "The pool does not have sufficient liquidity for the transaction";
name: "InsufficientLiquidity";
}, {
code: 141104;
msg: "An invalid amount has been supplied";
name: "InvalidAmount";
}, {
code: 141105;
name: "InvalidPrice";
}, {
code: 141106;
name: "InvalidOracle";
}, {
code: 141107;
msg: "An invalid `SetTo` value was given for a `TokenChange`";
name: "InvalidSetTo";
}, {
code: 141108;
name: "RepaymentExceedsTotalOutstanding";
}]
-
events: [{
fields: [{
index: false;
name: "marginPool";
type: "publicKey";
}, {
index: false;
name: "vault";
type: "publicKey";
}, {
index: false;
name: "feeDestination";
type: "publicKey";
}, {
index: false;
name: "depositNoteMint";
type: "publicKey";
}, {
index: false;
name: "loanNoteMint";
type: "publicKey";
}, {
index: false;
name: "tokenMint";
type: "publicKey";
}, {
index: false;
name: "authority";
type: "publicKey";
}, {
index: false;
name: "payer";
type: "publicKey";
}, {
index: false;
name: "summary";
type: {
defined: "MarginPoolSummary";
};
}];
name: "PoolCreated";
}, {
fields: [{
index: false;
name: "marginPool";
type: "publicKey";
}, {
index: false;
name: "pythProduct";
type: "publicKey";
}, {
index: false;
name: "pythPrice";
type: "publicKey";
}, {
index: false;
name: "config";
type: {
defined: "MarginPoolConfig";
};
}];
name: "PoolConfigured";
}, {
fields: [{
index: false;
name: "marginPool";
type: "publicKey";
}, {
index: false;
name: "user";
type: "publicKey";
}, {
index: false;
name: "source";
type: "publicKey";
}, {
index: false;
name: "destination";
type: "publicKey";
}, {
index: false;
name: "depositTokens";
type: "u64";
}, {
index: false;
name: "depositNotes";
type: "u64";
}, {
index: false;
name: "summary";
type: {
defined: "MarginPoolSummary";
};
}];
name: "Deposit";
}, {
fields: [{
index: false;
name: "marginPool";
type: "publicKey";
}, {
index: false;
name: "user";
type: "publicKey";
}, {
index: false;
name: "source";
type: "publicKey";
}, {
index: false;
name: "destination";
type: "publicKey";
}, {
index: false;
name: "withdrawTokens";
type: "u64";
}, {
index: false;
name: "withdrawNotes";
type: "u64";
}, {
index: false;
name: "summary";
type: {
defined: "MarginPoolSummary";
};
}];
name: "Withdraw";
}, {
fields: [{
index: false;
name: "marginPool";
type: "publicKey";
}, {
index: false;
name: "user";
type: "publicKey";
}, {
index: false;
name: "loanAccount";
type: "publicKey";
}, {
index: false;
name: "depositAccount";
type: "publicKey";
}, {
index: false;
name: "tokens";
type: "u64";
}, {
index: false;
name: "loanNotes";
type: "u64";
}, {
index: false;
name: "depositNotes";
type: "u64";
}, {
index: false;
name: "summary";
type: {
defined: "MarginPoolSummary";
};
}];
name: "MarginBorrow";
}, {
fields: [{
index: false;
name: "marginPool";
type: "publicKey";
}, {
index: false;
name: "user";
type: "publicKey";
}, {
index: false;
name: "loanAccount";
type: "publicKey";
}, {
index: false;
name: "depositAccount";
type: "publicKey";
}, {
index: false;
name: "repaidTokens";
type: "u64";
}, {
index: false;
name: "repaidLoanNotes";
type: "u64";
}, {
index: false;
name: "repaidDepositNotes";
type: "u64";
}, {
index: false;
name: "summary";
type: {
defined: "MarginPoolSummary";
};
}];
name: "MarginRepay";
}, {
fields: [{
index: false;
name: "marginPool";
type: "publicKey";
}, {
index: false;
name: "user";
type: "publicKey";
}, {
index: false;
name: "loanAccount";
type: "publicKey";
}, {
index: false;
name: "repaymentTokenAccount";
type: "publicKey";
}, {
index: false;
name: "repaidTokens";
type: "u64";
}, {
index: false;
name: "repaidLoanNotes";
type: "u64";
}, {
index: false;
name: "summary";
type: {
defined: "MarginPoolSummary";
};
}];
name: "Repay";
}, {
fields: [{
index: false;
name: "marginPool";
type: "publicKey";
}, {
index: false;
name: "feeNotesMinted";
type: "u64";
}, {
index: false;
name: "feeTokensClaimed";
type: "u64";
}, {
index: false;
name: "feeNotesBalance";
type: "u64";
}, {
index: false;
name: "feeTokensBalance";
type: "u64";
}, {
index: false;
name: "summary";
type: {
defined: "MarginPoolSummary";
};
}];
name: "Collect";
}]
-
instructions: [{
accounts: [{
isMut: true;
isSigner: false;
name: "marginPool";
}, {
isMut: true;
isSigner: false;
name: "vault";
}, {
isMut: true;
isSigner: false;
name: "depositNoteMint";
}, {
isMut: true;
isSigner: false;
name: "loanNoteMint";
}, {
isMut: false;
isSigner: false;
name: "tokenMint";
}, {
isMut: false;
isSigner: true;
name: "authority";
}, {
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: "feeDestination";
type: "publicKey";
}];
name: "createPool";
}, {
accounts: [{
isMut: true;
isSigner: false;
name: "marginPool";
}, {
isMut: false;
isSigner: false;
name: "authority";
}, {
isMut: false;
isSigner: false;
name: "pythProduct";
}, {
isMut: false;
isSigner: false;
name: "pythPrice";
}];
args: [{
name: "config";
type: {
option: {
defined: "MarginPoolConfig";
};
};
}];
name: "configure";
}, {
accounts: [{
isMut: true;
isSigner: false;
name: "marginPool";
}, {
isMut: true;
isSigner: false;
name: "vault";
}, {
isMut: true;
isSigner: false;
name: "feeDestination";
}, {
isMut: true;
isSigner: false;
name: "depositNoteMint";
}, {
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [];
name: "collect";
}, {
accounts: [{
isMut: true;
isSigner: false;
name: "marginPool";
}, {
isMut: true;
isSigner: false;
name: "vault";
}, {
isMut: true;
isSigner: false;
name: "depositNoteMint";
}, {
isMut: false;
isSigner: true;
name: "depositor";
}, {
isMut: true;
isSigner: false;
name: "source";
}, {
isMut: true;
isSigner: false;
name: "destination";
}, {
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "changeKind";
type: {
defined: "ChangeKind";
};
}, {
name: "amount";
type: "u64";
}];
name: "deposit";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "depositor";
}, {
isMut: true;
isSigner: false;
name: "marginPool";
}, {
isMut: true;
isSigner: false;
name: "vault";
}, {
isMut: true;
isSigner: false;
name: "depositNoteMint";
}, {
isMut: true;
isSigner: false;
name: "source";
}, {
isMut: true;
isSigner: false;
name: "destination";
}, {
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "changeKind";
type: {
defined: "ChangeKind";
};
}, {
name: "amount";
type: "u64";
}];
name: "withdraw";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "marginAccount";
}, {
isMut: true;
isSigner: false;
name: "marginPool";
}, {
isMut: true;
isSigner: false;
name: "loanNoteMint";
}, {
isMut: true;
isSigner: false;
name: "depositNoteMint";
}, {
isMut: true;
isSigner: false;
name: "loanAccount";
}, {
isMut: true;
isSigner: false;
name: "depositAccount";
}, {
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "changeKind";
type: {
defined: "ChangeKind";
};
}, {
name: "amount";
type: "u64";
}];
name: "marginBorrow";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "marginAccount";
}, {
isMut: true;
isSigner: false;
name: "marginPool";
}, {
isMut: true;
isSigner: false;
name: "loanNoteMint";
}, {
isMut: true;
isSigner: false;
name: "depositNoteMint";
}, {
isMut: true;
isSigner: false;
name: "loanAccount";
}, {
isMut: true;
isSigner: false;
name: "depositAccount";
}, {
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "changeKind";
type: {
defined: "ChangeKind";
};
}, {
name: "amount";
type: "u64";
}];
name: "marginRepay";
}, {
accounts: [{
isMut: true;
isSigner: false;
name: "marginPool";
}, {
isMut: true;
isSigner: false;
name: "loanNoteMint";
}, {
isMut: true;
isSigner: false;
name: "vault";
}, {
isMut: true;
isSigner: false;
name: "loanAccount";
}, {
isMut: true;
isSigner: false;
name: "repaymentTokenAccount";
}, {
isMut: false;
isSigner: true;
name: "repaymentAccountAuthority";
}, {
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [{
name: "changeKind";
type: {
defined: "ChangeKind";
};
}, {
name: "amount";
type: "u64";
}];
name: "repay";
}, {
accounts: [{
isMut: false;
isSigner: false;
name: "marginAccount";
}, {
isMut: false;
isSigner: false;
name: "marginPool";
}, {
isMut: false;
isSigner: false;
name: "tokenPriceOracle";
}];
args: [];
name: "marginRefreshPosition";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "marginAccount";
}, {
isMut: false;
isSigner: false;
name: "positionTokenMetadata";
}, {
isMut: true;
isSigner: false;
name: "loanNoteAccount";
}, {
isMut: false;
isSigner: false;
name: "loanNoteMint";
}, {
isMut: false;
isSigner: false;
name: "marginPool";
}, {
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: "registerLoan";
}, {
accounts: [{
isMut: false;
isSigner: true;
name: "marginAccount";
}, {
isMut: true;
isSigner: false;
name: "loanNoteAccount";
}, {
isMut: false;
isSigner: false;
name: "loanNoteMint";
}, {
isMut: false;
isSigner: false;
name: "marginPool";
}, {
isMut: true;
isSigner: true;
name: "beneficiary";
}, {
isMut: false;
isSigner: false;
name: "tokenProgram";
}];
args: [];
name: "closeLoan";
}]
-
name: "jet_margin_pool"
-
types: [{
name: "MarginPoolSummary";
type: {
fields: [{
name: "borrowedTokens";
type: "u64";
}, {
name: "uncollectedFees";
type: "u64";
}, {
name: "depositTokens";
type: "u64";
}, {
name: "depositNotes";
type: "u64";
}, {
name: "loanNotes";
type: "u64";
}, {
name: "accruedUntil";
type: "i64";
}];
kind: "struct";
};
}, {
name: "MarginPoolConfig";
type: {
fields: [{
name: "flags";
type: "u64";
}, {
name: "utilizationRate1";
type: "u16";
}, {
name: "utilizationRate2";
type: "u16";
}, {
name: "borrowRate0";
type: "u16";
}, {
name: "borrowRate1";
type: "u16";
}, {
name: "borrowRate2";
type: "u16";
}, {
name: "borrowRate3";
type: "u16";
}, {
name: "managementFeeRate";
type: "u16";
}, {
name: "managementFeeCollectThreshold";
type: "u64";
}];
kind: "struct";
};
}, {
name: "TokenChange";
type: {
fields: [{
name: "kind";
type: {
defined: "ChangeKind";
};
}, {
name: "tokens";
type: "u64";
}];
kind: "struct";
};
}, {
name: "Amount";
type: {
fields: [{
name: "kind";
type: {
defined: "AmountKind";
};
}, {
name: "value";
type: "u64";
}];
kind: "struct";
};
}, {
name: "PoolAction";
type: {
kind: "enum";
variants: [{
name: "Borrow";
}, {
name: "Deposit";
}, {
name: "Repay";
}, {
name: "Withdraw";
}];
};
}, {
name: "RoundingDirection";
type: {
kind: "enum";
variants: [{
name: "Down";
}, {
name: "Up";
}];
};
}, {
name: "ChangeKind";
type: {
kind: "enum";
variants: [{
name: "SetTo";
}, {
name: "ShiftBy";
}];
};
}, {
name: "AmountKind";
type: {
kind: "enum";
variants: [{
name: "Tokens";
}, {
name: "Notes";
}];
};
}]
-
version: "0.1.0"