Skip to content

Instantly share code, notes, and snippets.

@Alec1017
Created November 5, 2024 02:20
Show Gist options
  • Save Alec1017/960bbdeb50db09f84530b9e864db900c to your computer and use it in GitHub Desktop.
Save Alec1017/960bbdeb50db09f84530b9e864db900c to your computer and use it in GitHub Desktop.
{"version":"0.1.0","name":"pump","instructions":[{"name":"initialize","docs":["Creates the global state."],"accounts":[{"name":"global","isMut":true,"isSigner":false},{"name":"user","isMut":true,"isSigner":true},{"name":"systemProgram","isMut":false,"isSigner":false}],"args":[]},{"name":"setParams","docs":["Sets the global state parameters."],"accounts":[{"name":"global","isMut":true,"isSigner":false},{"name":"user","isMut":true,"isSigner":true},{"name":"systemProgram","isMut":false,"isSigner":false},{"name":"eventAuthority","isMut":false,"isSigner":false},{"name":"program","isMut":false,"isSigner":false}],"args":[{"name":"feeRecipient","type":"publicKey"},{"name":"initialVirtualTokenReserves","type":"u64"},{"name":"initialVirtualSolReserves","type":"u64"},{"name":"initialRealTokenReserves","type":"u64"},{"name":"tokenTotalSupply","type":"u64"},{"name":"feeBasisPoints","type":"u64"}]},{"name":"create","docs":["Creates a new coin and bonding curve."],"accounts":[{"name":"mint","isMut":true,"isSigner":true},{"name":"mintAuthority","isMut":false,"isSigner":false},{"name":"bondingCurve","isMut":true,"isSigner":false},{"name":"associatedBondingCurve","isMut":true,"isSigner":false},{"name":"global","isMut":false,"isSigner":false},{"name":"mplTokenMetadata","isMut":false,"isSigner":false},{"name":"metadata","isMut":true,"isSigner":false},{"name":"user","isMut":true,"isSigner":true},{"name":"systemProgram","isMut":false,"isSigner":false},{"name":"tokenProgram","isMut":false,"isSigner":false},{"name":"associatedTokenProgram","isMut":false,"isSigner":false},{"name":"rent","isMut":false,"isSigner":false},{"name":"eventAuthority","isMut":false,"isSigner":false},{"name":"program","isMut":false,"isSigner":false}],"args":[{"name":"name","type":"string"},{"name":"symbol","type":"string"},{"name":"uri","type":"string"}]},{"name":"buy","docs":["Buys tokens from a bonding curve."],"accounts":[{"name":"global","isMut":false,"isSigner":false},{"name":"feeRecipient","isMut":true,"isSigner":false},{"name":"mint","isMut":false,"isSigner":false},{"name":"bondingCurve","isMut":true,"isSigner":false},{"name":"associatedBondingCurve","isMut":true,"isSigner":false},{"name":"associatedUser","isMut":true,"isSigner":false},{"name":"user","isMut":true,"isSigner":true},{"name":"systemProgram","isMut":false,"isSigner":false},{"name":"tokenProgram","isMut":false,"isSigner":false},{"name":"rent","isMut":false,"isSigner":false},{"name":"eventAuthority","isMut":false,"isSigner":false},{"name":"program","isMut":false,"isSigner":false}],"args":[{"name":"amount","type":"u64"},{"name":"maxSolCost","type":"u64"}]},{"name":"sell","docs":["Sells tokens into a bonding curve."],"accounts":[{"name":"global","isMut":false,"isSigner":false},{"name":"feeRecipient","isMut":true,"isSigner":false},{"name":"mint","isMut":false,"isSigner":false},{"name":"bondingCurve","isMut":true,"isSigner":false},{"name":"associatedBondingCurve","isMut":true,"isSigner":false},{"name":"associatedUser","isMut":true,"isSigner":false},{"name":"user","isMut":true,"isSigner":true},{"name":"systemProgram","isMut":false,"isSigner":false},{"name":"associatedTokenProgram","isMut":false,"isSigner":false},{"name":"tokenProgram","isMut":false,"isSigner":false},{"name":"eventAuthority","isMut":false,"isSigner":false},{"name":"program","isMut":false,"isSigner":false}],"args":[{"name":"amount","type":"u64"},{"name":"minSolOutput","type":"u64"}]},{"name":"withdraw","docs":["Allows the admin to withdraw liquidity for a migration once the bonding curve completes"],"accounts":[{"name":"global","isMut":false,"isSigner":false},{"name":"lastWithdraw","isMut":true,"isSigner":false},{"name":"mint","isMut":false,"isSigner":false},{"name":"bondingCurve","isMut":true,"isSigner":false},{"name":"associatedBondingCurve","isMut":true,"isSigner":false},{"name":"associatedUser","isMut":true,"isSigner":false},{"name":"user","isMut":true,"isSigner":true},{"name":"systemProgram","isMut":false,"isSigner":false},{"name":"tokenProgram","isMut":false,"isSigner":false},{"name":"rent","isMut":false,"isSigner":false},{"name":"eventAuthority","isMut":false,"isSigner":false},{"name":"program","isMut":false,"isSigner":false}],"args":[]}],"accounts":[{"name":"Global","type":{"kind":"struct","fields":[{"name":"initialized","type":"bool"},{"name":"authority","type":"publicKey"},{"name":"feeRecipient","type":"publicKey"},{"name":"initialVirtualTokenReserves","type":"u64"},{"name":"initialVirtualSolReserves","type":"u64"},{"name":"initialRealTokenReserves","type":"u64"},{"name":"tokenTotalSupply","type":"u64"},{"name":"feeBasisPoints","type":"u64"}]}},{"name":"LastWithdraw","type":{"kind":"struct","fields":[{"name":"lastWithdrawTimestamp","type":"i64"}]}},{"name":"BondingCurve","type":{"kind":"struct","fields":[{"name":"virtualTokenReserves","type":"u64"},{"name":"virtualSolReserves","type":"u64"},{"name":"realTokenReserves","type":"u64"},{"name":"realSolReserves","type":"u64"},{"name":"tokenTotalSupply","type":"u64"},{"name":"complete","type":"bool"}]}}],"events":[{"name":"CreateEvent","fields":[{"name":"name","type":"string","index":false},{"name":"symbol","type":"string","index":false},{"name":"uri","type":"string","index":false},{"name":"mint","type":"publicKey","index":false},{"name":"bondingCurve","type":"publicKey","index":false},{"name":"user","type":"publicKey","index":false}]},{"name":"TradeEvent","fields":[{"name":"mint","type":"publicKey","index":false},{"name":"solAmount","type":"u64","index":false},{"name":"tokenAmount","type":"u64","index":false},{"name":"isBuy","type":"bool","index":false},{"name":"user","type":"publicKey","index":false},{"name":"timestamp","type":"i64","index":false},{"name":"virtualSolReserves","type":"u64","index":false},{"name":"virtualTokenReserves","type":"u64","index":false},{"name":"realSolReserves","type":"u64","index":false},{"name":"realTokenReserves","type":"u64","index":false}]},{"name":"CompleteEvent","fields":[{"name":"user","type":"publicKey","index":false},{"name":"mint","type":"publicKey","index":false},{"name":"bondingCurve","type":"publicKey","index":false},{"name":"timestamp","type":"i64","index":false}]},{"name":"SetParamsEvent","fields":[{"name":"feeRecipient","type":"publicKey","index":false},{"name":"initialVirtualTokenReserves","type":"u64","index":false},{"name":"initialVirtualSolReserves","type":"u64","index":false},{"name":"initialRealTokenReserves","type":"u64","index":false},{"name":"tokenTotalSupply","type":"u64","index":false},{"name":"feeBasisPoints","type":"u64","index":false}]}],"errors":[{"code":6000,"name":"NotAuthorized","msg":"The given account is not authorized to execute this instruction."},{"code":6001,"name":"AlreadyInitialized","msg":"The program is already initialized."},{"code":6002,"name":"TooMuchSolRequired","msg":"slippage: Too much SOL required to buy the given amount of tokens."},{"code":6003,"name":"TooLittleSolReceived","msg":"slippage: Too little SOL received to sell the given amount of tokens."},{"code":6004,"name":"MintDoesNotMatchBondingCurve","msg":"The mint does not match the bonding curve."},{"code":6005,"name":"BondingCurveComplete","msg":"The bonding curve has completed and liquidity migrated to raydium."},{"code":6006,"name":"BondingCurveNotComplete","msg":"The bonding curve has not completed."},{"code":6007,"name":"NotInitialized","msg":"The program is not initialized."},{"code":6008,"name":"WithdrawTooFrequent","msg":"Withdraw too frequent"}]}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment