UNPKG

@drift-labs/sdk

Version:
3,203 lines (3,202 loc) • 61.9 kB
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: [ { name: 'adminAuthority'; type: 'publicKey'; }, { name: 'validatorManagerAuthority'; type: 'publicKey'; }, { name: 'minStake'; type: 'u64'; }, { name: 'rewardFee'; type: { defined: 'Fee'; }; }, { name: 'liqPool'; type: { defined: 'LiqPoolInitializeData'; }; }, { name: 'additionalStakeRecordSpace'; type: 'u32'; }, { name: 'additionalValidatorRecordSpace'; type: 'u32'; }, { name: 'slotsForStakeDelta'; type: 'u64'; }, ]; }; }, { name: 'LiqPoolInitializeData'; type: { kind: 'struct'; fields: [ { name: 'lpLiquidityTarget'; type: 'u64'; }, { name: 'lpMaxFee'; type: { defined: 'Fee'; }; }, { name: 'lpMinFee'; type: { defined: 'Fee'; }; }, { name: 'lpTreasuryCut'; type: { defined: 'Fee'; }; }, ]; }; }, { name: 'ChangeAuthorityData'; type: { kind: 'struct'; fields: [ { name: 'admin'; type: { option: 'publicKey'; }; }, { name: 'validatorManager'; type: { option: 'publicKey'; }; }, { name: 'operationalSolAccount'; type: { option: 'publicKey'; }; }, { name: 'treasuryMsolAccount'; type: { option: 'publicKey'; }; }, ]; }; }, { name: 'ConfigLpParams'; type: { kind: 'struct'; fields: [ { name: 'minFee'; type: { option: { defined: 'Fee'; }; }; }, { name: 'maxFee'; type: { option: { defined: 'Fee'; }; }; }, { name: 'liquidityTarget'; type: { option: 'u64'; }; }, { name: 'treasuryCut'; type: { option: { defined: 'Fee'; }; }; }, ]; }; }, { name: 'ConfigMarinadeParams'; type: { kind: 'struct'; fields: [ { name: 'rewardsFee'; type: { option: { defined: 'Fee'; }; }; }, { name: 'slotsForStakeDelta'; type: { option: 'u64'; }; }, { name: 'minStake'; type: { option: 'u64'; }; }, { name: 'minDeposit'; type: { option: 'u64'; }; }, { name: 'minWithdraw'; type: { option: 'u64'; }; }, { name: 'stakingSolCap'; type: { option: 'u64'; }; }, { name: 'liquiditySolCap'; type: { option: 'u64'; }; }, { name: 'autoAddValidatorEnabled'; type: { option: 'bool'; }; }, ]; }; }, { name: 'CommonError'; type: { kind: 'enum'; variants: [ { name: 'WrongReserveOwner'; }, { name: 'NonEmptyReserveData'; }, { name: 'InvalidInitialReserveLamports'; }, { name: 'ZeroValidatorChunkSize'; }, { name: 'TooBigValidatorChunkSize'; }, { name: 'ZeroCreditChunkSize'; }, { name: 'TooBigCreditChunkSize'; }, { name: 'TooLowCreditFee'; }, { name: 'InvalidMintAuthority'; }, { name: 'MintHasInitialSupply'; }, { name: 'InvalidOwnerFeeState'; }, { name: 'InvalidProgramId'; }, { name: 'UnexpectedAccount'; }, { name: 'CalculationFailure'; }, { name: 'AccountWithLockup'; }, { name: 'NumberTooLow'; }, { name: 'NumberTooHigh'; }, { name: 'FeeTooHigh'; }, { name: 'FeesWrongWayRound'; }, { name: 'LiquidityTargetTooLow'; }, { name: 'TicketNotDue'; }, { name: 'TicketNotReady'; }, { name: 'WrongBeneficiary'; }, { name: 'StakeAccountNotUpdatedYet'; }, { name: 'StakeNotDelegated'; }, { name: 'StakeAccountIsEmergencyUnstaking'; }, { name: 'InsufficientLiquidity'; }, { name: 'InvalidValidator'; }, ]; }; }, ]; }; export const IDL: 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',