@drift-labs/sdk-browser
Version:
SDK for Drift Protocol
1,673 lines (1,672 loc) • 59 kB
TypeScript
export type MarinadeFinance = {
version: '0.1.0';
name: 'marinade_finance';
instructions: [
{
name: 'initialize';
accounts: [
{
name: 'creatorAuthority';
isMut: false;
isSigner: true;
},
{
name: 'state';
isMut: true;
isSigner: false;
},
{
name: 'reservePda';
isMut: false;
isSigner: false;
},
{
name: 'stakeList';
isMut: true;
isSigner: false;
},
{
name: 'validatorList';
isMut: true;
isSigner: false;
},
{
name: 'msolMint';
isMut: false;
isSigner: false;
},
{
name: 'operationalSolAccount';
isMut: false;
isSigner: false;
},
{
name: 'liqPool';
accounts: [
{
name: 'lpMint';
isMut: false;
isSigner: false;
},
{
name: 'solLegPda';
isMut: false;
isSigner: false;
},
{
name: 'msolLeg';
isMut: false;
isSigner: false;
}
];
},
{
name: 'treasuryMsolAccount';
isMut: false;
isSigner: false;
},
{
name: 'clock';
isMut: false;
isSigner: false;
},
{
name: 'rent';
isMut: false;
isSigner: false;
}
];
args: [
{
name: 'data';
type: {
defined: 'InitializeData';
};
}
];
},
{
name: 'changeAuthority';
accounts: [
{
name: 'state';
isMut: true;
isSigner: false;
},
{
name: 'adminAuthority';
isMut: false;
isSigner: true;
}
];
args: [
{
name: 'data';
type: {
defined: 'ChangeAuthorityData';
};
}
];
},
{
name: 'addValidator';
accounts: [
{
name: 'state';
isMut: true;
isSigner: false;
},
{
name: 'managerAuthority';
isMut: false;
isSigner: true;
},
{
name: 'validatorList';
isMut: true;
isSigner: false;
},
{
name: 'validatorVote';
isMut: false;
isSigner: false;
},
{
name: 'duplicationFlag';
isMut: true;
isSigner: false;
},
{
name: 'rentPayer';
isMut: true;
isSigner: true;
},
{
name: 'clock';
isMut: false;
isSigner: false;
},
{
name: 'rent';
isMut: false;
isSigner: false;
},
{
name: 'systemProgram';
isMut: false;
isSigner: false;
}
];
args: [
{
name: 'score';
type: 'u32';
}
];
},
{
name: 'removeValidator';
accounts: [
{
name: 'state';
isMut: true;
isSigner: false;
},
{
name: 'managerAuthority';
isMut: false;
isSigner: true;
},
{
name: 'validatorList';
isMut: true;
isSigner: false;
},
{
name: 'duplicationFlag';
isMut: true;
isSigner: false;
},
{
name: 'operationalSolAccount';
isMut: true;
isSigner: false;
}
];
args: [
{
name: 'index';
type: 'u32';
},
{
name: 'validatorVote';
type: 'publicKey';
}
];
},
{
name: 'setValidatorScore';
accounts: [
{
name: 'state';
isMut: true;
isSigner: false;
},
{
name: 'managerAuthority';
isMut: false;
isSigner: true;
},
{
name: 'validatorList';
isMut: true;
isSigner: false;
}
];
args: [
{
name: 'index';
type: 'u32';
},
{
name: 'validatorVote';
type: 'publicKey';
},
{
name: 'score';
type: 'u32';
}
];
},
{
name: 'configValidatorSystem';
accounts: [
{
name: 'state';
isMut: true;
isSigner: false;
},
{
name: 'managerAuthority';
isMut: false;
isSigner: true;
}
];
args: [
{
name: 'extraRuns';
type: 'u32';
}
];
},
{
name: 'deposit';
accounts: [
{
name: 'state';
isMut: true;
isSigner: false;
},
{
name: 'msolMint';
isMut: true;
isSigner: false;
},
{
name: 'liqPoolSolLegPda';
isMut: true;
isSigner: false;
},
{
name: 'liqPoolMsolLeg';
isMut: true;
isSigner: false;
},
{
name: 'liqPoolMsolLegAuthority';
isMut: false;
isSigner: false;
},
{
name: 'reservePda';
isMut: true;
isSigner: false;
},
{
name: 'transferFrom';
isMut: true;
isSigner: true;
},
{
name: 'mintTo';
isMut: true;
isSigner: false;
},
{
name: 'msolMintAuthority';
isMut: false;
isSigner: false;
},
{
name: 'systemProgram';
isMut: false;
isSigner: false;
},
{
name: 'tokenProgram';
isMut: false;
isSigner: false;
}
];
args: [
{
name: 'lamports';
type: 'u64';
}
];
},
{
name: 'depositStakeAccount';
accounts: [
{
name: 'state';
isMut: true;
isSigner: false;
},
{
name: 'validatorList';
isMut: true;
isSigner: false;
},
{
name: 'stakeList';
isMut: true;
isSigner: false;
},
{
name: 'stakeAccount';
isMut: true;
isSigner: false;
},
{
name: 'stakeAuthority';
isMut: false;
isSigner: true;
},
{
name: 'duplicationFlag';
isMut: true;
isSigner: false;
},
{
name: 'rentPayer';
isMut: true;
isSigner: true;
},
{
name: 'msolMint';
isMut: true;
isSigner: false;
},
{
name: 'mintTo';
isMut: true;
isSigner: false;
},
{
name: 'msolMintAuthority';
isMut: false;
isSigner: false;
},
{
name: 'clock';
isMut: false;
isSigner: false;
},
{
name: 'rent';
isMut: false;
isSigner: false;
},
{
name: 'systemProgram';
isMut: false;
isSigner: false;
},
{
name: 'tokenProgram';
isMut: false;
isSigner: false;
},
{
name: 'stakeProgram';
isMut: false;
isSigner: false;
}
];
args: [
{
name: 'validatorIndex';
type: 'u32';
}
];
},
{
name: 'liquidUnstake';
accounts: [
{
name: 'state';
isMut: true;
isSigner: false;
},
{
name: 'msolMint';
isMut: true;
isSigner: false;
},
{
name: 'liqPoolSolLegPda';
isMut: true;
isSigner: false;
},
{
name: 'liqPoolMsolLeg';
isMut: true;
isSigner: false;
},
{
name: 'treasuryMsolAccount';
isMut: true;
isSigner: false;
},
{
name: 'getMsolFrom';
isMut: true;
isSigner: false;
},
{
name: 'getMsolFromAuthority';
isMut: false;
isSigner: true;
},
{
name: 'transferSolTo';
isMut: true;
isSigner: false;
},
{
name: 'systemProgram';
isMut: false;
isSigner: false;
},
{
name: 'tokenProgram';
isMut: false;
isSigner: false;
}
];
args: [
{
name: 'msolAmount';
type: 'u64';
}
];
},
{
name: 'addLiquidity';
accounts: [
{
name: 'state';
isMut: true;
isSigner: false;
},
{
name: 'lpMint';
isMut: true;
isSigner: false;
},
{
name: 'lpMintAuthority';
isMut: false;
isSigner: false;
},
{
name: 'liqPoolMsolLeg';
isMut: false;
isSigner: false;
},
{
name: 'liqPoolSolLegPda';
isMut: true;
isSigner: false;
},
{
name: 'transferFrom';
isMut: true;
isSigner: true;
},
{
name: 'mintTo';
isMut: true;
isSigner: false;
},
{
name: 'systemProgram';
isMut: false;
isSigner: false;
},
{
name: 'tokenProgram';
isMut: false;
isSigner: false;
}
];
args: [
{
name: 'lamports';
type: 'u64';
}
];
},
{
name: 'removeLiquidity';
accounts: [
{
name: 'state';
isMut: true;
isSigner: false;
},
{
name: 'lpMint';
isMut: true;
isSigner: false;
},
{
name: 'burnFrom';
isMut: true;
isSigner: false;
},
{
name: 'burnFromAuthority';
isMut: false;
isSigner: true;
},
{
name: 'transferSolTo';
isMut: true;
isSigner: false;
},
{
name: 'transferMsolTo';
isMut: true;
isSigner: false;
},
{
name: 'liqPoolSolLegPda';
isMut: true;
isSigner: false;
},
{
name: 'liqPoolMsolLeg';
isMut: true;
isSigner: false;
},
{
name: 'liqPoolMsolLegAuthority';
isMut: false;
isSigner: false;
},
{
name: 'systemProgram';
isMut: false;
isSigner: false;
},
{
name: 'tokenProgram';
isMut: false;
isSigner: false;
}
];
args: [
{
name: 'tokens';
type: 'u64';
}
];
},
{
name: 'configLp';
accounts: [
{
name: 'state';
isMut: true;
isSigner: false;
},
{
name: 'adminAuthority';
isMut: false;
isSigner: true;
}
];
args: [
{
name: 'params';
type: {
defined: 'ConfigLpParams';
};
}
];
},
{
name: 'configMarinade';
accounts: [
{
name: 'state';
isMut: true;
isSigner: false;
},
{
name: 'adminAuthority';
isMut: false;
isSigner: true;
}
];
args: [
{
name: 'params';
type: {
defined: 'ConfigMarinadeParams';
};
}
];
},
{
name: 'orderUnstake';
accounts: [
{
name: 'state';
isMut: true;
isSigner: false;
},
{
name: 'msolMint';
isMut: true;
isSigner: false;
},
{
name: 'burnMsolFrom';
isMut: true;
isSigner: false;
},
{
name: 'burnMsolAuthority';
isMut: false;
isSigner: true;
},
{
name: 'newTicketAccount';
isMut: true;
isSigner: false;
},
{
name: 'clock';
isMut: false;
isSigner: false;
},
{
name: 'rent';
isMut: false;
isSigner: false;
},
{
name: 'tokenProgram';
isMut: false;
isSigner: false;
}
];
args: [
{
name: 'msolAmount';
type: 'u64';
}
];
},
{
name: 'claim';
accounts: [
{
name: 'state';
isMut: true;
isSigner: false;
},
{
name: 'reservePda';
isMut: true;
isSigner: false;
},
{
name: 'ticketAccount';
isMut: true;
isSigner: false;
},
{
name: 'transferSolTo';
isMut: true;
isSigner: false;
},
{
name: 'clock';
isMut: false;
isSigner: false;
},
{
name: 'systemProgram';
isMut: false;
isSigner: false;
}
];
args: [];
},
{
name: 'stakeReserve';
accounts: [
{
name: 'state';
isMut: true;
isSigner: false;
},
{
name: 'validatorList';
isMut: true;
isSigner: false;
},
{
name: 'stakeList';
isMut: true;
isSigner: false;
},
{
name: 'validatorVote';
isMut: true;
isSigner: false;
},
{
name: 'reservePda';
isMut: true;
isSigner: false;
},
{
name: 'stakeAccount';
isMut: true;
isSigner: false;
},
{
name: 'stakeDepositAuthority';
isMut: false;
isSigner: false;
},
{
name: 'clock';
isMut: false;
isSigner: false;
},
{
name: 'epochSchedule';
isMut: false;
isSigner: false;
},
{
name: 'rent';
isMut: false;
isSigner: false;
},
{
name: 'stakeHistory';
isMut: false;
isSigner: false;
},
{
name: 'stakeConfig';
isMut: false;
isSigner: false;
},
{
name: 'systemProgram';
isMut: false;
isSigner: false;
},
{
name: 'stakeProgram';
isMut: false;
isSigner: false;
}
];
args: [
{
name: 'validatorIndex';
type: 'u32';
}
];
},
{
name: 'updateActive';
accounts: [
{
name: 'common';
accounts: [
{
name: 'state';
isMut: true;
isSigner: false;
},
{
name: 'stakeList';
isMut: true;
isSigner: false;
},
{
name: 'stakeAccount';
isMut: true;
isSigner: false;
},
{
name: 'stakeWithdrawAuthority';
isMut: false;
isSigner: false;
},
{
name: 'reservePda';
isMut: true;
isSigner: false;
},
{
name: 'msolMint';
isMut: true;
isSigner: false;
},
{
name: 'msolMintAuthority';
isMut: false;
isSigner: false;
},
{
name: 'treasuryMsolAccount';
isMut: true;
isSigner: false;
},
{
name: 'clock';
isMut: false;
isSigner: false;
},
{
name: 'stakeHistory';
isMut: false;
isSigner: false;
},
{
name: 'stakeProgram';
isMut: false;
isSigner: false;
},
{
name: 'tokenProgram';
isMut: false;
isSigner: false;
}
];
},
{
name: 'validatorList';
isMut: true;
isSigner: false;
}
];
args: [
{
name: 'stakeIndex';
type: 'u32';
},
{
name: 'validatorIndex';
type: 'u32';
}
];
},
{
name: 'updateDeactivated';
accounts: [
{
name: 'common';
accounts: [
{
name: 'state';
isMut: true;
isSigner: false;
},
{
name: 'stakeList';
isMut: true;
isSigner: false;
},
{
name: 'stakeAccount';
isMut: true;
isSigner: false;
},
{
name: 'stakeWithdrawAuthority';
isMut: false;
isSigner: false;
},
{
name: 'reservePda';
isMut: true;
isSigner: false;
},
{
name: 'msolMint';
isMut: true;
isSigner: false;
},
{
name: 'msolMintAuthority';
isMut: false;
isSigner: false;
},
{
name: 'treasuryMsolAccount';
isMut: true;
isSigner: false;
},
{
name: 'clock';
isMut: false;
isSigner: false;
},
{
name: 'stakeHistory';
isMut: false;
isSigner: false;
},
{
name: 'stakeProgram';
isMut: false;
isSigner: false;
},
{
name: 'tokenProgram';
isMut: false;
isSigner: false;
}
];
},
{
name: 'operationalSolAccount';
isMut: true;
isSigner: false;
},
{
name: 'systemProgram';
isMut: false;
isSigner: false;
}
];
args: [
{
name: 'stakeIndex';
type: 'u32';
}
];
},
{
name: 'deactivateStake';
accounts: [
{
name: 'state';
isMut: true;
isSigner: false;
},
{
name: 'reservePda';
isMut: false;
isSigner: false;
},
{
name: 'validatorList';
isMut: true;
isSigner: false;
},
{
name: 'stakeList';
isMut: true;
isSigner: false;
},
{
name: 'stakeAccount';
isMut: true;
isSigner: false;
},
{
name: 'stakeDepositAuthority';
isMut: false;
isSigner: false;
},
{
name: 'splitStakeAccount';
isMut: true;
isSigner: true;
},
{
name: 'splitStakeRentPayer';
isMut: true;
isSigner: true;
},
{
name: 'clock';
isMut: false;
isSigner: false;
},
{
name: 'rent';
isMut: false;
isSigner: false;
},
{
name: 'epochSchedule';
isMut: false;
isSigner: false;
},
{
name: 'stakeHistory';
isMut: false;
isSigner: false;
},
{
name: 'systemProgram';
isMut: false;
isSigner: false;
},
{
name: 'stakeProgram';
isMut: false;
isSigner: false;
}
];
args: [
{
name: 'stakeIndex';
type: 'u32';
},
{
name: 'validatorIndex';
type: 'u32';
}
];
},
{
name: 'emergencyUnstake';
accounts: [
{
name: 'state';
isMut: true;
isSigner: false;
},
{
name: 'validatorManagerAuthority';
isMut: false;
isSigner: true;
},
{
name: 'validatorList';
isMut: true;
isSigner: false;
},
{
name: 'stakeList';
isMut: true;
isSigner: false;
},
{
name: 'stakeAccount';
isMut: true;
isSigner: false;
},
{
name: 'stakeDepositAuthority';
isMut: false;
isSigner: false;
},
{
name: 'clock';
isMut: false;
isSigner: false;
},
{
name: 'stakeProgram';
isMut: false;
isSigner: false;
}
];
args: [
{
name: 'stakeIndex';
type: 'u32';
},
{
name: 'validatorIndex';
type: 'u32';
}
];
},
{
name: 'partialUnstake';
accounts: [
{
name: 'state';
isMut: true;
isSigner: false;
},
{
name: 'validatorManagerAuthority';
isMut: false;
isSigner: true;
},
{
name: 'validatorList';
isMut: true;
isSigner: false;
},
{
name: 'stakeList';
isMut: true;
isSigner: false;
},
{
name: 'stakeAccount';
isMut: true;
isSigner: false;
},
{
name: 'stakeDepositAuthority';
isMut: false;
isSigner: false;
},
{
name: 'reservePda';
isMut: false;
isSigner: false;
},
{
name: 'splitStakeAccount';
isMut: true;
isSigner: true;
},
{
name: 'splitStakeRentPayer';
isMut: true;
isSigner: true;
},
{
name: 'clock';
isMut: false;
isSigner: false;
},
{
name: 'rent';
isMut: false;
isSigner: false;
},
{
name: 'stakeHistory';
isMut: false;
isSigner: false;
},
{
name: 'systemProgram';
isMut: false;
isSigner: false;
},
{
name: 'stakeProgram';
isMut: false;
isSigner: false;
}
];
args: [
{
name: 'stakeIndex';
type: 'u32';
},
{
name: 'validatorIndex';
type: 'u32';
},
{
name: 'desiredUnstakeAmount';
type: 'u64';
}
];
},
{
name: 'mergeStakes';
accounts: [
{
name: 'state';
isMut: true;
isSigner: false;
},
{
name: 'stakeList';
isMut: true;
isSigner: false;
},
{
name: 'validatorList';
isMut: true;
isSigner: false;
},
{
name: 'destinationStake';
isMut: true;
isSigner: false;
},
{
name: 'sourceStake';
isMut: true;
isSigner: false;
},
{
name: 'stakeDepositAuthority';
isMut: false;
isSigner: false;
},
{
name: 'stakeWithdrawAuthority';
isMut: false;
isSigner: false;
},
{
name: 'operationalSolAccount';
isMut: true;
isSigner: false;
},
{
name: 'clock';
isMut: false;
isSigner: false;
},
{
name: 'stakeHistory';
isMut: false;
isSigner: false;
},
{
name: 'stakeProgram';
isMut: false;
isSigner: false;
}
];
args: [
{
name: 'destinationStakeIndex';
type: 'u32';
},
{
name: 'sourceStakeIndex';
type: 'u32';
},
{
name: 'validatorIndex';
type: 'u32';
}
];
}
];
accounts: [
{
name: 'state';
type: {
kind: 'struct';
fields: [
{
name: 'msolMint';
type: 'publicKey';
},
{
name: 'adminAuthority';
type: 'publicKey';
},
{
name: 'operationalSolAccount';
type: 'publicKey';
},
{
name: 'treasuryMsolAccount';
type: 'publicKey';
},
{
name: 'reserveBumpSeed';
type: 'u8';
},
{
name: 'msolMintAuthorityBumpSeed';
type: 'u8';
},
{
name: 'rentExemptForTokenAcc';
type: 'u64';
},
{
name: 'rewardFee';
type: {
defined: 'Fee';
};
},
{
name: 'stakeSystem';
type: {
defined: 'StakeSystem';
};
},
{
name: 'validatorSystem';
type: {
defined: 'ValidatorSystem';
};
},
{
name: 'liqPool';
type: {
defined: 'LiqPool';
};
},
{
name: 'availableReserveBalance';
type: 'u64';
},
{
name: 'msolSupply';
type: 'u64';
},
{
name: 'msolPrice';
type: 'u64';
},
{
name: 'circulatingTicketCount';
docs: ['count tickets for delayed-unstake'];
type: 'u64';
},
{
name: 'circulatingTicketBalance';
docs: [
'total lamports amount of generated and not claimed yet tickets'
];
type: 'u64';
},
{
name: 'lentFromReserve';
type: 'u64';
},
{
name: 'minDeposit';
type: 'u64';
},
{
name: 'minWithdraw';
type: 'u64';
},
{
name: 'stakingSolCap';
type: 'u64';
},
{
name: 'emergencyCoolingDown';
type: 'u64';
}
];
};
},
{
name: 'ticketAccountData';
type: {
kind: 'struct';
fields: [
{
name: 'stateAddress';
type: 'publicKey';
},
{
name: 'beneficiary';
type: 'publicKey';
},
{
name: 'lamportsAmount';
type: 'u64';
},
{
name: 'createdEpoch';
type: 'u64';
}
];
};
}
];
types: [
{
name: 'LiqPool';
type: {
kind: 'struct';
fields: [
{
name: 'lpMint';
type: 'publicKey';
},
{
name: 'lpMintAuthorityBumpSeed';
type: 'u8';
},
{
name: 'solLegBumpSeed';
type: 'u8';
},
{
name: 'msolLegAuthorityBumpSeed';
type: 'u8';
},
{
name: 'msolLeg';
type: 'publicKey';
},
{
name: 'lpLiquidityTarget';
docs: [
'Liquidity target. If the Liquidity reach this amount, the fee reaches lp_min_discount_fee'
];
type: 'u64';
},
{
name: 'lpMaxFee';
docs: ['Liquidity pool max fee'];
type: {
defined: 'Fee';
};
},
{
name: 'lpMinFee';
docs: ['SOL/mSOL Liquidity pool min fee'];
type: {
defined: 'Fee';
};
},
{
name: 'treasuryCut';
docs: ['Treasury cut'];
type: {
defined: 'Fee';
};
},
{
name: 'lpSupply';
type: 'u64';
},
{
name: 'lentFromSolLeg';
type: 'u64';
},
{
name: 'liquiditySolCap';
type: 'u64';
}
];
};
},
{
name: 'List';
type: {
kind: 'struct';
fields: [
{
name: 'account';
type: 'publicKey';
},
{
name: 'itemSize';
type: 'u32';
},
{
name: 'count';
type: 'u32';
},
{
name: 'newAccount';
type: 'publicKey';
},
{
name: 'copiedCount';
type: 'u32';
}
];
};
},
{
name: 'StakeRecord';
type: {
kind: 'struct';
fields: [
{
name: 'stakeAccount';
type: 'publicKey';
},
{
name: 'lastUpdateDelegatedLamports';
type: 'u64';
},
{
name: 'lastUpdateEpoch';
type: 'u64';
},
{
name: 'isEmergencyUnstaking';
type: 'u8';
}
];
};
},
{
name: 'StakeSystem';
type: {
kind: 'struct';
fields: [
{
name: 'stakeList';
type: {
defined: 'List';
};
},
{
name: 'delayedUnstakeCoolingDown';
type: 'u64';
},
{
name: 'stakeDepositBumpSeed';
type: 'u8';
},
{
name: 'stakeWithdrawBumpSeed';
type: 'u8';
},
{
name: 'slotsForStakeDelta';
docs: [
'set by admin, how much slots before the end of the epoch, stake-delta can start'
];
type: 'u64';
},
{
name: 'lastStakeDeltaEpoch';
docs: [
'Marks the start of stake-delta operations, meaning that if somebody starts a delayed-unstake ticket',
'after this var is set with epoch_num the ticket will have epoch_created = current_epoch+1',
'(the user must wait one more epoch, because their unstake-delta will be execute in this epoch)'
];
type: 'u64';
},
{
name: 'minStake';
type: 'u64';
},
{
name: 'extraStakeDeltaRuns';
docs: [
'can be set by validator-manager-auth to allow a second run of stake-delta to stake late stakers in the last minute of the epoch',
"so we maximize user's rewards"
];
type: 'u32';
}
];
};
},
{
name: 'ValidatorRecord';
type: {
kind: 'struct';
fields: [
{
name: 'validatorAccount';
docs: ['Validator vote pubkey'];
type: 'publicKey';
},
{
name: 'activeBalance';
docs: ['Validator total balance in lamports'];
type: 'u64';
},
{
name: 'score';
type: 'u32';
},
{
name: 'lastStakeDeltaEpoch';
type: 'u64';
},
{
name: 'duplicationFlagBumpSeed';
type: 'u8';
}
];
};
},
{
name: 'ValidatorSystem';
type: {
kind: 'struct';
fields: [
{
name: 'validatorList';
type: {
defined: 'List';
};
},
{
name: 'managerAuthority';
type: 'publicKey';
},
{
name: 'totalValidatorScore';
type: 'u32';
},
{
name: 'totalActiveBalance';
docs: ['sum of all active lamports staked'];
type: 'u64';
},
{
name: 'autoAddValidatorEnabled';
docs: [
'allow & auto-add validator when a user deposits a stake-account of a non-listed validator'
];
type: 'u8';
}
];
};
},
{
name: 'Fee';
type: {
kind: 'struct';
fields: [
{
name: 'basisPoints';
type: 'u32';
}
];
};
},
{
name: 'InitializeData';
type: {
kind: 'struct';
fields: [
{