Type alias JetMarginPool

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"

Generated using TypeDoc