{
    "address": "pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA",
    "metadata": {
        "name": "pumpAmm",
        "version": "0.1.0",
        "spec": "0.1.0",
        "description": "Created with Anchor & https://github.com/vvizardev"
    },
    "instructions": [
        {
            "name": "buy",
            "discriminator": [
                102,
                6,
                61,
                18,
                1,
                218,
                235,
                234
            ],
            "accounts": [
                {
                    "name": "pool"
                },
                {
                    "name": "user",
                    "writable": true,
                    "signer": true
                },
                {
                    "name": "globalConfig"
                },
                {
                    "name": "baseMint",
                    "relations": [
                        "pool"
                    ]
                },
                {
                    "name": "quoteMint",
                    "relations": [
                        "pool"
                    ]
                },
                {
                    "name": "userBaseTokenAccount",
                    "writable": true
                },
                {
                    "name": "userQuoteTokenAccount",
                    "writable": true
                },
                {
                    "name": "poolBaseTokenAccount",
                    "writable": true,
                    "relations": [
                        "pool"
                    ]
                },
                {
                    "name": "poolQuoteTokenAccount",
                    "writable": true,
                    "relations": [
                        "pool"
                    ]
                },
                {
                    "name": "protocolFeeRecipient"
                },
                {
                    "name": "protocolFeeRecipientTokenAccount",
                    "writable": true,
                    "pda": {
                        "seeds": [
                            {
                                "kind": "account",
                                "path": "protocolFeeRecipient"
                            },
                            {
                                "kind": "account",
                                "path": "quoteTokenProgram"
                            },
                            {
                                "kind": "account",
                                "path": "quoteMint"
                            }
                        ],
                        "program": {
                            "kind": "const",
                            "value": [
                                140,
                                151,
                                37,
                                143,
                                78,
                                36,
                                137,
                                241,
                                187,
                                61,
                                16,
                                41,
                                20,
                                142,
                                13,
                                131,
                                11,
                                90,
                                19,
                                153,
                                218,
                                255,
                                16,
                                132,
                                4,
                                142,
                                123,
                                216,
                                219,
                                233,
                                248,
                                89
                            ]
                        }
                    }
                },
                {
                    "name": "baseTokenProgram"
                },
                {
                    "name": "quoteTokenProgram"
                },
                {
                    "name": "systemProgram",
                    "address": "11111111111111111111111111111111"
                },
                {
                    "name": "associatedTokenProgram",
                    "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
                },
                {
                    "name": "eventAuthority",
                    "pda": {
                        "seeds": [
                            {
                                "kind": "const",
                                "value": [
                                    95,
                                    95,
                                    101,
                                    118,
                                    101,
                                    110,
                                    116,
                                    95,
                                    97,
                                    117,
                                    116,
                                    104,
                                    111,
                                    114,
                                    105,
                                    116,
                                    121
                                ]
                            }
                        ]
                    }
                },
                {
                    "name": "program"
                }
            ],
            "args": [
                {
                    "name": "baseAmountOut",
                    "type": "u64"
                },
                {
                    "name": "maxQuoteAmountIn",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "createConfig",
            "discriminator": [
                201,
                207,
                243,
                114,
                75,
                111,
                47,
                189
            ],
            "accounts": [
                {
                    "name": "admin",
                    "writable": true,
                    "signer": true,
                    "address": "px7JjkgjgQXMMHi2ff9QB68zmp4TDxwzeuTqpC48Pmm"
                },
                {
                    "name": "globalConfig",
                    "writable": true,
                    "pda": {
                        "seeds": [
                            {
                                "kind": "const",
                                "value": [
                                    103,
                                    108,
                                    111,
                                    98,
                                    97,
                                    108,
                                    95,
                                    99,
                                    111,
                                    110,
                                    102,
                                    105,
                                    103
                                ]
                            }
                        ]
                    }
                },
                {
                    "name": "systemProgram",
                    "address": "11111111111111111111111111111111"
                },
                {
                    "name": "eventAuthority",
                    "pda": {
                        "seeds": [
                            {
                                "kind": "const",
                                "value": [
                                    95,
                                    95,
                                    101,
                                    118,
                                    101,
                                    110,
                                    116,
                                    95,
                                    97,
                                    117,
                                    116,
                                    104,
                                    111,
                                    114,
                                    105,
                                    116,
                                    121
                                ]
                            }
                        ]
                    }
                },
                {
                    "name": "program"
                }
            ],
            "args": [
                {
                    "name": "lpFeeBasisPoints",
                    "type": "u64"
                },
                {
                    "name": "protocolFeeBasisPoints",
                    "type": "u64"
                },
                {
                    "name": "protocolFeeRecipients",
                    "type": {
                        "array": [
                            "pubkey",
                            8
                        ]
                    }
                }
            ]
        },
        {
            "name": "createPool",
            "discriminator": [
                233,
                146,
                209,
                142,
                207,
                104,
                64,
                188
            ],
            "accounts": [
                {
                    "name": "pool",
                    "writable": true,
                    "pda": {
                        "seeds": [
                            {
                                "kind": "const",
                                "value": [
                                    112,
                                    111,
                                    111,
                                    108
                                ]
                            },
                            {
                                "kind": "arg",
                                "path": "index"
                            },
                            {
                                "kind": "account",
                                "path": "creator"
                            },
                            {
                                "kind": "account",
                                "path": "baseMint"
                            },
                            {
                                "kind": "account",
                                "path": "quoteMint"
                            }
                        ]
                    }
                },
                {
                    "name": "globalConfig"
                },
                {
                    "name": "creator",
                    "writable": true,
                    "signer": true
                },
                {
                    "name": "baseMint"
                },
                {
                    "name": "quoteMint"
                },
                {
                    "name": "lpMint",
                    "writable": true,
                    "pda": {
                        "seeds": [
                            {
                                "kind": "const",
                                "value": [
                                    112,
                                    111,
                                    111,
                                    108,
                                    95,
                                    108,
                                    112,
                                    95,
                                    109,
                                    105,
                                    110,
                                    116
                                ]
                            },
                            {
                                "kind": "account",
                                "path": "pool"
                            }
                        ]
                    }
                },
                {
                    "name": "userBaseTokenAccount",
                    "writable": true
                },
                {
                    "name": "userQuoteTokenAccount",
                    "writable": true
                },
                {
                    "name": "userPoolTokenAccount",
                    "writable": true,
                    "pda": {
                        "seeds": [
                            {
                                "kind": "account",
                                "path": "creator"
                            },
                            {
                                "kind": "account",
                                "path": "token2022Program"
                            },
                            {
                                "kind": "account",
                                "path": "lpMint"
                            }
                        ],
                        "program": {
                            "kind": "const",
                            "value": [
                                140,
                                151,
                                37,
                                143,
                                78,
                                36,
                                137,
                                241,
                                187,
                                61,
                                16,
                                41,
                                20,
                                142,
                                13,
                                131,
                                11,
                                90,
                                19,
                                153,
                                218,
                                255,
                                16,
                                132,
                                4,
                                142,
                                123,
                                216,
                                219,
                                233,
                                248,
                                89
                            ]
                        }
                    }
                },
                {
                    "name": "poolBaseTokenAccount",
                    "writable": true,
                    "pda": {
                        "seeds": [
                            {
                                "kind": "account",
                                "path": "pool"
                            },
                            {
                                "kind": "account",
                                "path": "baseTokenProgram"
                            },
                            {
                                "kind": "account",
                                "path": "baseMint"
                            }
                        ],
                        "program": {
                            "kind": "const",
                            "value": [
                                140,
                                151,
                                37,
                                143,
                                78,
                                36,
                                137,
                                241,
                                187,
                                61,
                                16,
                                41,
                                20,
                                142,
                                13,
                                131,
                                11,
                                90,
                                19,
                                153,
                                218,
                                255,
                                16,
                                132,
                                4,
                                142,
                                123,
                                216,
                                219,
                                233,
                                248,
                                89
                            ]
                        }
                    }
                },
                {
                    "name": "poolQuoteTokenAccount",
                    "writable": true,
                    "pda": {
                        "seeds": [
                            {
                                "kind": "account",
                                "path": "pool"
                            },
                            {
                                "kind": "account",
                                "path": "quoteTokenProgram"
                            },
                            {
                                "kind": "account",
                                "path": "quoteMint"
                            }
                        ],
                        "program": {
                            "kind": "const",
                            "value": [
                                140,
                                151,
                                37,
                                143,
                                78,
                                36,
                                137,
                                241,
                                187,
                                61,
                                16,
                                41,
                                20,
                                142,
                                13,
                                131,
                                11,
                                90,
                                19,
                                153,
                                218,
                                255,
                                16,
                                132,
                                4,
                                142,
                                123,
                                216,
                                219,
                                233,
                                248,
                                89
                            ]
                        }
                    }
                },
                {
                    "name": "systemProgram",
                    "address": "11111111111111111111111111111111"
                },
                {
                    "name": "token2022Program",
                    "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
                },
                {
                    "name": "baseTokenProgram"
                },
                {
                    "name": "quoteTokenProgram"
                },
                {
                    "name": "associatedTokenProgram",
                    "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
                },
                {
                    "name": "eventAuthority",
                    "pda": {
                        "seeds": [
                            {
                                "kind": "const",
                                "value": [
                                    95,
                                    95,
                                    101,
                                    118,
                                    101,
                                    110,
                                    116,
                                    95,
                                    97,
                                    117,
                                    116,
                                    104,
                                    111,
                                    114,
                                    105,
                                    116,
                                    121
                                ]
                            }
                        ]
                    }
                },
                {
                    "name": "program"
                }
            ],
            "args": [
                {
                    "name": "index",
                    "type": "u16"
                },
                {
                    "name": "baseAmountIn",
                    "type": "u64"
                },
                {
                    "name": "quoteAmountIn",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "deposit",
            "discriminator": [
                242,
                35,
                198,
                137,
                82,
                225,
                242,
                182
            ],
            "accounts": [
                {
                    "name": "pool",
                    "writable": true
                },
                {
                    "name": "globalConfig"
                },
                {
                    "name": "user",
                    "signer": true
                },
                {
                    "name": "baseMint",
                    "relations": [
                        "pool"
                    ]
                },
                {
                    "name": "quoteMint",
                    "relations": [
                        "pool"
                    ]
                },
                {
                    "name": "lpMint",
                    "writable": true,
                    "relations": [
                        "pool"
                    ]
                },
                {
                    "name": "userBaseTokenAccount",
                    "writable": true
                },
                {
                    "name": "userQuoteTokenAccount",
                    "writable": true
                },
                {
                    "name": "userPoolTokenAccount",
                    "writable": true
                },
                {
                    "name": "poolBaseTokenAccount",
                    "writable": true,
                    "relations": [
                        "pool"
                    ]
                },
                {
                    "name": "poolQuoteTokenAccount",
                    "writable": true,
                    "relations": [
                        "pool"
                    ]
                },
                {
                    "name": "tokenProgram",
                    "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
                },
                {
                    "name": "token2022Program",
                    "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
                },
                {
                    "name": "eventAuthority",
                    "pda": {
                        "seeds": [
                            {
                                "kind": "const",
                                "value": [
                                    95,
                                    95,
                                    101,
                                    118,
                                    101,
                                    110,
                                    116,
                                    95,
                                    97,
                                    117,
                                    116,
                                    104,
                                    111,
                                    114,
                                    105,
                                    116,
                                    121
                                ]
                            }
                        ]
                    }
                },
                {
                    "name": "program"
                }
            ],
            "args": [
                {
                    "name": "lpTokenAmountOut",
                    "type": "u64"
                },
                {
                    "name": "maxBaseAmountIn",
                    "type": "u64"
                },
                {
                    "name": "maxQuoteAmountIn",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "disable",
            "discriminator": [
                185,
                173,
                187,
                90,
                216,
                15,
                238,
                233
            ],
            "accounts": [
                {
                    "name": "admin",
                    "signer": true,
                    "relations": [
                        "globalConfig"
                    ]
                },
                {
                    "name": "globalConfig",
                    "writable": true
                },
                {
                    "name": "eventAuthority",
                    "pda": {
                        "seeds": [
                            {
                                "kind": "const",
                                "value": [
                                    95,
                                    95,
                                    101,
                                    118,
                                    101,
                                    110,
                                    116,
                                    95,
                                    97,
                                    117,
                                    116,
                                    104,
                                    111,
                                    114,
                                    105,
                                    116,
                                    121
                                ]
                            }
                        ]
                    }
                },
                {
                    "name": "program"
                }
            ],
            "args": [
                {
                    "name": "disableCreatePool",
                    "type": "bool"
                },
                {
                    "name": "disableDeposit",
                    "type": "bool"
                },
                {
                    "name": "disableWithdraw",
                    "type": "bool"
                },
                {
                    "name": "disableBuy",
                    "type": "bool"
                },
                {
                    "name": "disableSell",
                    "type": "bool"
                }
            ]
        },
        {
            "name": "extendAccount",
            "discriminator": [
                234,
                102,
                194,
                203,
                150,
                72,
                62,
                229
            ],
            "accounts": [
                {
                    "name": "account",
                    "writable": true
                },
                {
                    "name": "user",
                    "signer": true
                },
                {
                    "name": "systemProgram",
                    "address": "11111111111111111111111111111111"
                },
                {
                    "name": "eventAuthority",
                    "pda": {
                        "seeds": [
                            {
                                "kind": "const",
                                "value": [
                                    95,
                                    95,
                                    101,
                                    118,
                                    101,
                                    110,
                                    116,
                                    95,
                                    97,
                                    117,
                                    116,
                                    104,
                                    111,
                                    114,
                                    105,
                                    116,
                                    121
                                ]
                            }
                        ]
                    }
                },
                {
                    "name": "program"
                }
            ],
            "args": []
        },
        {
            "name": "sell",
            "discriminator": [
                51,
                230,
                133,
                164,
                1,
                127,
                131,
                173
            ],
            "accounts": [
                {
                    "name": "pool"
                },
                {
                    "name": "user",
                    "writable": true,
                    "signer": true
                },
                {
                    "name": "globalConfig"
                },
                {
                    "name": "baseMint",
                    "relations": [
                        "pool"
                    ]
                },
                {
                    "name": "quoteMint",
                    "relations": [
                        "pool"
                    ]
                },
                {
                    "name": "userBaseTokenAccount",
                    "writable": true
                },
                {
                    "name": "userQuoteTokenAccount",
                    "writable": true
                },
                {
                    "name": "poolBaseTokenAccount",
                    "writable": true,
                    "relations": [
                        "pool"
                    ]
                },
                {
                    "name": "poolQuoteTokenAccount",
                    "writable": true,
                    "relations": [
                        "pool"
                    ]
                },
                {
                    "name": "protocolFeeRecipient"
                },
                {
                    "name": "protocolFeeRecipientTokenAccount",
                    "writable": true,
                    "pda": {
                        "seeds": [
                            {
                                "kind": "account",
                                "path": "protocolFeeRecipient"
                            },
                            {
                                "kind": "account",
                                "path": "quoteTokenProgram"
                            },
                            {
                                "kind": "account",
                                "path": "quoteMint"
                            }
                        ],
                        "program": {
                            "kind": "const",
                            "value": [
                                140,
                                151,
                                37,
                                143,
                                78,
                                36,
                                137,
                                241,
                                187,
                                61,
                                16,
                                41,
                                20,
                                142,
                                13,
                                131,
                                11,
                                90,
                                19,
                                153,
                                218,
                                255,
                                16,
                                132,
                                4,
                                142,
                                123,
                                216,
                                219,
                                233,
                                248,
                                89
                            ]
                        }
                    }
                },
                {
                    "name": "baseTokenProgram"
                },
                {
                    "name": "quoteTokenProgram"
                },
                {
                    "name": "systemProgram",
                    "address": "11111111111111111111111111111111"
                },
                {
                    "name": "associatedTokenProgram",
                    "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
                },
                {
                    "name": "eventAuthority",
                    "pda": {
                        "seeds": [
                            {
                                "kind": "const",
                                "value": [
                                    95,
                                    95,
                                    101,
                                    118,
                                    101,
                                    110,
                                    116,
                                    95,
                                    97,
                                    117,
                                    116,
                                    104,
                                    111,
                                    114,
                                    105,
                                    116,
                                    121
                                ]
                            }
                        ]
                    }
                },
                {
                    "name": "program"
                }
            ],
            "args": [
                {
                    "name": "baseAmountIn",
                    "type": "u64"
                },
                {
                    "name": "minQuoteAmountOut",
                    "type": "u64"
                }
            ]
        },
        {
            "name": "updateAdmin",
            "discriminator": [
                161,
                176,
                40,
                213,
                60,
                184,
                179,
                228
            ],
            "accounts": [
                {
                    "name": "admin",
                    "signer": true,
                    "relations": [
                        "globalConfig"
                    ]
                },
                {
                    "name": "globalConfig",
                    "writable": true
                },
                {
                    "name": "newAdmin",
                    "signer": true
                },
                {
                    "name": "eventAuthority",
                    "pda": {
                        "seeds": [
                            {
                                "kind": "const",
                                "value": [
                                    95,
                                    95,
                                    101,
                                    118,
                                    101,
                                    110,
                                    116,
                                    95,
                                    97,
                                    117,
                                    116,
                                    104,
                                    111,
                                    114,
                                    105,
                                    116,
                                    121
                                ]
                            }
                        ]
                    }
                },
                {
                    "name": "program"
                }
            ],
            "args": []
        },
        {
            "name": "updateFeeConfig",
            "discriminator": [
                104,
                184,
                103,
                242,
                88,
                151,
                107,
                20
            ],
            "accounts": [
                {
                    "name": "admin",
                    "signer": true,
                    "relations": [
                        "globalConfig"
                    ]
                },
                {
                    "name": "globalConfig",
                    "writable": true
                },
                {
                    "name": "eventAuthority",
                    "pda": {
                        "seeds": [
                            {
                                "kind": "const",
                                "value": [
                                    95,
                                    95,
                                    101,
                                    118,
                                    101,
                                    110,
                                    116,
                                    95,
                                    97,
                                    117,
                                    116,
                                    104,
                                    111,
                                    114,
                                    105,
                                    116,
                                    121
                                ]
                            }
                        ]
                    }
                },
                {
                    "name": "program"
                }
            ],
            "args": [
                {
                    "name": "lpFeeBasisPoints",
                    "type": "u64"
                },
                {
                    "name": "protocolFeeBasisPoints",
                    "type": "u64"
                },
                {
                    "name": "protocolFeeRecipients",
                    "type": {
                        "array": [
                            "pubkey",
                            8
                        ]
                    }
                }
            ]
        },
        {
            "name": "withdraw",
            "discriminator": [
                183,
                18,
                70,
                156,
                148,
                109,
                161,
                34
            ],
            "accounts": [
                {
                    "name": "pool",
                    "writable": true
                },
                {
                    "name": "globalConfig"
                },
                {
                    "name": "user",
                    "signer": true
                },
                {
                    "name": "baseMint",
                    "relations": [
                        "pool"
                    ]
                },
                {
                    "name": "quoteMint",
                    "relations": [
                        "pool"
                    ]
                },
                {
                    "name": "lpMint",
                    "writable": true,
                    "relations": [
                        "pool"
                    ]
                },
                {
                    "name": "userBaseTokenAccount",
                    "writable": true
                },
                {
                    "name": "userQuoteTokenAccount",
                    "writable": true
                },
                {
                    "name": "userPoolTokenAccount",
                    "writable": true
                },
                {
                    "name": "poolBaseTokenAccount",
                    "writable": true,
                    "relations": [
                        "pool"
                    ]
                },
                {
                    "name": "poolQuoteTokenAccount",
                    "writable": true,
                    "relations": [
                        "pool"
                    ]
                },
                {
                    "name": "tokenProgram",
                    "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
                },
                {
                    "name": "token2022Program",
                    "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
                },
                {
                    "name": "eventAuthority",
                    "pda": {
                        "seeds": [
                            {
                                "kind": "const",
                                "value": [
                                    95,
                                    95,
                                    101,
                                    118,
                                    101,
                                    110,
                                    116,
                                    95,
                                    97,
                                    117,
                                    116,
                                    104,
                                    111,
                                    114,
                                    105,
                                    116,
                                    121
                                ]
                            }
                        ]
                    }
                },
                {
                    "name": "program"
                }
            ],
            "args": [
                {
                    "name": "lpTokenAmountIn",
                    "type": "u64"
                },
                {
                    "name": "minBaseAmountOut",
                    "type": "u64"
                },
                {
                    "name": "minQuoteAmountOut",
                    "type": "u64"
                }
            ]
        }
    ],
    "accounts": [
        {
            "name": "GlobalConfig",
            "discriminator": [
                149,
                8,
                156,
                202,
                160,
                252,
                176,
                217
            ]
        },
        {
            "name": "Pool",
            "discriminator": [
                241,
                154,
                109,
                4,
                17,
                177,
                109,
                188
            ]
        }
    ],
    "events": [
        {
            "name": "BuyEvent",
            "discriminator": [
                103,
                244,
                82,
                31,
                44,
                245,
                119,
                119
            ]
        },
        {
            "name": "CreateConfigEvent",
            "discriminator": [
                107,
                52,
                89,
                129,
                55,
                226,
                81,
                22
            ]
        },
        {
            "name": "CreatePoolEvent",
            "discriminator": [
                177,
                49,
                12,
                210,
                160,
                118,
                167,
                116
            ]
        },
        {
            "name": "DepositEvent",
            "discriminator": [
                120,
                248,
                61,
                83,
                31,
                142,
                107,
                144
            ]
        },
        {
            "name": "DisableEvent",
            "discriminator": [
                107,
                253,
                193,
                76,
                228,
                202,
                27,
                104
            ]
        },
        {
            "name": "ExtendAccountEvent",
            "discriminator": [
                97,
                97,
                215,
                144,
                93,
                146,
                22,
                124
            ]
        },
        {
            "name": "SellEvent",
            "discriminator": [
                62,
                47,
                55,
                10,
                165,
                3,
                220,
                42
            ]
        },
        {
            "name": "UpdateAdminEvent",
            "discriminator": [
                225,
                152,
                171,
                87,
                246,
                63,
                66,
                234
            ]
        },
        {
            "name": "UpdateFeeConfigEvent",
            "discriminator": [
                90,
                23,
                65,
                35,
                62,
                244,
                188,
                208
            ]
        },
        {
            "name": "WithdrawEvent",
            "discriminator": [
                22,
                9,
                133,
                26,
                160,
                44,
                71,
                192
            ]
        }
    ],
    "errors": [
        {
            "code": 6000,
            "name": "FeeBasisPointsExceedsMaximum"
        },
        {
            "code": 6001,
            "name": "ZeroBaseAmount"
        },
        {
            "code": 6002,
            "name": "ZeroQuoteAmount"
        },
        {
            "code": 6003,
            "name": "TooLittlePoolTokenLiquidity"
        },
        {
            "code": 6004,
            "name": "ExceededSlippage"
        },
        {
            "code": 6005,
            "name": "InvalidAdmin"
        },
        {
            "code": 6006,
            "name": "UnsupportedBaseMint"
        },
        {
            "code": 6007,
            "name": "UnsupportedQuoteMint"
        },
        {
            "code": 6008,
            "name": "InvalidBaseMint"
        },
        {
            "code": 6009,
            "name": "InvalidQuoteMint"
        },
        {
            "code": 6010,
            "name": "InvalidLpMint"
        },
        {
            "code": 6011,
            "name": "AllProtocolFeeRecipientsShouldBeNonZero"
        },
        {
            "code": 6012,
            "name": "UnsortedNotUniqueProtocolFeeRecipients"
        },
        {
            "code": 6013,
            "name": "InvalidProtocolFeeRecipient"
        },
        {
            "code": 6014,
            "name": "InvalidPoolBaseTokenAccount"
        },
        {
            "code": 6015,
            "name": "InvalidPoolQuoteTokenAccount"
        },
        {
            "code": 6016,
            "name": "BuyMoreBaseAmountThanPoolReserves"
        },
        {
            "code": 6017,
            "name": "DisabledCreatePool"
        },
        {
            "code": 6018,
            "name": "DisabledDeposit"
        },
        {
            "code": 6019,
            "name": "DisabledWithdraw"
        },
        {
            "code": 6020,
            "name": "DisabledBuy"
        },
        {
            "code": 6021,
            "name": "DisabledSell"
        },
        {
            "code": 6022,
            "name": "SameMint"
        },
        {
            "code": 6023,
            "name": "Overflow"
        },
        {
            "code": 6024,
            "name": "Truncation"
        },
        {
            "code": 6025,
            "name": "DivisionByZero"
        },
        {
            "code": 6026,
            "name": "NewSizeLessThanCurrentSize"
        },
        {
            "code": 6027,
            "name": "AccountTypeNotSupported"
        }
    ],
    "types": [
        {
            "name": "BuyEvent",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "timestamp",
                        "type": "i64"
                    },
                    {
                        "name": "baseAmountOut",
                        "type": "u64"
                    },
                    {
                        "name": "maxQuoteAmountIn",
                        "type": "u64"
                    },
                    {
                        "name": "userBaseTokenReserves",
                        "type": "u64"
                    },
                    {
                        "name": "userQuoteTokenReserves",
                        "type": "u64"
                    },
                    {
                        "name": "poolBaseTokenReserves",
                        "type": "u64"
                    },
                    {
                        "name": "poolQuoteTokenReserves",
                        "type": "u64"
                    },
                    {
                        "name": "quoteAmountIn",
                        "type": "u64"
                    },
                    {
                        "name": "lpFeeBasisPoints",
                        "type": "u64"
                    },
                    {
                        "name": "lpFee",
                        "type": "u64"
                    },
                    {
                        "name": "protocolFeeBasisPoints",
                        "type": "u64"
                    },
                    {
                        "name": "protocolFee",
                        "type": "u64"
                    },
                    {
                        "name": "quoteAmountInWithLpFee",
                        "type": "u64"
                    },
                    {
                        "name": "userQuoteAmountIn",
                        "type": "u64"
                    },
                    {
                        "name": "pool",
                        "type": "pubkey"
                    },
                    {
                        "name": "user",
                        "type": "pubkey"
                    },
                    {
                        "name": "userBaseTokenAccount",
                        "type": "pubkey"
                    },
                    {
                        "name": "userQuoteTokenAccount",
                        "type": "pubkey"
                    },
                    {
                        "name": "protocolFeeRecipient",
                        "type": "pubkey"
                    },
                    {
                        "name": "protocolFeeRecipientTokenAccount",
                        "type": "pubkey"
                    }
                ]
            }
        },
        {
            "name": "CreateConfigEvent",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "timestamp",
                        "type": "i64"
                    },
                    {
                        "name": "admin",
                        "type": "pubkey"
                    },
                    {
                        "name": "lpFeeBasisPoints",
                        "type": "u64"
                    },
                    {
                        "name": "protocolFeeBasisPoints",
                        "type": "u64"
                    },
                    {
                        "name": "protocolFeeRecipients",
                        "type": {
                            "array": [
                                "pubkey",
                                8
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "CreatePoolEvent",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "timestamp",
                        "type": "i64"
                    },
                    {
                        "name": "index",
                        "type": "u16"
                    },
                    {
                        "name": "creator",
                        "type": "pubkey"
                    },
                    {
                        "name": "baseMint",
                        "type": "pubkey"
                    },
                    {
                        "name": "quoteMint",
                        "type": "pubkey"
                    },
                    {
                        "name": "baseMintDecimals",
                        "type": "u8"
                    },
                    {
                        "name": "quoteMintDecimals",
                        "type": "u8"
                    },
                    {
                        "name": "baseAmountIn",
                        "type": "u64"
                    },
                    {
                        "name": "quoteAmountIn",
                        "type": "u64"
                    },
                    {
                        "name": "poolBaseAmount",
                        "type": "u64"
                    },
                    {
                        "name": "poolQuoteAmount",
                        "type": "u64"
                    },
                    {
                        "name": "minimumLiquidity",
                        "type": "u64"
                    },
                    {
                        "name": "initialLiquidity",
                        "type": "u64"
                    },
                    {
                        "name": "lpTokenAmountOut",
                        "type": "u64"
                    },
                    {
                        "name": "poolBump",
                        "type": "u8"
                    },
                    {
                        "name": "pool",
                        "type": "pubkey"
                    },
                    {
                        "name": "lpMint",
                        "type": "pubkey"
                    },
                    {
                        "name": "userBaseTokenAccount",
                        "type": "pubkey"
                    },
                    {
                        "name": "userQuoteTokenAccount",
                        "type": "pubkey"
                    }
                ]
            }
        },
        {
            "name": "DepositEvent",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "timestamp",
                        "type": "i64"
                    },
                    {
                        "name": "lpTokenAmountOut",
                        "type": "u64"
                    },
                    {
                        "name": "maxBaseAmountIn",
                        "type": "u64"
                    },
                    {
                        "name": "maxQuoteAmountIn",
                        "type": "u64"
                    },
                    {
                        "name": "userBaseTokenReserves",
                        "type": "u64"
                    },
                    {
                        "name": "userQuoteTokenReserves",
                        "type": "u64"
                    },
                    {
                        "name": "poolBaseTokenReserves",
                        "type": "u64"
                    },
                    {
                        "name": "poolQuoteTokenReserves",
                        "type": "u64"
                    },
                    {
                        "name": "baseAmountIn",
                        "type": "u64"
                    },
                    {
                        "name": "quoteAmountIn",
                        "type": "u64"
                    },
                    {
                        "name": "lpMintSupply",
                        "type": "u64"
                    },
                    {
                        "name": "pool",
                        "type": "pubkey"
                    },
                    {
                        "name": "user",
                        "type": "pubkey"
                    },
                    {
                        "name": "userBaseTokenAccount",
                        "type": "pubkey"
                    },
                    {
                        "name": "userQuoteTokenAccount",
                        "type": "pubkey"
                    },
                    {
                        "name": "userPoolTokenAccount",
                        "type": "pubkey"
                    }
                ]
            }
        },
        {
            "name": "DisableEvent",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "timestamp",
                        "type": "i64"
                    },
                    {
                        "name": "admin",
                        "type": "pubkey"
                    },
                    {
                        "name": "disableCreatePool",
                        "type": "bool"
                    },
                    {
                        "name": "disableDeposit",
                        "type": "bool"
                    },
                    {
                        "name": "disableWithdraw",
                        "type": "bool"
                    },
                    {
                        "name": "disableBuy",
                        "type": "bool"
                    },
                    {
                        "name": "disableSell",
                        "type": "bool"
                    }
                ]
            }
        },
        {
            "name": "ExtendAccountEvent",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "timestamp",
                        "type": "i64"
                    },
                    {
                        "name": "account",
                        "type": "pubkey"
                    },
                    {
                        "name": "user",
                        "type": "pubkey"
                    },
                    {
                        "name": "currentSize",
                        "type": "u64"
                    },
                    {
                        "name": "newSize",
                        "type": "u64"
                    }
                ]
            }
        },
        {
            "name": "GlobalConfig",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "admin",
                        "docs": [
                            "The admin pubkey"
                        ],
                        "type": "pubkey"
                    },
                    {
                        "name": "lpFeeBasisPoints",
                        "docs": [
                            "The lp fee in basis points (0.01%)"
                        ],
                        "type": "u64"
                    },
                    {
                        "name": "protocolFeeBasisPoints",
                        "docs": [
                            "The protocol fee in basis points (0.01%)"
                        ],
                        "type": "u64"
                    },
                    {
                        "name": "disableFlags",
                        "docs": [
                            "Flags to disable certain functionality",
                            "bit 0 - Disable create pool",
                            "bit 1 - Disable deposit",
                            "bit 2 - Disable withdraw",
                            "bit 3 - Disable buy",
                            "bit 4 - Disable sell"
                        ],
                        "type": "u8"
                    },
                    {
                        "name": "protocolFeeRecipients",
                        "docs": [
                            "Addresses of the protocol fee recipients"
                        ],
                        "type": {
                            "array": [
                                "pubkey",
                                8
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "Pool",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "poolBump",
                        "type": "u8"
                    },
                    {
                        "name": "index",
                        "type": "u16"
                    },
                    {
                        "name": "creator",
                        "type": "pubkey"
                    },
                    {
                        "name": "baseMint",
                        "type": "pubkey"
                    },
                    {
                        "name": "quoteMint",
                        "type": "pubkey"
                    },
                    {
                        "name": "lpMint",
                        "type": "pubkey"
                    },
                    {
                        "name": "poolBaseTokenAccount",
                        "type": "pubkey"
                    },
                    {
                        "name": "poolQuoteTokenAccount",
                        "type": "pubkey"
                    },
                    {
                        "name": "lpSupply",
                        "docs": [
                            "True circulating supply without burns and lock-ups"
                        ],
                        "type": "u64"
                    }
                ]
            }
        },
        {
            "name": "SellEvent",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "timestamp",
                        "type": "i64"
                    },
                    {
                        "name": "baseAmountIn",
                        "type": "u64"
                    },
                    {
                        "name": "minQuoteAmountOut",
                        "type": "u64"
                    },
                    {
                        "name": "userBaseTokenReserves",
                        "type": "u64"
                    },
                    {
                        "name": "userQuoteTokenReserves",
                        "type": "u64"
                    },
                    {
                        "name": "poolBaseTokenReserves",
                        "type": "u64"
                    },
                    {
                        "name": "poolQuoteTokenReserves",
                        "type": "u64"
                    },
                    {
                        "name": "quoteAmountOut",
                        "type": "u64"
                    },
                    {
                        "name": "lpFeeBasisPoints",
                        "type": "u64"
                    },
                    {
                        "name": "lpFee",
                        "type": "u64"
                    },
                    {
                        "name": "protocolFeeBasisPoints",
                        "type": "u64"
                    },
                    {
                        "name": "protocolFee",
                        "type": "u64"
                    },
                    {
                        "name": "quoteAmountOutWithoutLpFee",
                        "type": "u64"
                    },
                    {
                        "name": "userQuoteAmountOut",
                        "type": "u64"
                    },
                    {
                        "name": "pool",
                        "type": "pubkey"
                    },
                    {
                        "name": "user",
                        "type": "pubkey"
                    },
                    {
                        "name": "userBaseTokenAccount",
                        "type": "pubkey"
                    },
                    {
                        "name": "userQuoteTokenAccount",
                        "type": "pubkey"
                    },
                    {
                        "name": "protocolFeeRecipient",
                        "type": "pubkey"
                    },
                    {
                        "name": "protocolFeeRecipientTokenAccount",
                        "type": "pubkey"
                    }
                ]
            }
        },
        {
            "name": "UpdateAdminEvent",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "timestamp",
                        "type": "i64"
                    },
                    {
                        "name": "admin",
                        "type": "pubkey"
                    },
                    {
                        "name": "newAdmin",
                        "type": "pubkey"
                    }
                ]
            }
        },
        {
            "name": "UpdateFeeConfigEvent",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "timestamp",
                        "type": "i64"
                    },
                    {
                        "name": "admin",
                        "type": "pubkey"
                    },
                    {
                        "name": "lpFeeBasisPoints",
                        "type": "u64"
                    },
                    {
                        "name": "protocolFeeBasisPoints",
                        "type": "u64"
                    },
                    {
                        "name": "protocolFeeRecipients",
                        "type": {
                            "array": [
                                "pubkey",
                                8
                            ]
                        }
                    }
                ]
            }
        },
        {
            "name": "WithdrawEvent",
            "type": {
                "kind": "struct",
                "fields": [
                    {
                        "name": "timestamp",
                        "type": "i64"
                    },
                    {
                        "name": "lpTokenAmountIn",
                        "type": "u64"
                    },
                    {
                        "name": "minBaseAmountOut",
                        "type": "u64"
                    },
                    {
                        "name": "minQuoteAmountOut",
                        "type": "u64"
                    },
                    {
                        "name": "userBaseTokenReserves",
                        "type": "u64"
                    },
                    {
                        "name": "userQuoteTokenReserves",
                        "type": "u64"
                    },
                    {
                        "name": "poolBaseTokenReserves",
                        "type": "u64"
                    },
                    {
                        "name": "poolQuoteTokenReserves",
                        "type": "u64"
                    },
                    {
                        "name": "baseAmountOut",
                        "type": "u64"
                    },
                    {
                        "name": "quoteAmountOut",
                        "type": "u64"
                    },
                    {
                        "name": "lpMintSupply",
                        "type": "u64"
                    },
                    {
                        "name": "pool",
                        "type": "pubkey"
                    },
                    {
                        "name": "user",
                        "type": "pubkey"
                    },
                    {
                        "name": "userBaseTokenAccount",
                        "type": "pubkey"
                    },
                    {
                        "name": "userQuoteTokenAccount",
                        "type": "pubkey"
                    },
                    {
                        "name": "userPoolTokenAccount",
                        "type": "pubkey"
                    }
                ]
            }
        }
    ]
}
