export type BasketsIDL = {
  "address": "2KehYt3KsEQR53jYcxjbQp2d2kCp4AkuQW68atufRwSr",
  "metadata": {
    "name": "funds",
    "version": "0.1.0",
    "spec": "0.1.0"
  },
  "instructions": [
    {
      "name": "withdrawBeforeRebalance",
      "discriminator": [
        195,
        202,
        37,
        147,
        148,
        78,
        45,
        145
      ],
      "accounts": [
        {
          "name": "signer",
          "writable": true,
          "signer": true
        },
        {
          "name": "basketState",
          "writable": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "oracleSol",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "oracleTokenFrom",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "oracleTokenTo",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaAccount",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaTokenFrom",
          "writable": true
        },
        {
          "name": "pdaTokenTo",
          "writable": true
        },
        {
          "name": "signerTokenFrom",
          "writable": true
        },
        {
          "name": "signerTokenTo",
          "writable": true
        },
        {
          "name": "fromTokenMint"
        },
        {
          "name": "toTokenMint"
        },
        {
          "name": "rebalanceState",
          "writable": true
        },
        {
          "name": "tokenProgram"
        },
        {
          "name": "associatedTokenProgram"
        },
        {
          "name": "systemProgram"
        },
        {
          "name": "rent"
        },
        {
          "name": "instructionsSysvar",
          "docs": [
            "CHECK"
          ]
        }
      ],
      "args": [
        {
          "name": "tokenFrom",
          "type": "u8"
        },
        {
          "name": "tokenTo",
          "type": "u8"
        },
        {
          "name": "withdrawAmount",
          "type": "u64"
        }
      ]
    },
    {
      "name": "depositAfterRebalance",
      "discriminator": [
        14,
        73,
        13,
        249,
        241,
        0,
        197,
        7
      ],
      "accounts": [
        {
          "name": "signer",
          "writable": true,
          "signer": true
        },
        {
          "name": "basketState",
          "writable": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "oracleSol",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "oracleTokenTo",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaAccount",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaTokenTo",
          "writable": true
        },
        {
          "name": "signerTokenTo",
          "writable": true
        },
        {
          "name": "rebalanceState",
          "writable": true
        },
        {
          "name": "rebalanceFeeAccount",
          "writable": true
        },
        {
          "name": "tokenProgram"
        },
        {
          "name": "systemProgram"
        }
      ],
      "args": []
    },
    {
      "name": "createBasket",
      "discriminator": [
        47,
        105,
        155,
        148,
        15,
        169,
        202,
        211
      ],
      "accounts": [
        {
          "name": "manager",
          "writable": true,
          "signer": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "pdaAccount",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "fundToken",
          "writable": true
        },
        {
          "name": "createFeeSweeper",
          "docs": [
            "CHECK"
          ],
          "writable": true
        },
        {
          "name": "metadataAccount",
          "writable": true
        },
        {
          "name": "metadataProgram"
        },
        {
          "name": "systemProgram"
        },
        {
          "name": "tokenProgram"
        },
        {
          "name": "rent"
        },
        {
          "name": "host",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "feeDelegate",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "seedPubkey",
          "docs": [
            "CHECK"
          ]
        }
      ],
      "args": [
        {
          "name": "managerFee",
          "type": "u16"
        },
        {
          "name": "hostFee",
          "type": "u16"
        },
        {
          "name": "basketType",
          "type": "u8"
        },
        {
          "name": "rebalanceInterval",
          "type": "u64"
        },
        {
          "name": "rebalanceThreshold",
          "type": "u16"
        },
        {
          "name": "rebalanceSlippage",
          "type": "u16"
        },
        {
          "name": "lpOffsetThreshold",
          "type": "u16"
        },
        {
          "name": "rebalanceAndLp",
          "type": {
            "array": [
              "u8",
              2
            ]
          }
        },
        {
          "name": "numOfTokens",
          "type": "u8"
        },
        {
          "name": "targetComposition",
          "type": {
            "array": [
              "u8",
              15
            ]
          }
        },
        {
          "name": "targetWeights",
          "type": {
            "array": [
              "u32",
              15
            ]
          }
        },
        {
          "name": "params",
          "type": {
            "defined": {
              "name": "updateMetadataParams"
            }
          }
        }
      ]
    },
    {
      "name": "editBasket",
      "discriminator": [
        38,
        120,
        23,
        32,
        19,
        73,
        131,
        177
      ],
      "accounts": [
        {
          "name": "manager",
          "writable": true,
          "signer": true
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "feeDelegate",
          "docs": [
            "CHECK"
          ]
        }
      ],
      "args": [
        {
          "name": "managerFee",
          "type": "u16"
        },
        {
          "name": "rebalanceInterval",
          "type": "u64"
        },
        {
          "name": "rebalanceThreshold",
          "type": "u16"
        },
        {
          "name": "rebalanceSlippage",
          "type": "u16"
        },
        {
          "name": "lpOffsetThreshold",
          "type": "u16"
        },
        {
          "name": "rebalanceAndLp",
          "type": {
            "array": [
              "u8",
              2
            ]
          }
        },
        {
          "name": "numOfTokens",
          "type": "u8"
        },
        {
          "name": "targetComposition",
          "type": {
            "array": [
              "u8",
              15
            ]
          }
        },
        {
          "name": "targetWeights",
          "type": {
            "array": [
              "u32",
              15
            ]
          }
        }
      ]
    },
    {
      "name": "editManager",
      "discriminator": [
        70,
        218,
        176,
        28,
        91,
        177,
        44,
        37
      ],
      "accounts": [
        {
          "name": "manager",
          "writable": true,
          "signer": true
        },
        {
          "name": "fundState",
          "writable": true
        }
      ],
      "args": [
        {
          "name": "newManager",
          "type": "pubkey"
        }
      ]
    },
    {
      "name": "closeBasket",
      "discriminator": [
        193,
        180,
        238,
        204,
        116,
        243,
        127,
        45
      ],
      "accounts": [
        {
          "name": "manager",
          "writable": true,
          "signer": true
        },
        {
          "name": "fundToken",
          "writable": true
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "pdaAccount",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "systemProgram"
        },
        {
          "name": "tokenProgram"
        }
      ],
      "args": []
    },
    {
      "name": "liquidityProvision",
      "discriminator": [
        130,
        113,
        21,
        240,
        202,
        190,
        11,
        3
      ],
      "accounts": [
        {
          "name": "buyer",
          "signer": true
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "pdaAccount",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaFromTokenAccount",
          "writable": true
        },
        {
          "name": "buyerFromTokenAccount",
          "docs": [
            "CHECK"
          ],
          "writable": true
        },
        {
          "name": "pdaToTokenAccount",
          "writable": true
        },
        {
          "name": "buyerToTokenAccount",
          "docs": [
            "CHECK"
          ],
          "writable": true
        },
        {
          "name": "oracleSol",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "swapFeeAccount",
          "docs": [
            "CHECK"
          ],
          "writable": true
        },
        {
          "name": "hostFeeAccount",
          "docs": [
            "CHECK"
          ],
          "writable": true
        },
        {
          "name": "managerFeeAccount",
          "docs": [
            "CHECK"
          ],
          "writable": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "curveData"
        },
        {
          "name": "tokenProgram"
        }
      ],
      "args": [
        {
          "name": "fromTokenId",
          "type": "u64"
        },
        {
          "name": "toTokenId",
          "type": "u64"
        },
        {
          "name": "fromAmount",
          "type": "u64"
        },
        {
          "name": "minimumToAmount",
          "type": "u64"
        }
      ]
    },
    {
      "name": "editBuyer",
      "discriminator": [
        103,
        148,
        71,
        105,
        43,
        63,
        117,
        241
      ],
      "accounts": [
        {
          "name": "buyer",
          "writable": true,
          "signer": true
        },
        {
          "name": "buyState",
          "writable": true
        },
        {
          "name": "newOwner",
          "writable": true
        },
        {
          "name": "buyerFundTokenAccount",
          "writable": true
        }
      ],
      "args": []
    },
    {
      "name": "buyFund",
      "discriminator": [
        251,
        50,
        158,
        62,
        174,
        248,
        165,
        197
      ],
      "accounts": [
        {
          "name": "buyer",
          "writable": true,
          "signer": true
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "fundToken",
          "writable": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "pdaAccount"
        },
        {
          "name": "pdaUsdcAccount",
          "writable": true
        },
        {
          "name": "buyerUsdcAccount",
          "writable": true
        },
        {
          "name": "managerUsdcAccount",
          "writable": true
        },
        {
          "name": "smfFeeAccount",
          "writable": true
        },
        {
          "name": "hostUsdcAccount",
          "writable": true
        },
        {
          "name": "buyerFundTokenAccount",
          "writable": true
        },
        {
          "name": "buyState",
          "writable": true
        },
        {
          "name": "systemProgram"
        },
        {
          "name": "tokenProgram"
        },
        {
          "name": "rent"
        },
        {
          "name": "associatedTokenProgram"
        },
        {
          "name": "seedPubkey",
          "docs": [
            "CHECK"
          ]
        }
      ],
      "args": [
        {
          "name": "amount",
          "type": "u64"
        }
      ]
    },
    {
      "name": "mintFund",
      "discriminator": [
        239,
        150,
        109,
        73,
        55,
        160,
        38,
        162
      ],
      "accounts": [
        {
          "name": "signer",
          "writable": true,
          "signer": true
        },
        {
          "name": "buyer",
          "docs": [
            "CHECK"
          ],
          "writable": true
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "buyState",
          "writable": true
        },
        {
          "name": "oracleSol",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaAccount",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "buyerFundTokenAccount",
          "writable": true
        },
        {
          "name": "fundToken",
          "writable": true
        },
        {
          "name": "systemProgram"
        },
        {
          "name": "tokenProgram"
        }
      ],
      "args": []
    },
    {
      "name": "instantMint",
      "discriminator": [
        70,
        132,
        88,
        215,
        74,
        8,
        209,
        236
      ],
      "accounts": [
        {
          "name": "authority",
          "writable": true,
          "signer": true
        },
        {
          "name": "buyerFundTokenAccount",
          "writable": true
        },
        {
          "name": "fundToken",
          "writable": true
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "pdaAccount"
        },
        {
          "name": "oracleSol",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "tokenProgram"
        }
      ],
      "args": [
        {
          "name": "amounts",
          "type": {
            "array": [
              "u64",
              20
            ]
          }
        }
      ]
    },
    {
      "name": "singleTokenDeposit",
      "discriminator": [
        197,
        12,
        239,
        83,
        28,
        4,
        37,
        97
      ],
      "accounts": [
        {
          "name": "authority",
          "writable": true,
          "signer": true
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "fundToken",
          "writable": true
        },
        {
          "name": "buyerTokenAccount",
          "writable": true
        },
        {
          "name": "buyerFundTokenAccount",
          "writable": true
        },
        {
          "name": "pdaAccount"
        },
        {
          "name": "pdaTokenAccount",
          "writable": true
        },
        {
          "name": "symmetryFeeAccount",
          "writable": true
        },
        {
          "name": "hostFeeAccount",
          "writable": true
        },
        {
          "name": "managerFeeAccount",
          "writable": true
        },
        {
          "name": "oracleAccount"
        },
        {
          "name": "oracleSol",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "tokenList"
        },
        {
          "name": "tokenProgram"
        }
      ],
      "args": [
        {
          "name": "token",
          "type": "u8"
        },
        {
          "name": "amount",
          "type": "u64"
        }
      ]
    },
    {
      "name": "sellFund",
      "discriminator": [
        78,
        253,
        22,
        133,
        38,
        176,
        110,
        5
      ],
      "accounts": [
        {
          "name": "seller",
          "writable": true,
          "signer": true
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "pdaAccount",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "newFundState",
          "writable": true
        },
        {
          "name": "sellerFundTokenAccount",
          "writable": true
        },
        {
          "name": "fundToken",
          "writable": true
        },
        {
          "name": "systemProgram"
        },
        {
          "name": "tokenProgram"
        },
        {
          "name": "rent"
        },
        {
          "name": "seedPubkey",
          "docs": [
            "CHECK"
          ]
        }
      ],
      "args": [
        {
          "name": "amount",
          "type": "u64"
        },
        {
          "name": "rebalance",
          "type": "u64"
        }
      ]
    },
    {
      "name": "instantBurn",
      "discriminator": [
        34,
        231,
        151,
        248,
        32,
        1,
        32,
        125
      ],
      "accounts": [
        {
          "name": "seller",
          "writable": true,
          "signer": true
        },
        {
          "name": "pdaAccount",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "fundToken",
          "writable": true
        },
        {
          "name": "sellerFundTokenAccount",
          "writable": true
        },
        {
          "name": "withdrawTokenMint",
          "writable": true
        },
        {
          "name": "sellerTokenAccount",
          "writable": true
        },
        {
          "name": "pdaTokenAccount",
          "writable": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "systemProgram"
        },
        {
          "name": "tokenProgram"
        }
      ],
      "args": [
        {
          "name": "burnAmount",
          "type": "u64"
        },
        {
          "name": "withdrawToken",
          "type": "u8"
        }
      ]
    },
    {
      "name": "claimToken",
      "discriminator": [
        116,
        206,
        27,
        191,
        166,
        19,
        0,
        73
      ],
      "accounts": [
        {
          "name": "signer",
          "writable": true,
          "signer": true
        },
        {
          "name": "manager",
          "docs": [
            "CHECK"
          ],
          "writable": true
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "sellerTokenAccount",
          "writable": true
        },
        {
          "name": "pdaTokenAccount",
          "writable": true
        },
        {
          "name": "pdaAccount",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "systemProgram"
        },
        {
          "name": "tokenProgram"
        }
      ],
      "args": [
        {
          "name": "tokenId",
          "type": "u64"
        }
      ]
    },
    {
      "name": "claimTokenFromBuyState",
      "discriminator": [
        132,
        137,
        239,
        21,
        204,
        222,
        213,
        220
      ],
      "accounts": [
        {
          "name": "signer",
          "writable": true,
          "signer": true
        },
        {
          "name": "buyer",
          "docs": [
            "CHECK"
          ],
          "writable": true
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "buyState",
          "writable": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "buyerTokenAccount",
          "writable": true
        },
        {
          "name": "pdaTokenAccount",
          "writable": true
        },
        {
          "name": "pdaAccount",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "systemProgram"
        },
        {
          "name": "tokenProgram"
        }
      ],
      "args": [
        {
          "name": "tokenId",
          "type": "u64"
        }
      ]
    },
    {
      "name": "updateCurrentWeights",
      "discriminator": [
        237,
        108,
        97,
        157,
        0,
        221,
        11,
        81
      ],
      "accounts": [
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "oracleSol",
          "docs": [
            "CHECK"
          ]
        }
      ],
      "args": []
    },
    {
      "name": "rebalanceBuyStateTransitive",
      "discriminator": [
        206,
        83,
        3,
        134,
        173,
        194,
        157,
        246
      ],
      "accounts": [
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "buyState",
          "writable": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "oracleSol",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "oracleToken",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "oracleUsdc",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaAccount",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaTokenAccount",
          "writable": true
        },
        {
          "name": "pdaMidAccount",
          "writable": true
        },
        {
          "name": "pdaUsdcAccount",
          "writable": true
        },
        {
          "name": "rebalanceFeeAccount",
          "writable": true
        },
        {
          "name": "tokenProgram"
        }
      ],
      "args": [
        {
          "name": "tokenId",
          "type": "u8"
        },
        {
          "name": "maxAmountToUse",
          "type": "u64"
        },
        {
          "name": "firstInstructionEnd",
          "type": "u8"
        },
        {
          "name": "secondInstructionEnd",
          "type": "u8"
        },
        {
          "name": "firstRemainingAccountsEnd",
          "type": "u8"
        },
        {
          "name": "instructionData",
          "type": {
            "array": [
              "u8",
              128
            ]
          }
        }
      ]
    },
    {
      "name": "rebalanceSellTransitive",
      "discriminator": [
        83,
        161,
        87,
        8,
        110,
        77,
        23,
        62
      ],
      "accounts": [
        {
          "name": "signer",
          "writable": true,
          "signer": true
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "oracleSol",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "oracleToken",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "oracleUsdc",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaAccount",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaTokenAccount",
          "writable": true
        },
        {
          "name": "pdaUsdcAccount",
          "writable": true
        },
        {
          "name": "pdaMidAccount",
          "writable": true
        },
        {
          "name": "rebalanceFeeAccount",
          "writable": true
        },
        {
          "name": "tokenProgram"
        }
      ],
      "args": [
        {
          "name": "tokenId",
          "type": "u8"
        },
        {
          "name": "maxAmountToSell",
          "type": "u64"
        },
        {
          "name": "firstInstructionEnd",
          "type": "u8"
        },
        {
          "name": "secondInstructionEnd",
          "type": "u8"
        },
        {
          "name": "firstRemainingAccountsEnd",
          "type": "u8"
        },
        {
          "name": "instructionData",
          "type": {
            "array": [
              "u8",
              128
            ]
          }
        }
      ]
    },
    {
      "name": "rebalanceBuyTransitive",
      "discriminator": [
        192,
        119,
        161,
        52,
        161,
        57,
        17,
        4
      ],
      "accounts": [
        {
          "name": "signer",
          "writable": true,
          "signer": true
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "oracleSol",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "oracleToken",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "oracleUsdc",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaAccount",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaTokenAccount",
          "writable": true
        },
        {
          "name": "pdaUsdcAccount",
          "writable": true
        },
        {
          "name": "pdaMidAccount",
          "writable": true
        },
        {
          "name": "rebalanceFeeAccount",
          "writable": true
        },
        {
          "name": "tokenProgram"
        }
      ],
      "args": [
        {
          "name": "tokenId",
          "type": "u8"
        },
        {
          "name": "maxAmountToSpend",
          "type": "u64"
        },
        {
          "name": "firstInstructionEnd",
          "type": "u8"
        },
        {
          "name": "secondInstructionEnd",
          "type": "u8"
        },
        {
          "name": "firstRemainingAccountsEnd",
          "type": "u8"
        },
        {
          "name": "instructionData",
          "type": {
            "array": [
              "u8",
              128
            ]
          }
        }
      ]
    },
    {
      "name": "rebalanceBuyState",
      "discriminator": [
        166,
        154,
        51,
        71,
        63,
        4,
        7,
        1
      ],
      "accounts": [
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "buyState",
          "writable": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "oracleSol",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "oracleToken",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "oracleUsdc",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaAccount",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaTokenAccount",
          "writable": true
        },
        {
          "name": "pdaUsdcAccount",
          "writable": true
        },
        {
          "name": "rebalanceFeeAccount",
          "writable": true
        },
        {
          "name": "tokenProgram"
        }
      ],
      "args": [
        {
          "name": "tokenId",
          "type": "u8"
        },
        {
          "name": "maxAmountToUse",
          "type": "u64"
        },
        {
          "name": "instructionSize",
          "type": "u8"
        },
        {
          "name": "instructionData",
          "type": {
            "array": [
              "u8",
              128
            ]
          }
        }
      ]
    },
    {
      "name": "rebalanceSell",
      "discriminator": [
        53,
        35,
        128,
        189,
        197,
        148,
        81,
        28
      ],
      "accounts": [
        {
          "name": "signer",
          "writable": true,
          "signer": true
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "oracleSol",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "oracleToken",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "oracleUsdc",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaAccount",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaTokenAccount",
          "writable": true
        },
        {
          "name": "pdaUsdcAccount",
          "writable": true
        },
        {
          "name": "rebalanceFeeAccount",
          "writable": true
        },
        {
          "name": "tokenProgram"
        }
      ],
      "args": [
        {
          "name": "tokenId",
          "type": "u8"
        },
        {
          "name": "maxAmountToSell",
          "type": "u64"
        },
        {
          "name": "instructionSize",
          "type": "u8"
        },
        {
          "name": "instructionData",
          "type": {
            "array": [
              "u8",
              128
            ]
          }
        }
      ]
    },
    {
      "name": "rebalanceBuy",
      "discriminator": [
        205,
        136,
        203,
        130,
        86,
        125,
        162,
        20
      ],
      "accounts": [
        {
          "name": "signer",
          "writable": true,
          "signer": true
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "oracleSol",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "oracleToken",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "oracleUsdc",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaAccount",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaTokenAccount",
          "writable": true
        },
        {
          "name": "pdaUsdcAccount",
          "writable": true
        },
        {
          "name": "rebalanceFeeAccount",
          "writable": true
        },
        {
          "name": "tokenProgram"
        }
      ],
      "args": [
        {
          "name": "tokenId",
          "type": "u8"
        },
        {
          "name": "maxAmountToSpend",
          "type": "u64"
        },
        {
          "name": "instructionSize",
          "type": "u8"
        },
        {
          "name": "instructionData",
          "type": {
            "array": [
              "u8",
              128
            ]
          }
        }
      ]
    },
    {
      "name": "updateTokenList",
      "discriminator": [
        58,
        208,
        96,
        231,
        40,
        122,
        12,
        190
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "tokenList",
          "writable": true
        },
        {
          "name": "systemProgram"
        }
      ],
      "args": [
        {
          "name": "index",
          "type": "u8"
        },
        {
          "name": "tokenMint",
          "type": "pubkey"
        },
        {
          "name": "decimals",
          "type": "u8"
        },
        {
          "name": "coingeckoId",
          "type": {
            "array": [
              "u8",
              30
            ]
          }
        },
        {
          "name": "pdaTokenAccount",
          "type": "pubkey"
        },
        {
          "name": "oracleType",
          "type": "u8"
        },
        {
          "name": "oracleAccount",
          "type": "pubkey"
        },
        {
          "name": "oracleIndex",
          "type": "u8"
        },
        {
          "name": "oracleConfidencePct",
          "type": "u8"
        },
        {
          "name": "fixedConfidenceBps",
          "type": "u8"
        },
        {
          "name": "tokenSwapFeeBeforeTwBps",
          "type": "u8"
        },
        {
          "name": "tokenSwapFeeAfterTwBps",
          "type": "u8"
        },
        {
          "name": "isLive",
          "type": "u8"
        },
        {
          "name": "lpOn",
          "type": "u8"
        },
        {
          "name": "useCurveData",
          "type": "u8"
        }
      ]
    },
    {
      "name": "modifyFeeStructure",
      "discriminator": [
        176,
        201,
        85,
        183,
        157,
        197,
        162,
        113
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "tokenList",
          "writable": true
        },
        {
          "name": "systemProgram"
        }
      ],
      "args": [
        {
          "name": "symmetryFee",
          "type": "u8"
        },
        {
          "name": "hostFee",
          "type": "u8"
        },
        {
          "name": "managerFee",
          "type": "u8"
        }
      ]
    },
    {
      "name": "freezeProgram",
      "discriminator": [
        197,
        134,
        244,
        37,
        49,
        38,
        23,
        79
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "tokenList",
          "writable": true
        },
        {
          "name": "systemProgram"
        }
      ],
      "args": []
    },
    {
      "name": "unfreezeProgram",
      "discriminator": [
        132,
        209,
        212,
        32,
        49,
        219,
        52,
        33
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "tokenList",
          "writable": true
        },
        {
          "name": "systemProgram"
        }
      ],
      "args": []
    },
    {
      "name": "updateDatabase",
      "discriminator": [
        85,
        153,
        200,
        159,
        33,
        197,
        46,
        77
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "database",
          "writable": true
        }
      ],
      "args": [
        {
          "name": "tokenId",
          "type": "u64"
        },
        {
          "name": "price",
          "type": "u64"
        },
        {
          "name": "circulatingSupply",
          "type": "u64"
        },
        {
          "name": "volume",
          "type": "u64"
        },
        {
          "name": "timestamp",
          "type": "u64"
        }
      ]
    },
    {
      "name": "clearDatabase",
      "discriminator": [
        3,
        215,
        185,
        177,
        43,
        253,
        204,
        10
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "database",
          "writable": true
        }
      ],
      "args": [
        {
          "name": "tokenId",
          "type": "u64"
        }
      ]
    },
    {
      "name": "updateTokenStats",
      "discriminator": [
        204,
        141,
        43,
        8,
        99,
        142,
        205,
        101
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "tokenStats",
          "writable": true
        },
        {
          "name": "database"
        }
      ],
      "args": [
        {
          "name": "startIndex",
          "type": "u8"
        },
        {
          "name": "endIndex",
          "type": "u8"
        }
      ]
    },
    {
      "name": "updateTokenStatsV2",
      "discriminator": [
        176,
        137,
        40,
        199,
        138,
        237,
        183,
        238
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "tokenStats",
          "writable": true
        },
        {
          "name": "database"
        }
      ],
      "args": [
        {
          "name": "token",
          "type": "u8"
        },
        {
          "name": "data",
          "type": {
            "array": [
              {
                "array": [
                  "u64",
                  3
                ]
              },
              6
            ]
          }
        }
      ]
    },
    {
      "name": "updateCurveData",
      "discriminator": [
        159,
        128,
        18,
        180,
        18,
        190,
        166,
        46
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "curveData",
          "writable": true
        }
      ],
      "args": [
        {
          "name": "startIndex",
          "type": "u8"
        },
        {
          "name": "endIndex",
          "type": "u8"
        },
        {
          "name": "priceData",
          "type": {
            "array": [
              {
                "array": [
                  {
                    "array": [
                      {
                        "array": [
                          "u64",
                          2
                        ]
                      },
                      10
                    ]
                  },
                  2
                ]
              },
              3
            ]
          }
        }
      ]
    },
    {
      "name": "initializeTokenList",
      "discriminator": [
        177,
        254,
        236,
        199,
        227,
        201,
        142,
        179
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "tokenList",
          "writable": true
        },
        {
          "name": "systemProgram"
        }
      ],
      "args": []
    },
    {
      "name": "initializeDatabase",
      "discriminator": [
        210,
        169,
        3,
        198,
        98,
        238,
        23,
        40
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "database",
          "writable": true
        },
        {
          "name": "systemProgram"
        }
      ],
      "args": []
    },
    {
      "name": "initializeTokenStats",
      "discriminator": [
        234,
        129,
        212,
        97,
        174,
        172,
        212,
        102
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "tokenStats",
          "writable": true
        },
        {
          "name": "systemProgram"
        }
      ],
      "args": []
    },
    {
      "name": "initializeCurveData",
      "discriminator": [
        123,
        246,
        28,
        169,
        14,
        102,
        111,
        189
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "curveData",
          "writable": true
        },
        {
          "name": "systemProgram"
        }
      ],
      "args": []
    },
    {
      "name": "closeDatabase",
      "discriminator": [
        103,
        169,
        4,
        1,
        13,
        77,
        6,
        153
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "database",
          "writable": true
        },
        {
          "name": "systemProgram"
        }
      ],
      "args": []
    },
    {
      "name": "closeTokenStats",
      "discriminator": [
        59,
        235,
        178,
        110,
        116,
        224,
        231,
        75
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "tokenStats",
          "writable": true
        },
        {
          "name": "systemProgram"
        }
      ],
      "args": []
    },
    {
      "name": "closeTokenList",
      "discriminator": [
        57,
        90,
        77,
        95,
        117,
        161,
        100,
        222
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "tokenList",
          "writable": true
        },
        {
          "name": "systemProgram"
        }
      ],
      "args": []
    },
    {
      "name": "closeToken",
      "discriminator": [
        26,
        74,
        236,
        151,
        104,
        64,
        183,
        249
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "pdaAccount",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "tokenAccount",
          "writable": true
        },
        {
          "name": "systemProgram"
        },
        {
          "name": "tokenProgram"
        }
      ],
      "args": []
    },
    {
      "name": "createFundTokenMintMetadata",
      "discriminator": [
        3,
        229,
        115,
        126,
        144,
        130,
        135,
        7
      ],
      "accounts": [
        {
          "name": "manager",
          "writable": true,
          "signer": true
        },
        {
          "name": "fundToken"
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "updateAuthority",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "metadataAccount",
          "writable": true
        },
        {
          "name": "metadataProgram"
        },
        {
          "name": "systemProgram"
        },
        {
          "name": "rent"
        }
      ],
      "args": [
        {
          "name": "params",
          "type": {
            "defined": {
              "name": "updateMetadataParams"
            }
          }
        }
      ]
    },
    {
      "name": "updateFundTokenMintMetadata",
      "discriminator": [
        209,
        33,
        201,
        11,
        12,
        124,
        34,
        54
      ],
      "accounts": [
        {
          "name": "manager",
          "writable": true,
          "signer": true
        },
        {
          "name": "fundToken"
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "updateAuthority",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "metadataAccount",
          "writable": true
        },
        {
          "name": "metadataProgram"
        },
        {
          "name": "systemProgram"
        },
        {
          "name": "rent"
        }
      ],
      "args": [
        {
          "name": "params",
          "type": {
            "defined": {
              "name": "updateMetadataParams"
            }
          }
        }
      ]
    }
  ],
  "accounts": [
    {
      "name": "buyState",
      "discriminator": [
        37,
        16,
        214,
        100,
        229,
        251,
        20,
        36
      ]
    },
    {
      "name": "database",
      "discriminator": [
        235,
        53,
        109,
        35,
        184,
        30,
        81,
        213
      ]
    },
    {
      "name": "fundState",
      "discriminator": [
        3,
        254,
        145,
        43,
        146,
        96,
        162,
        104
      ]
    },
    {
      "name": "prismData",
      "discriminator": [
        126,
        79,
        160,
        183,
        77,
        115,
        246,
        38
      ]
    },
    {
      "name": "tokenList",
      "discriminator": [
        145,
        167,
        153,
        173,
        5,
        187,
        157,
        150
      ]
    },
    {
      "name": "tokenStats",
      "discriminator": [
        7,
        126,
        25,
        232,
        73,
        79,
        202,
        236
      ]
    },
    {
      "name": "rebalanceState",
      "discriminator": [
        181,
        223,
        84,
        225,
        180,
        157,
        72,
        210
      ]
    }
  ],
  "errors": [
    {
      "code": 6000,
      "name": "alreadySet",
      "msg": "Rules are already set"
    },
    {
      "code": 6001,
      "name": "incorrectPdaUsdcAccount",
      "msg": "Incorrect pda_usdc_account"
    },
    {
      "code": 6002,
      "name": "incorrectOracleAccount",
      "msg": "Incorrect Oracle account provided"
    },
    {
      "code": 6003,
      "name": "incorrectSellState",
      "msg": "Fund_state is provided instead of sell_state"
    },
    {
      "code": 6004,
      "name": "incorrectPdaTokenAccount",
      "msg": "Incorrect pda_token_account"
    },
    {
      "code": 6005,
      "name": "updateCurrentWeights",
      "msg": "Current weights need to be updated"
    },
    {
      "code": 6006,
      "name": "timeHasntPassed",
      "msg": "Enough time hasn't passed yet"
    },
    {
      "code": 6007,
      "name": "inThreshold",
      "msg": "weight is in rebalance threshold"
    },
    {
      "code": 6008,
      "name": "moreThan20Assets",
      "msg": "Number of Assets must be less or equal to 20"
    },
    {
      "code": 6009,
      "name": "constraintError",
      "msg": "Constraint error"
    },
    {
      "code": 6010,
      "name": "notActivelyManaged",
      "msg": "Fund isn't actively managed"
    },
    {
      "code": 6011,
      "name": "incorrectSmfFeeAccount",
      "msg": "Incorrect smf_fee_account"
    },
    {
      "code": 6012,
      "name": "expoRangeError",
      "msg": "Expo must be in [0;1] range"
    },
    {
      "code": 6013,
      "name": "noRefilterAndReweightForSellState",
      "msg": "Refilter or Reweight shouldn't be called for sell_state"
    },
    {
      "code": 6014,
      "name": "incorrectRebalanceFeeAccount",
      "msg": "Incorrect rebalance_fee_account"
    },
    {
      "code": 6015,
      "name": "tokenIsAlreadyBought",
      "msg": "Rebalance function already bought this token"
    },
    {
      "code": 6016,
      "name": "fundStateMustBeUpdated",
      "msg": "Fund state must be updated"
    },
    {
      "code": 6017,
      "name": "ruleWeightLimitError",
      "msg": "Rule weight is more than 1000"
    },
    {
      "code": 6018,
      "name": "intervalLimitsAreIncorrect",
      "msg": "Refilter, Reweight or Rebalance interval limits are incorrect"
    },
    {
      "code": 6019,
      "name": "slippageError",
      "msg": "Swap Exceeded FundState Rebalance Slippage"
    },
    {
      "code": 6020,
      "name": "tokenIsntPresentInState",
      "msg": "Passed token is not present in buy_state"
    },
    {
      "code": 6021,
      "name": "lessTokenInFund",
      "msg": "There are less free tokens Tokens in fund_state than buyer wants"
    },
    {
      "code": 6022,
      "name": "usdcIsntEnough",
      "msg": "USDC worth is less than token worth"
    },
    {
      "code": 6023,
      "name": "exceedsTargetWeight",
      "msg": "Token weight after swap exceeds target weight"
    },
    {
      "code": 6024,
      "name": "fundWorthDecreasing",
      "msg": "Fund worth fill decrease after swap"
    },
    {
      "code": 6025,
      "name": "slippageExceeded",
      "msg": "Swap slippage exceeded"
    },
    {
      "code": 6026,
      "name": "incorrectManagerAccount",
      "msg": "Transaction should be executed by basket manager"
    },
    {
      "code": 6027,
      "name": "wrongSigner",
      "msg": "Sell state rebalance should be executed by manager"
    },
    {
      "code": 6028,
      "name": "claimTokens",
      "msg": "Only ClaimTokens function is available on this sellState"
    },
    {
      "code": 6029,
      "name": "filterOrWeightByError",
      "msg": "filter_by and weight_by should be in [0;3] range"
    },
    {
      "code": 6030,
      "name": "filterOrWeightDaysError",
      "msg": "filter_days and weight_days should be in [0;5] range"
    },
    {
      "code": 6031,
      "name": "sortByError",
      "msg": "sort_by must be 0 or 1"
    },
    {
      "code": 6032,
      "name": "incorrectRefferalFeeAccount",
      "msg": "Incorrect refferal USDC account"
    },
    {
      "code": 6033,
      "name": "incorrectTokenAccount",
      "msg": "Incorrect Buyer Token account"
    },
    {
      "code": 6034,
      "name": "tokenStatsShouldBeUpdated",
      "msg": "To call refilter/reweight function token stats must be updated"
    },
    {
      "code": 6035,
      "name": "sellState",
      "msg": "Fund is a SellState"
    },
    {
      "code": 6036,
      "name": "programFrozen",
      "msg": "Program is frozen. Contact developer support."
    },
    {
      "code": 6037,
      "name": "programIsFrozen",
      "msg": "Program is frozen by authority."
    },
    {
      "code": 6038,
      "name": "tvlLimitReached",
      "msg": "TVL Limit reached as symmetry funds are in beta mode."
    },
    {
      "code": 6039,
      "name": "buyLimit",
      "msg": "Max allowed contribution is limited to 5000 USDC"
    },
    {
      "code": 6040,
      "name": "pythValidSlot",
      "msg": "Pyth invalid slot"
    },
    {
      "code": 6041,
      "name": "pythStatus",
      "msg": "Pyth status should be Trading"
    },
    {
      "code": 6042,
      "name": "pythConfidence",
      "msg": "Pyth low confidence"
    },
    {
      "code": 6043,
      "name": "negativePrice",
      "msg": "Price can not be negative"
    },
    {
      "code": 6044,
      "name": "priceOverflow",
      "msg": "Pyth low confidence"
    },
    {
      "code": 6045,
      "name": "oracleNotSupported",
      "msg": "Oracle not supported"
    },
    {
      "code": 6046,
      "name": "assetPool",
      "msg": "Asset Pool shouldn't contain repeating tokens and should contain USDC"
    },
    {
      "code": 6047,
      "name": "invalidInstructionData",
      "msg": "Invalid instruction data was provided"
    },
    {
      "code": 6048,
      "name": "notAssociatedTokenAccount",
      "msg": "Fee account is not associated"
    },
    {
      "code": 6049,
      "name": "couldNotSwap",
      "msg": "Could not swap enough amount"
    },
    {
      "code": 6050,
      "name": "incorrectTokenId",
      "msg": "Incorrect token Id"
    },
    {
      "code": 6051,
      "name": "fixedRule",
      "msg": "Fixed rule should contain only 1 asset"
    },
    {
      "code": 6052,
      "name": "fundIsActive",
      "msg": "Fund is still active"
    },
    {
      "code": 6053,
      "name": "buyStateIsBeingClaimed",
      "msg": "Buy state is being claimed"
    },
    {
      "code": 6054,
      "name": "assetPoolContainsOfflineOracleToken",
      "msg": "Asset pool contains token with offline oracle status"
    },
    {
      "code": 6055,
      "name": "lpOf",
      "msg": "Liquidity Provision is disabled for one of the tokens"
    },
    {
      "code": 6056,
      "name": "swbOracleTimestamp",
      "msg": "Swb Oracle not updated in last X seconds"
    },
    {
      "code": 6057,
      "name": "rebalanceDisabled",
      "msg": "Auto Rebalance has been disabled by fund manager"
    },
    {
      "code": 6058,
      "name": "privateFund",
      "msg": "This is a private fund. Only manager can contribute"
    },
    {
      "code": 6059,
      "name": "incorrectOwner",
      "msg": "Account not owned by the program"
    },
    {
      "code": 6060,
      "name": "noPermission",
      "msg": "Change not permitted"
    },
    {
      "code": 6061,
      "name": "wrongSymbolFormat",
      "msg": "Symbol should contain 3-10 letters"
    },
    {
      "code": 6062,
      "name": "wrongNameFormat",
      "msg": "Name should contain 5-60 characters"
    },
    {
      "code": 6063,
      "name": "wrongUriFormat",
      "msg": "Metadata URI should contain 0-300 characters"
    },
    {
      "code": 6064,
      "name": "incorrectFeeDelegateAccount",
      "msg": "Provided fee account should be owned by fee-delegate/manager"
    },
    {
      "code": 6065,
      "name": "wrongProgram",
      "msg": "Symmetry Engine Program mismatch"
    },
    {
      "code": 6066,
      "name": "wrongAccount",
      "msg": "Account(s) do not match"
    },
    {
      "code": 6067,
      "name": "cannotWithdrawBeforeDeposit",
      "msg": "Cannot have multiple withdraw instructions"
    },
    {
      "code": 6068,
      "name": "noDepositInstruction",
      "msg": "Deposit instruction is missing"
    },
    {
      "code": 6069,
      "name": "zeroPrice",
      "msg": "Oracle loaded zero price"
    },
    {
      "code": 6070,
      "name": "withdrawTooLarge",
      "msg": "Withdraw request amount too large"
    }
  ],
  "types": [
    {
      "name": "rule",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "filterBy",
            "type": "u64"
          },
          {
            "name": "filterDays",
            "type": "u64"
          },
          {
            "name": "sortBy",
            "type": "u64"
          },
          {
            "name": "totalWeight",
            "type": "u64"
          },
          {
            "name": "fixedAsset",
            "type": "u64"
          },
          {
            "name": "numAssets",
            "type": "u64"
          },
          {
            "name": "weightBy",
            "type": "u64"
          },
          {
            "name": "weightDays",
            "type": "u64"
          },
          {
            "name": "weightExpo",
            "type": "i64"
          },
          {
            "name": "excludeNum",
            "type": "u64"
          },
          {
            "name": "excludeAssets",
            "type": {
              "array": [
                "u64",
                10
              ]
            }
          },
          {
            "name": "ruleAssets",
            "type": {
              "array": [
                "u64",
                20
              ]
            }
          }
        ]
      }
    },
    {
      "name": "stats",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "days",
            "type": "u64"
          },
          {
            "name": "performance",
            "type": "u64"
          },
          {
            "name": "volume",
            "type": "u64"
          },
          {
            "name": "mcap",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "tokenData",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "price",
            "type": {
              "array": [
                "u64",
                460
              ]
            }
          },
          {
            "name": "circulatingSupply",
            "type": {
              "array": [
                "u64",
                460
              ]
            }
          },
          {
            "name": "volume",
            "type": {
              "array": [
                "u64",
                460
              ]
            }
          },
          {
            "name": "timestamp",
            "type": {
              "array": [
                "u64",
                460
              ]
            }
          },
          {
            "name": "index",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "tokenPriceData",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "amount",
            "type": {
              "array": [
                "u64",
                10
              ]
            }
          },
          {
            "name": "price",
            "type": {
              "array": [
                "u64",
                10
              ]
            }
          }
        ]
      }
    },
    {
      "name": "tokenSettings",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "tokenMint",
            "type": "pubkey"
          },
          {
            "name": "decimals",
            "type": "u8"
          },
          {
            "name": "coingeckoId",
            "type": {
              "array": [
                "u8",
                30
              ]
            }
          },
          {
            "name": "pdaTokenAccount",
            "type": "pubkey"
          },
          {
            "name": "oracleType",
            "type": "u8"
          },
          {
            "name": "oracleAccount",
            "type": "pubkey"
          },
          {
            "name": "oracleIndex",
            "type": "u8"
          },
          {
            "name": "oracleConfidencePct",
            "type": "u8"
          },
          {
            "name": "fixedConfidenceBps",
            "type": "u8"
          },
          {
            "name": "tokenSwapFeeAfterTwBps",
            "type": "u8"
          },
          {
            "name": "tokenSwapFeeBeforeTwBps",
            "type": "u8"
          },
          {
            "name": "isLive",
            "type": "u8"
          },
          {
            "name": "lpOn",
            "type": "u8"
          },
          {
            "name": "useCurveData",
            "type": "u8"
          },
          {
            "name": "additionalData",
            "type": {
              "array": [
                "u8",
                63
              ]
            }
          }
        ]
      }
    },
    {
      "name": "updateMetadataParams",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "name",
            "type": "string"
          },
          {
            "name": "symbol",
            "type": "string"
          },
          {
            "name": "uri",
            "type": "string"
          }
        ]
      }
    },
    {
      "name": "buyState",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "fund",
            "type": "pubkey"
          },
          {
            "name": "buyer",
            "type": "pubkey"
          },
          {
            "name": "fundManager",
            "type": "pubkey"
          },
          {
            "name": "hostPlatform",
            "type": "pubkey"
          },
          {
            "name": "buyerFundTokenAccount",
            "type": "pubkey"
          },
          {
            "name": "usdcContributed",
            "type": "u64"
          },
          {
            "name": "usdcLeft",
            "type": "u64"
          },
          {
            "name": "token",
            "type": {
              "array": [
                "u64",
                20
              ]
            }
          },
          {
            "name": "amountToSpend",
            "type": {
              "array": [
                "u64",
                20
              ]
            }
          },
          {
            "name": "amountBought",
            "type": {
              "array": [
                "u64",
                20
              ]
            }
          },
          {
            "name": "creationTimestamp",
            "type": "u64"
          },
          {
            "name": "contributedValue",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "database",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "data",
            "type": {
              "array": [
                {
                  "defined": {
                    "name": "tokenData"
                  }
                },
                200
              ]
            }
          },
          {
            "name": "numberOfTokens",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "fundState",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "version",
            "type": "u64"
          },
          {
            "name": "manager",
            "type": "pubkey"
          },
          {
            "name": "fundToken",
            "type": "pubkey"
          },
          {
            "name": "managerFee",
            "type": "u64"
          },
          {
            "name": "supplyOutstanding",
            "type": "u64"
          },
          {
            "name": "activelyManaged",
            "type": "u64"
          },
          {
            "name": "activeBuyStates",
            "type": "u64"
          },
          {
            "name": "sellState",
            "type": "u64"
          },
          {
            "name": "rebalanceSellState",
            "type": "u64"
          },
          {
            "name": "hostPubkey",
            "type": "pubkey"
          },
          {
            "name": "hostFee",
            "type": "u64"
          },
          {
            "name": "numOfTokens",
            "type": "u64"
          },
          {
            "name": "currentCompToken",
            "type": {
              "array": [
                "u64",
                20
              ]
            }
          },
          {
            "name": "currentCompAmount",
            "type": {
              "array": [
                "u64",
                20
              ]
            }
          },
          {
            "name": "lastRebalanceTime",
            "type": {
              "array": [
                "u64",
                20
              ]
            }
          },
          {
            "name": "targetWeight",
            "type": {
              "array": [
                "u64",
                20
              ]
            }
          },
          {
            "name": "weightSum",
            "type": "u64"
          },
          {
            "name": "currentWeight",
            "type": {
              "array": [
                "u64",
                20
              ]
            }
          },
          {
            "name": "fundWorth",
            "type": "u64"
          },
          {
            "name": "lastUpdateTime",
            "type": "u64"
          },
          {
            "name": "refilterInterval",
            "type": "u64"
          },
          {
            "name": "reweightInterval",
            "type": "u64"
          },
          {
            "name": "rebalanceInterval",
            "type": "u64"
          },
          {
            "name": "rebalanceThreshold",
            "type": "u64"
          },
          {
            "name": "rebalanceSlippage",
            "type": "u64"
          },
          {
            "name": "lpOffsetThreshold",
            "type": "u64"
          },
          {
            "name": "lastRefilterTime",
            "type": "u64"
          },
          {
            "name": "lastReweightTime",
            "type": "u64"
          },
          {
            "name": "rulesReady",
            "type": "u64"
          },
          {
            "name": "assetPool",
            "type": {
              "array": [
                "u64",
                200
              ]
            }
          },
          {
            "name": "numOfRules",
            "type": "u64"
          },
          {
            "name": "rules",
            "type": {
              "array": [
                {
                  "defined": {
                    "name": "rule"
                  }
                },
                20
              ]
            }
          },
          {
            "name": "numRuleTokens",
            "type": "u64"
          },
          {
            "name": "ruleTokens",
            "type": {
              "array": [
                "u64",
                20
              ]
            }
          },
          {
            "name": "ruleTokenWeights",
            "type": {
              "array": [
                "u64",
                20
              ]
            }
          },
          {
            "name": "messageDigestFive",
            "type": {
              "array": [
                "u8",
                16
              ]
            }
          },
          {
            "name": "disableRebalance",
            "type": "u64"
          },
          {
            "name": "disableLp",
            "type": "u64"
          },
          {
            "name": "allowMultiAssetContribution",
            "type": "u8"
          },
          {
            "name": "symbolLength",
            "type": "u8"
          },
          {
            "name": "symbol",
            "type": {
              "array": [
                "u8",
                10
              ]
            }
          },
          {
            "name": "nameLength",
            "type": "u8"
          },
          {
            "name": "name",
            "type": {
              "array": [
                "u8",
                60
              ]
            }
          },
          {
            "name": "uriLength",
            "type": "u8"
          },
          {
            "name": "uri",
            "type": {
              "array": [
                "u8",
                300
              ]
            }
          },
          {
            "name": "feeDelegate",
            "type": "pubkey"
          },
          {
            "name": "extraBytes",
            "type": {
              "array": [
                "u8",
                362
              ]
            }
          }
        ]
      }
    },
    {
      "name": "prismData",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "buy",
            "type": {
              "array": [
                {
                  "defined": {
                    "name": "tokenPriceData"
                  }
                },
                200
              ]
            }
          },
          {
            "name": "sell",
            "type": {
              "array": [
                {
                  "defined": {
                    "name": "tokenPriceData"
                  }
                },
                200
              ]
            }
          }
        ]
      }
    },
    {
      "name": "tokenList",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "numTokens",
            "type": "u64"
          },
          {
            "name": "list",
            "type": {
              "array": [
                {
                  "defined": {
                    "name": "tokenSettings"
                  }
                },
                200
              ]
            }
          }
        ]
      }
    },
    {
      "name": "tokenStats",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "stats",
            "type": {
              "array": [
                {
                  "array": [
                    {
                      "defined": {
                        "name": "stats"
                      }
                    },
                    6
                  ]
                },
                200
              ]
            }
          }
        ]
      }
    },
    {
      "name": "rebalanceState",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "basketState",
            "type": "pubkey"
          },
          {
            "name": "timestamp",
            "type": "u64"
          },
          {
            "name": "fromToken",
            "type": "u8"
          },
          {
            "name": "fromAmount",
            "type": "u64"
          },
          {
            "name": "fromValue",
            "type": "u64"
          },
          {
            "name": "toToken",
            "type": "u8"
          },
          {
            "name": "signerToTokenBalance",
            "type": "u64"
          }
        ]
      }
    }
  ]
};

export const IDL: BasketsIDL = {
  "address": "2KehYt3KsEQR53jYcxjbQp2d2kCp4AkuQW68atufRwSr",
  "metadata": {
    "name": "funds",
    "version": "0.1.0",
    "spec": "0.1.0"
  },
  "instructions": [
    {
      "name": "withdrawBeforeRebalance",
      "discriminator": [
        195,
        202,
        37,
        147,
        148,
        78,
        45,
        145
      ],
      "accounts": [
        {
          "name": "signer",
          "writable": true,
          "signer": true
        },
        {
          "name": "basketState",
          "writable": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "oracleSol",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "oracleTokenFrom",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "oracleTokenTo",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaAccount",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaTokenFrom",
          "writable": true
        },
        {
          "name": "pdaTokenTo",
          "writable": true
        },
        {
          "name": "signerTokenFrom",
          "writable": true
        },
        {
          "name": "signerTokenTo",
          "writable": true
        },
        {
          "name": "fromTokenMint"
        },
        {
          "name": "toTokenMint"
        },
        {
          "name": "rebalanceState",
          "writable": true
        },
        {
          "name": "tokenProgram"
        },
        {
          "name": "associatedTokenProgram"
        },
        {
          "name": "systemProgram"
        },
        {
          "name": "rent"
        },
        {
          "name": "instructionsSysvar",
          "docs": [
            "CHECK"
          ]
        }
      ],
      "args": [
        {
          "name": "tokenFrom",
          "type": "u8"
        },
        {
          "name": "tokenTo",
          "type": "u8"
        },
        {
          "name": "withdrawAmount",
          "type": "u64"
        }
      ]
    },
    {
      "name": "depositAfterRebalance",
      "discriminator": [
        14,
        73,
        13,
        249,
        241,
        0,
        197,
        7
      ],
      "accounts": [
        {
          "name": "signer",
          "writable": true,
          "signer": true
        },
        {
          "name": "basketState",
          "writable": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "oracleSol",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "oracleTokenTo",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaAccount",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaTokenTo",
          "writable": true
        },
        {
          "name": "signerTokenTo",
          "writable": true
        },
        {
          "name": "rebalanceState",
          "writable": true
        },
        {
          "name": "rebalanceFeeAccount",
          "writable": true
        },
        {
          "name": "tokenProgram"
        },
        {
          "name": "systemProgram"
        }
      ],
      "args": []
    },
    {
      "name": "createBasket",
      "discriminator": [
        47,
        105,
        155,
        148,
        15,
        169,
        202,
        211
      ],
      "accounts": [
        {
          "name": "manager",
          "writable": true,
          "signer": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "pdaAccount",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "fundToken",
          "writable": true
        },
        {
          "name": "createFeeSweeper",
          "docs": [
            "CHECK"
          ],
          "writable": true
        },
        {
          "name": "metadataAccount",
          "writable": true
        },
        {
          "name": "metadataProgram"
        },
        {
          "name": "systemProgram"
        },
        {
          "name": "tokenProgram"
        },
        {
          "name": "rent"
        },
        {
          "name": "host",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "feeDelegate",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "seedPubkey",
          "docs": [
            "CHECK"
          ]
        }
      ],
      "args": [
        {
          "name": "managerFee",
          "type": "u16"
        },
        {
          "name": "hostFee",
          "type": "u16"
        },
        {
          "name": "basketType",
          "type": "u8"
        },
        {
          "name": "rebalanceInterval",
          "type": "u64"
        },
        {
          "name": "rebalanceThreshold",
          "type": "u16"
        },
        {
          "name": "rebalanceSlippage",
          "type": "u16"
        },
        {
          "name": "lpOffsetThreshold",
          "type": "u16"
        },
        {
          "name": "rebalanceAndLp",
          "type": {
            "array": [
              "u8",
              2
            ]
          }
        },
        {
          "name": "numOfTokens",
          "type": "u8"
        },
        {
          "name": "targetComposition",
          "type": {
            "array": [
              "u8",
              15
            ]
          }
        },
        {
          "name": "targetWeights",
          "type": {
            "array": [
              "u32",
              15
            ]
          }
        },
        {
          "name": "params",
          "type": {
            "defined": {
              "name": "updateMetadataParams"
            }
          }
        }
      ]
    },
    {
      "name": "editBasket",
      "discriminator": [
        38,
        120,
        23,
        32,
        19,
        73,
        131,
        177
      ],
      "accounts": [
        {
          "name": "manager",
          "writable": true,
          "signer": true
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "feeDelegate",
          "docs": [
            "CHECK"
          ]
        }
      ],
      "args": [
        {
          "name": "managerFee",
          "type": "u16"
        },
        {
          "name": "rebalanceInterval",
          "type": "u64"
        },
        {
          "name": "rebalanceThreshold",
          "type": "u16"
        },
        {
          "name": "rebalanceSlippage",
          "type": "u16"
        },
        {
          "name": "lpOffsetThreshold",
          "type": "u16"
        },
        {
          "name": "rebalanceAndLp",
          "type": {
            "array": [
              "u8",
              2
            ]
          }
        },
        {
          "name": "numOfTokens",
          "type": "u8"
        },
        {
          "name": "targetComposition",
          "type": {
            "array": [
              "u8",
              15
            ]
          }
        },
        {
          "name": "targetWeights",
          "type": {
            "array": [
              "u32",
              15
            ]
          }
        }
      ]
    },
    {
      "name": "editManager",
      "discriminator": [
        70,
        218,
        176,
        28,
        91,
        177,
        44,
        37
      ],
      "accounts": [
        {
          "name": "manager",
          "writable": true,
          "signer": true
        },
        {
          "name": "fundState",
          "writable": true
        }
      ],
      "args": [
        {
          "name": "newManager",
          "type": "pubkey"
        }
      ]
    },
    {
      "name": "closeBasket",
      "discriminator": [
        193,
        180,
        238,
        204,
        116,
        243,
        127,
        45
      ],
      "accounts": [
        {
          "name": "manager",
          "writable": true,
          "signer": true
        },
        {
          "name": "fundToken",
          "writable": true
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "pdaAccount",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "systemProgram"
        },
        {
          "name": "tokenProgram"
        }
      ],
      "args": []
    },
    {
      "name": "liquidityProvision",
      "discriminator": [
        130,
        113,
        21,
        240,
        202,
        190,
        11,
        3
      ],
      "accounts": [
        {
          "name": "buyer",
          "signer": true
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "pdaAccount",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaFromTokenAccount",
          "writable": true
        },
        {
          "name": "buyerFromTokenAccount",
          "docs": [
            "CHECK"
          ],
          "writable": true
        },
        {
          "name": "pdaToTokenAccount",
          "writable": true
        },
        {
          "name": "buyerToTokenAccount",
          "docs": [
            "CHECK"
          ],
          "writable": true
        },
        {
          "name": "oracleSol",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "swapFeeAccount",
          "docs": [
            "CHECK"
          ],
          "writable": true
        },
        {
          "name": "hostFeeAccount",
          "docs": [
            "CHECK"
          ],
          "writable": true
        },
        {
          "name": "managerFeeAccount",
          "docs": [
            "CHECK"
          ],
          "writable": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "curveData"
        },
        {
          "name": "tokenProgram"
        }
      ],
      "args": [
        {
          "name": "fromTokenId",
          "type": "u64"
        },
        {
          "name": "toTokenId",
          "type": "u64"
        },
        {
          "name": "fromAmount",
          "type": "u64"
        },
        {
          "name": "minimumToAmount",
          "type": "u64"
        }
      ]
    },
    {
      "name": "editBuyer",
      "discriminator": [
        103,
        148,
        71,
        105,
        43,
        63,
        117,
        241
      ],
      "accounts": [
        {
          "name": "buyer",
          "writable": true,
          "signer": true
        },
        {
          "name": "buyState",
          "writable": true
        },
        {
          "name": "newOwner",
          "writable": true
        },
        {
          "name": "buyerFundTokenAccount",
          "writable": true
        }
      ],
      "args": []
    },
    {
      "name": "buyFund",
      "discriminator": [
        251,
        50,
        158,
        62,
        174,
        248,
        165,
        197
      ],
      "accounts": [
        {
          "name": "buyer",
          "writable": true,
          "signer": true
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "fundToken",
          "writable": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "pdaAccount"
        },
        {
          "name": "pdaUsdcAccount",
          "writable": true
        },
        {
          "name": "buyerUsdcAccount",
          "writable": true
        },
        {
          "name": "managerUsdcAccount",
          "writable": true
        },
        {
          "name": "smfFeeAccount",
          "writable": true
        },
        {
          "name": "hostUsdcAccount",
          "writable": true
        },
        {
          "name": "buyerFundTokenAccount",
          "writable": true
        },
        {
          "name": "buyState",
          "writable": true
        },
        {
          "name": "systemProgram"
        },
        {
          "name": "tokenProgram"
        },
        {
          "name": "rent"
        },
        {
          "name": "associatedTokenProgram"
        },
        {
          "name": "seedPubkey",
          "docs": [
            "CHECK"
          ]
        }
      ],
      "args": [
        {
          "name": "amount",
          "type": "u64"
        }
      ]
    },
    {
      "name": "mintFund",
      "discriminator": [
        239,
        150,
        109,
        73,
        55,
        160,
        38,
        162
      ],
      "accounts": [
        {
          "name": "signer",
          "writable": true,
          "signer": true
        },
        {
          "name": "buyer",
          "docs": [
            "CHECK"
          ],
          "writable": true
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "buyState",
          "writable": true
        },
        {
          "name": "oracleSol",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaAccount",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "buyerFundTokenAccount",
          "writable": true
        },
        {
          "name": "fundToken",
          "writable": true
        },
        {
          "name": "systemProgram"
        },
        {
          "name": "tokenProgram"
        }
      ],
      "args": []
    },
    {
      "name": "instantMint",
      "discriminator": [
        70,
        132,
        88,
        215,
        74,
        8,
        209,
        236
      ],
      "accounts": [
        {
          "name": "authority",
          "writable": true,
          "signer": true
        },
        {
          "name": "buyerFundTokenAccount",
          "writable": true
        },
        {
          "name": "fundToken",
          "writable": true
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "pdaAccount"
        },
        {
          "name": "oracleSol",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "tokenProgram"
        }
      ],
      "args": [
        {
          "name": "amounts",
          "type": {
            "array": [
              "u64",
              20
            ]
          }
        }
      ]
    },
    {
      "name": "singleTokenDeposit",
      "discriminator": [
        197,
        12,
        239,
        83,
        28,
        4,
        37,
        97
      ],
      "accounts": [
        {
          "name": "authority",
          "writable": true,
          "signer": true
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "fundToken",
          "writable": true
        },
        {
          "name": "buyerTokenAccount",
          "writable": true
        },
        {
          "name": "buyerFundTokenAccount",
          "writable": true
        },
        {
          "name": "pdaAccount"
        },
        {
          "name": "pdaTokenAccount",
          "writable": true
        },
        {
          "name": "symmetryFeeAccount",
          "writable": true
        },
        {
          "name": "hostFeeAccount",
          "writable": true
        },
        {
          "name": "managerFeeAccount",
          "writable": true
        },
        {
          "name": "oracleAccount"
        },
        {
          "name": "oracleSol",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "tokenList"
        },
        {
          "name": "tokenProgram"
        }
      ],
      "args": [
        {
          "name": "token",
          "type": "u8"
        },
        {
          "name": "amount",
          "type": "u64"
        }
      ]
    },
    {
      "name": "sellFund",
      "discriminator": [
        78,
        253,
        22,
        133,
        38,
        176,
        110,
        5
      ],
      "accounts": [
        {
          "name": "seller",
          "writable": true,
          "signer": true
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "pdaAccount",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "newFundState",
          "writable": true
        },
        {
          "name": "sellerFundTokenAccount",
          "writable": true
        },
        {
          "name": "fundToken",
          "writable": true
        },
        {
          "name": "systemProgram"
        },
        {
          "name": "tokenProgram"
        },
        {
          "name": "rent"
        },
        {
          "name": "seedPubkey",
          "docs": [
            "CHECK"
          ]
        }
      ],
      "args": [
        {
          "name": "amount",
          "type": "u64"
        },
        {
          "name": "rebalance",
          "type": "u64"
        }
      ]
    },
    {
      "name": "instantBurn",
      "discriminator": [
        34,
        231,
        151,
        248,
        32,
        1,
        32,
        125
      ],
      "accounts": [
        {
          "name": "seller",
          "writable": true,
          "signer": true
        },
        {
          "name": "pdaAccount",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "fundToken",
          "writable": true
        },
        {
          "name": "sellerFundTokenAccount",
          "writable": true
        },
        {
          "name": "withdrawTokenMint",
          "writable": true
        },
        {
          "name": "sellerTokenAccount",
          "writable": true
        },
        {
          "name": "pdaTokenAccount",
          "writable": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "systemProgram"
        },
        {
          "name": "tokenProgram"
        }
      ],
      "args": [
        {
          "name": "burnAmount",
          "type": "u64"
        },
        {
          "name": "withdrawToken",
          "type": "u8"
        }
      ]
    },
    {
      "name": "claimToken",
      "discriminator": [
        116,
        206,
        27,
        191,
        166,
        19,
        0,
        73
      ],
      "accounts": [
        {
          "name": "signer",
          "writable": true,
          "signer": true
        },
        {
          "name": "manager",
          "docs": [
            "CHECK"
          ],
          "writable": true
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "sellerTokenAccount",
          "writable": true
        },
        {
          "name": "pdaTokenAccount",
          "writable": true
        },
        {
          "name": "pdaAccount",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "systemProgram"
        },
        {
          "name": "tokenProgram"
        }
      ],
      "args": [
        {
          "name": "tokenId",
          "type": "u64"
        }
      ]
    },
    {
      "name": "claimTokenFromBuyState",
      "discriminator": [
        132,
        137,
        239,
        21,
        204,
        222,
        213,
        220
      ],
      "accounts": [
        {
          "name": "signer",
          "writable": true,
          "signer": true
        },
        {
          "name": "buyer",
          "docs": [
            "CHECK"
          ],
          "writable": true
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "buyState",
          "writable": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "buyerTokenAccount",
          "writable": true
        },
        {
          "name": "pdaTokenAccount",
          "writable": true
        },
        {
          "name": "pdaAccount",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "systemProgram"
        },
        {
          "name": "tokenProgram"
        }
      ],
      "args": [
        {
          "name": "tokenId",
          "type": "u64"
        }
      ]
    },
    {
      "name": "updateCurrentWeights",
      "discriminator": [
        237,
        108,
        97,
        157,
        0,
        221,
        11,
        81
      ],
      "accounts": [
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "oracleSol",
          "docs": [
            "CHECK"
          ]
        }
      ],
      "args": []
    },
    {
      "name": "rebalanceBuyStateTransitive",
      "discriminator": [
        206,
        83,
        3,
        134,
        173,
        194,
        157,
        246
      ],
      "accounts": [
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "buyState",
          "writable": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "oracleSol",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "oracleToken",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "oracleUsdc",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaAccount",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaTokenAccount",
          "writable": true
        },
        {
          "name": "pdaMidAccount",
          "writable": true
        },
        {
          "name": "pdaUsdcAccount",
          "writable": true
        },
        {
          "name": "rebalanceFeeAccount",
          "writable": true
        },
        {
          "name": "tokenProgram"
        }
      ],
      "args": [
        {
          "name": "tokenId",
          "type": "u8"
        },
        {
          "name": "maxAmountToUse",
          "type": "u64"
        },
        {
          "name": "firstInstructionEnd",
          "type": "u8"
        },
        {
          "name": "secondInstructionEnd",
          "type": "u8"
        },
        {
          "name": "firstRemainingAccountsEnd",
          "type": "u8"
        },
        {
          "name": "instructionData",
          "type": {
            "array": [
              "u8",
              128
            ]
          }
        }
      ]
    },
    {
      "name": "rebalanceSellTransitive",
      "discriminator": [
        83,
        161,
        87,
        8,
        110,
        77,
        23,
        62
      ],
      "accounts": [
        {
          "name": "signer",
          "writable": true,
          "signer": true
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "oracleSol",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "oracleToken",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "oracleUsdc",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaAccount",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaTokenAccount",
          "writable": true
        },
        {
          "name": "pdaUsdcAccount",
          "writable": true
        },
        {
          "name": "pdaMidAccount",
          "writable": true
        },
        {
          "name": "rebalanceFeeAccount",
          "writable": true
        },
        {
          "name": "tokenProgram"
        }
      ],
      "args": [
        {
          "name": "tokenId",
          "type": "u8"
        },
        {
          "name": "maxAmountToSell",
          "type": "u64"
        },
        {
          "name": "firstInstructionEnd",
          "type": "u8"
        },
        {
          "name": "secondInstructionEnd",
          "type": "u8"
        },
        {
          "name": "firstRemainingAccountsEnd",
          "type": "u8"
        },
        {
          "name": "instructionData",
          "type": {
            "array": [
              "u8",
              128
            ]
          }
        }
      ]
    },
    {
      "name": "rebalanceBuyTransitive",
      "discriminator": [
        192,
        119,
        161,
        52,
        161,
        57,
        17,
        4
      ],
      "accounts": [
        {
          "name": "signer",
          "writable": true,
          "signer": true
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "oracleSol",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "oracleToken",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "oracleUsdc",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaAccount",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaTokenAccount",
          "writable": true
        },
        {
          "name": "pdaUsdcAccount",
          "writable": true
        },
        {
          "name": "pdaMidAccount",
          "writable": true
        },
        {
          "name": "rebalanceFeeAccount",
          "writable": true
        },
        {
          "name": "tokenProgram"
        }
      ],
      "args": [
        {
          "name": "tokenId",
          "type": "u8"
        },
        {
          "name": "maxAmountToSpend",
          "type": "u64"
        },
        {
          "name": "firstInstructionEnd",
          "type": "u8"
        },
        {
          "name": "secondInstructionEnd",
          "type": "u8"
        },
        {
          "name": "firstRemainingAccountsEnd",
          "type": "u8"
        },
        {
          "name": "instructionData",
          "type": {
            "array": [
              "u8",
              128
            ]
          }
        }
      ]
    },
    {
      "name": "rebalanceBuyState",
      "discriminator": [
        166,
        154,
        51,
        71,
        63,
        4,
        7,
        1
      ],
      "accounts": [
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "buyState",
          "writable": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "oracleSol",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "oracleToken",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "oracleUsdc",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaAccount",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaTokenAccount",
          "writable": true
        },
        {
          "name": "pdaUsdcAccount",
          "writable": true
        },
        {
          "name": "rebalanceFeeAccount",
          "writable": true
        },
        {
          "name": "tokenProgram"
        }
      ],
      "args": [
        {
          "name": "tokenId",
          "type": "u8"
        },
        {
          "name": "maxAmountToUse",
          "type": "u64"
        },
        {
          "name": "instructionSize",
          "type": "u8"
        },
        {
          "name": "instructionData",
          "type": {
            "array": [
              "u8",
              128
            ]
          }
        }
      ]
    },
    {
      "name": "rebalanceSell",
      "discriminator": [
        53,
        35,
        128,
        189,
        197,
        148,
        81,
        28
      ],
      "accounts": [
        {
          "name": "signer",
          "writable": true,
          "signer": true
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "oracleSol",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "oracleToken",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "oracleUsdc",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaAccount",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaTokenAccount",
          "writable": true
        },
        {
          "name": "pdaUsdcAccount",
          "writable": true
        },
        {
          "name": "rebalanceFeeAccount",
          "writable": true
        },
        {
          "name": "tokenProgram"
        }
      ],
      "args": [
        {
          "name": "tokenId",
          "type": "u8"
        },
        {
          "name": "maxAmountToSell",
          "type": "u64"
        },
        {
          "name": "instructionSize",
          "type": "u8"
        },
        {
          "name": "instructionData",
          "type": {
            "array": [
              "u8",
              128
            ]
          }
        }
      ]
    },
    {
      "name": "rebalanceBuy",
      "discriminator": [
        205,
        136,
        203,
        130,
        86,
        125,
        162,
        20
      ],
      "accounts": [
        {
          "name": "signer",
          "writable": true,
          "signer": true
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "tokenList"
        },
        {
          "name": "oracleSol",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "oracleToken",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "oracleUsdc",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaAccount",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "pdaTokenAccount",
          "writable": true
        },
        {
          "name": "pdaUsdcAccount",
          "writable": true
        },
        {
          "name": "rebalanceFeeAccount",
          "writable": true
        },
        {
          "name": "tokenProgram"
        }
      ],
      "args": [
        {
          "name": "tokenId",
          "type": "u8"
        },
        {
          "name": "maxAmountToSpend",
          "type": "u64"
        },
        {
          "name": "instructionSize",
          "type": "u8"
        },
        {
          "name": "instructionData",
          "type": {
            "array": [
              "u8",
              128
            ]
          }
        }
      ]
    },
    {
      "name": "updateTokenList",
      "discriminator": [
        58,
        208,
        96,
        231,
        40,
        122,
        12,
        190
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "tokenList",
          "writable": true
        },
        {
          "name": "systemProgram"
        }
      ],
      "args": [
        {
          "name": "index",
          "type": "u8"
        },
        {
          "name": "tokenMint",
          "type": "pubkey"
        },
        {
          "name": "decimals",
          "type": "u8"
        },
        {
          "name": "coingeckoId",
          "type": {
            "array": [
              "u8",
              30
            ]
          }
        },
        {
          "name": "pdaTokenAccount",
          "type": "pubkey"
        },
        {
          "name": "oracleType",
          "type": "u8"
        },
        {
          "name": "oracleAccount",
          "type": "pubkey"
        },
        {
          "name": "oracleIndex",
          "type": "u8"
        },
        {
          "name": "oracleConfidencePct",
          "type": "u8"
        },
        {
          "name": "fixedConfidenceBps",
          "type": "u8"
        },
        {
          "name": "tokenSwapFeeBeforeTwBps",
          "type": "u8"
        },
        {
          "name": "tokenSwapFeeAfterTwBps",
          "type": "u8"
        },
        {
          "name": "isLive",
          "type": "u8"
        },
        {
          "name": "lpOn",
          "type": "u8"
        },
        {
          "name": "useCurveData",
          "type": "u8"
        }
      ]
    },
    {
      "name": "modifyFeeStructure",
      "discriminator": [
        176,
        201,
        85,
        183,
        157,
        197,
        162,
        113
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "tokenList",
          "writable": true
        },
        {
          "name": "systemProgram"
        }
      ],
      "args": [
        {
          "name": "symmetryFee",
          "type": "u8"
        },
        {
          "name": "hostFee",
          "type": "u8"
        },
        {
          "name": "managerFee",
          "type": "u8"
        }
      ]
    },
    {
      "name": "freezeProgram",
      "discriminator": [
        197,
        134,
        244,
        37,
        49,
        38,
        23,
        79
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "tokenList",
          "writable": true
        },
        {
          "name": "systemProgram"
        }
      ],
      "args": []
    },
    {
      "name": "unfreezeProgram",
      "discriminator": [
        132,
        209,
        212,
        32,
        49,
        219,
        52,
        33
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "tokenList",
          "writable": true
        },
        {
          "name": "systemProgram"
        }
      ],
      "args": []
    },
    {
      "name": "updateDatabase",
      "discriminator": [
        85,
        153,
        200,
        159,
        33,
        197,
        46,
        77
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "database",
          "writable": true
        }
      ],
      "args": [
        {
          "name": "tokenId",
          "type": "u64"
        },
        {
          "name": "price",
          "type": "u64"
        },
        {
          "name": "circulatingSupply",
          "type": "u64"
        },
        {
          "name": "volume",
          "type": "u64"
        },
        {
          "name": "timestamp",
          "type": "u64"
        }
      ]
    },
    {
      "name": "clearDatabase",
      "discriminator": [
        3,
        215,
        185,
        177,
        43,
        253,
        204,
        10
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "database",
          "writable": true
        }
      ],
      "args": [
        {
          "name": "tokenId",
          "type": "u64"
        }
      ]
    },
    {
      "name": "updateTokenStats",
      "discriminator": [
        204,
        141,
        43,
        8,
        99,
        142,
        205,
        101
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "tokenStats",
          "writable": true
        },
        {
          "name": "database"
        }
      ],
      "args": [
        {
          "name": "startIndex",
          "type": "u8"
        },
        {
          "name": "endIndex",
          "type": "u8"
        }
      ]
    },
    {
      "name": "updateTokenStatsV2",
      "discriminator": [
        176,
        137,
        40,
        199,
        138,
        237,
        183,
        238
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "tokenStats",
          "writable": true
        },
        {
          "name": "database"
        }
      ],
      "args": [
        {
          "name": "token",
          "type": "u8"
        },
        {
          "name": "data",
          "type": {
            "array": [
              {
                "array": [
                  "u64",
                  3
                ]
              },
              6
            ]
          }
        }
      ]
    },
    {
      "name": "updateCurveData",
      "discriminator": [
        159,
        128,
        18,
        180,
        18,
        190,
        166,
        46
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "curveData",
          "writable": true
        }
      ],
      "args": [
        {
          "name": "startIndex",
          "type": "u8"
        },
        {
          "name": "endIndex",
          "type": "u8"
        },
        {
          "name": "priceData",
          "type": {
            "array": [
              {
                "array": [
                  {
                    "array": [
                      {
                        "array": [
                          "u64",
                          2
                        ]
                      },
                      10
                    ]
                  },
                  2
                ]
              },
              3
            ]
          }
        }
      ]
    },
    {
      "name": "initializeTokenList",
      "discriminator": [
        177,
        254,
        236,
        199,
        227,
        201,
        142,
        179
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "tokenList",
          "writable": true
        },
        {
          "name": "systemProgram"
        }
      ],
      "args": []
    },
    {
      "name": "initializeDatabase",
      "discriminator": [
        210,
        169,
        3,
        198,
        98,
        238,
        23,
        40
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "database",
          "writable": true
        },
        {
          "name": "systemProgram"
        }
      ],
      "args": []
    },
    {
      "name": "initializeTokenStats",
      "discriminator": [
        234,
        129,
        212,
        97,
        174,
        172,
        212,
        102
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "tokenStats",
          "writable": true
        },
        {
          "name": "systemProgram"
        }
      ],
      "args": []
    },
    {
      "name": "initializeCurveData",
      "discriminator": [
        123,
        246,
        28,
        169,
        14,
        102,
        111,
        189
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "curveData",
          "writable": true
        },
        {
          "name": "systemProgram"
        }
      ],
      "args": []
    },
    {
      "name": "closeDatabase",
      "discriminator": [
        103,
        169,
        4,
        1,
        13,
        77,
        6,
        153
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "database",
          "writable": true
        },
        {
          "name": "systemProgram"
        }
      ],
      "args": []
    },
    {
      "name": "closeTokenStats",
      "discriminator": [
        59,
        235,
        178,
        110,
        116,
        224,
        231,
        75
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "tokenStats",
          "writable": true
        },
        {
          "name": "systemProgram"
        }
      ],
      "args": []
    },
    {
      "name": "closeTokenList",
      "discriminator": [
        57,
        90,
        77,
        95,
        117,
        161,
        100,
        222
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "tokenList",
          "writable": true
        },
        {
          "name": "systemProgram"
        }
      ],
      "args": []
    },
    {
      "name": "closeToken",
      "discriminator": [
        26,
        74,
        236,
        151,
        104,
        64,
        183,
        249
      ],
      "accounts": [
        {
          "name": "owner",
          "writable": true,
          "signer": true
        },
        {
          "name": "pdaAccount",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "tokenAccount",
          "writable": true
        },
        {
          "name": "systemProgram"
        },
        {
          "name": "tokenProgram"
        }
      ],
      "args": []
    },
    {
      "name": "createFundTokenMintMetadata",
      "discriminator": [
        3,
        229,
        115,
        126,
        144,
        130,
        135,
        7
      ],
      "accounts": [
        {
          "name": "manager",
          "writable": true,
          "signer": true
        },
        {
          "name": "fundToken"
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "updateAuthority",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "metadataAccount",
          "writable": true
        },
        {
          "name": "metadataProgram"
        },
        {
          "name": "systemProgram"
        },
        {
          "name": "rent"
        }
      ],
      "args": [
        {
          "name": "params",
          "type": {
            "defined": {
              "name": "updateMetadataParams"
            }
          }
        }
      ]
    },
    {
      "name": "updateFundTokenMintMetadata",
      "discriminator": [
        209,
        33,
        201,
        11,
        12,
        124,
        34,
        54
      ],
      "accounts": [
        {
          "name": "manager",
          "writable": true,
          "signer": true
        },
        {
          "name": "fundToken"
        },
        {
          "name": "fundState",
          "writable": true
        },
        {
          "name": "updateAuthority",
          "docs": [
            "CHECK"
          ]
        },
        {
          "name": "metadataAccount",
          "writable": true
        },
        {
          "name": "metadataProgram"
        },
        {
          "name": "systemProgram"
        },
        {
          "name": "rent"
        }
      ],
      "args": [
        {
          "name": "params",
          "type": {
            "defined": {
              "name": "updateMetadataParams"
            }
          }
        }
      ]
    }
  ],
  "accounts": [
    {
      "name": "buyState",
      "discriminator": [
        37,
        16,
        214,
        100,
        229,
        251,
        20,
        36
      ]
    },
    {
      "name": "database",
      "discriminator": [
        235,
        53,
        109,
        35,
        184,
        30,
        81,
        213
      ]
    },
    {
      "name": "fundState",
      "discriminator": [
        3,
        254,
        145,
        43,
        146,
        96,
        162,
        104
      ]
    },
    {
      "name": "prismData",
      "discriminator": [
        126,
        79,
        160,
        183,
        77,
        115,
        246,
        38
      ]
    },
    {
      "name": "tokenList",
      "discriminator": [
        145,
        167,
        153,
        173,
        5,
        187,
        157,
        150
      ]
    },
    {
      "name": "tokenStats",
      "discriminator": [
        7,
        126,
        25,
        232,
        73,
        79,
        202,
        236
      ]
    },
    {
      "name": "rebalanceState",
      "discriminator": [
        181,
        223,
        84,
        225,
        180,
        157,
        72,
        210
      ]
    }
  ],
  "errors": [
    {
      "code": 6000,
      "name": "alreadySet",
      "msg": "Rules are already set"
    },
    {
      "code": 6001,
      "name": "incorrectPdaUsdcAccount",
      "msg": "Incorrect pda_usdc_account"
    },
    {
      "code": 6002,
      "name": "incorrectOracleAccount",
      "msg": "Incorrect Oracle account provided"
    },
    {
      "code": 6003,
      "name": "incorrectSellState",
      "msg": "Fund_state is provided instead of sell_state"
    },
    {
      "code": 6004,
      "name": "incorrectPdaTokenAccount",
      "msg": "Incorrect pda_token_account"
    },
    {
      "code": 6005,
      "name": "updateCurrentWeights",
      "msg": "Current weights need to be updated"
    },
    {
      "code": 6006,
      "name": "timeHasntPassed",
      "msg": "Enough time hasn't passed yet"
    },
    {
      "code": 6007,
      "name": "inThreshold",
      "msg": "weight is in rebalance threshold"
    },
    {
      "code": 6008,
      "name": "moreThan20Assets",
      "msg": "Number of Assets must be less or equal to 20"
    },
    {
      "code": 6009,
      "name": "constraintError",
      "msg": "Constraint error"
    },
    {
      "code": 6010,
      "name": "notActivelyManaged",
      "msg": "Fund isn't actively managed"
    },
    {
      "code": 6011,
      "name": "incorrectSmfFeeAccount",
      "msg": "Incorrect smf_fee_account"
    },
    {
      "code": 6012,
      "name": "expoRangeError",
      "msg": "Expo must be in [0;1] range"
    },
    {
      "code": 6013,
      "name": "noRefilterAndReweightForSellState",
      "msg": "Refilter or Reweight shouldn't be called for sell_state"
    },
    {
      "code": 6014,
      "name": "incorrectRebalanceFeeAccount",
      "msg": "Incorrect rebalance_fee_account"
    },
    {
      "code": 6015,
      "name": "tokenIsAlreadyBought",
      "msg": "Rebalance function already bought this token"
    },
    {
      "code": 6016,
      "name": "fundStateMustBeUpdated",
      "msg": "Fund state must be updated"
    },
    {
      "code": 6017,
      "name": "ruleWeightLimitError",
      "msg": "Rule weight is more than 1000"
    },
    {
      "code": 6018,
      "name": "intervalLimitsAreIncorrect",
      "msg": "Refilter, Reweight or Rebalance interval limits are incorrect"
    },
    {
      "code": 6019,
      "name": "slippageError",
      "msg": "Swap Exceeded FundState Rebalance Slippage"
    },
    {
      "code": 6020,
      "name": "tokenIsntPresentInState",
      "msg": "Passed token is not present in buy_state"
    },
    {
      "code": 6021,
      "name": "lessTokenInFund",
      "msg": "There are less free tokens Tokens in fund_state than buyer wants"
    },
    {
      "code": 6022,
      "name": "usdcIsntEnough",
      "msg": "USDC worth is less than token worth"
    },
    {
      "code": 6023,
      "name": "exceedsTargetWeight",
      "msg": "Token weight after swap exceeds target weight"
    },
    {
      "code": 6024,
      "name": "fundWorthDecreasing",
      "msg": "Fund worth fill decrease after swap"
    },
    {
      "code": 6025,
      "name": "slippageExceeded",
      "msg": "Swap slippage exceeded"
    },
    {
      "code": 6026,
      "name": "incorrectManagerAccount",
      "msg": "Transaction should be executed by basket manager"
    },
    {
      "code": 6027,
      "name": "wrongSigner",
      "msg": "Sell state rebalance should be executed by manager"
    },
    {
      "code": 6028,
      "name": "claimTokens",
      "msg": "Only ClaimTokens function is available on this sellState"
    },
    {
      "code": 6029,
      "name": "filterOrWeightByError",
      "msg": "filter_by and weight_by should be in [0;3] range"
    },
    {
      "code": 6030,
      "name": "filterOrWeightDaysError",
      "msg": "filter_days and weight_days should be in [0;5] range"
    },
    {
      "code": 6031,
      "name": "sortByError",
      "msg": "sort_by must be 0 or 1"
    },
    {
      "code": 6032,
      "name": "incorrectRefferalFeeAccount",
      "msg": "Incorrect refferal USDC account"
    },
    {
      "code": 6033,
      "name": "incorrectTokenAccount",
      "msg": "Incorrect Buyer Token account"
    },
    {
      "code": 6034,
      "name": "tokenStatsShouldBeUpdated",
      "msg": "To call refilter/reweight function token stats must be updated"
    },
    {
      "code": 6035,
      "name": "sellState",
      "msg": "Fund is a SellState"
    },
    {
      "code": 6036,
      "name": "programFrozen",
      "msg": "Program is frozen. Contact developer support."
    },
    {
      "code": 6037,
      "name": "programIsFrozen",
      "msg": "Program is frozen by authority."
    },
    {
      "code": 6038,
      "name": "tvlLimitReached",
      "msg": "TVL Limit reached as symmetry funds are in beta mode."
    },
    {
      "code": 6039,
      "name": "buyLimit",
      "msg": "Max allowed contribution is limited to 5000 USDC"
    },
    {
      "code": 6040,
      "name": "pythValidSlot",
      "msg": "Pyth invalid slot"
    },
    {
      "code": 6041,
      "name": "pythStatus",
      "msg": "Pyth status should be Trading"
    },
    {
      "code": 6042,
      "name": "pythConfidence",
      "msg": "Pyth low confidence"
    },
    {
      "code": 6043,
      "name": "negativePrice",
      "msg": "Price can not be negative"
    },
    {
      "code": 6044,
      "name": "priceOverflow",
      "msg": "Pyth low confidence"
    },
    {
      "code": 6045,
      "name": "oracleNotSupported",
      "msg": "Oracle not supported"
    },
    {
      "code": 6046,
      "name": "assetPool",
      "msg": "Asset Pool shouldn't contain repeating tokens and should contain USDC"
    },
    {
      "code": 6047,
      "name": "invalidInstructionData",
      "msg": "Invalid instruction data was provided"
    },
    {
      "code": 6048,
      "name": "notAssociatedTokenAccount",
      "msg": "Fee account is not associated"
    },
    {
      "code": 6049,
      "name": "couldNotSwap",
      "msg": "Could not swap enough amount"
    },
    {
      "code": 6050,
      "name": "incorrectTokenId",
      "msg": "Incorrect token Id"
    },
    {
      "code": 6051,
      "name": "fixedRule",
      "msg": "Fixed rule should contain only 1 asset"
    },
    {
      "code": 6052,
      "name": "fundIsActive",
      "msg": "Fund is still active"
    },
    {
      "code": 6053,
      "name": "buyStateIsBeingClaimed",
      "msg": "Buy state is being claimed"
    },
    {
      "code": 6054,
      "name": "assetPoolContainsOfflineOracleToken",
      "msg": "Asset pool contains token with offline oracle status"
    },
    {
      "code": 6055,
      "name": "lpOf",
      "msg": "Liquidity Provision is disabled for one of the tokens"
    },
    {
      "code": 6056,
      "name": "swbOracleTimestamp",
      "msg": "Swb Oracle not updated in last X seconds"
    },
    {
      "code": 6057,
      "name": "rebalanceDisabled",
      "msg": "Auto Rebalance has been disabled by fund manager"
    },
    {
      "code": 6058,
      "name": "privateFund",
      "msg": "This is a private fund. Only manager can contribute"
    },
    {
      "code": 6059,
      "name": "incorrectOwner",
      "msg": "Account not owned by the program"
    },
    {
      "code": 6060,
      "name": "noPermission",
      "msg": "Change not permitted"
    },
    {
      "code": 6061,
      "name": "wrongSymbolFormat",
      "msg": "Symbol should contain 3-10 letters"
    },
    {
      "code": 6062,
      "name": "wrongNameFormat",
      "msg": "Name should contain 5-60 characters"
    },
    {
      "code": 6063,
      "name": "wrongUriFormat",
      "msg": "Metadata URI should contain 0-300 characters"
    },
    {
      "code": 6064,
      "name": "incorrectFeeDelegateAccount",
      "msg": "Provided fee account should be owned by fee-delegate/manager"
    },
    {
      "code": 6065,
      "name": "wrongProgram",
      "msg": "Symmetry Engine Program mismatch"
    },
    {
      "code": 6066,
      "name": "wrongAccount",
      "msg": "Account(s) do not match"
    },
    {
      "code": 6067,
      "name": "cannotWithdrawBeforeDeposit",
      "msg": "Cannot have multiple withdraw instructions"
    },
    {
      "code": 6068,
      "name": "noDepositInstruction",
      "msg": "Deposit instruction is missing"
    },
    {
      "code": 6069,
      "name": "zeroPrice",
      "msg": "Oracle loaded zero price"
    },
    {
      "code": 6070,
      "name": "withdrawTooLarge",
      "msg": "Withdraw request amount too large"
    }
  ],
  "types": [
    {
      "name": "rule",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "filterBy",
            "type": "u64"
          },
          {
            "name": "filterDays",
            "type": "u64"
          },
          {
            "name": "sortBy",
            "type": "u64"
          },
          {
            "name": "totalWeight",
            "type": "u64"
          },
          {
            "name": "fixedAsset",
            "type": "u64"
          },
          {
            "name": "numAssets",
            "type": "u64"
          },
          {
            "name": "weightBy",
            "type": "u64"
          },
          {
            "name": "weightDays",
            "type": "u64"
          },
          {
            "name": "weightExpo",
            "type": "i64"
          },
          {
            "name": "excludeNum",
            "type": "u64"
          },
          {
            "name": "excludeAssets",
            "type": {
              "array": [
                "u64",
                10
              ]
            }
          },
          {
            "name": "ruleAssets",
            "type": {
              "array": [
                "u64",
                20
              ]
            }
          }
        ]
      }
    },
    {
      "name": "stats",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "days",
            "type": "u64"
          },
          {
            "name": "performance",
            "type": "u64"
          },
          {
            "name": "volume",
            "type": "u64"
          },
          {
            "name": "mcap",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "tokenData",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "price",
            "type": {
              "array": [
                "u64",
                460
              ]
            }
          },
          {
            "name": "circulatingSupply",
            "type": {
              "array": [
                "u64",
                460
              ]
            }
          },
          {
            "name": "volume",
            "type": {
              "array": [
                "u64",
                460
              ]
            }
          },
          {
            "name": "timestamp",
            "type": {
              "array": [
                "u64",
                460
              ]
            }
          },
          {
            "name": "index",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "tokenPriceData",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "amount",
            "type": {
              "array": [
                "u64",
                10
              ]
            }
          },
          {
            "name": "price",
            "type": {
              "array": [
                "u64",
                10
              ]
            }
          }
        ]
      }
    },
    {
      "name": "tokenSettings",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "tokenMint",
            "type": "pubkey"
          },
          {
            "name": "decimals",
            "type": "u8"
          },
          {
            "name": "coingeckoId",
            "type": {
              "array": [
                "u8",
                30
              ]
            }
          },
          {
            "name": "pdaTokenAccount",
            "type": "pubkey"
          },
          {
            "name": "oracleType",
            "type": "u8"
          },
          {
            "name": "oracleAccount",
            "type": "pubkey"
          },
          {
            "name": "oracleIndex",
            "type": "u8"
          },
          {
            "name": "oracleConfidencePct",
            "type": "u8"
          },
          {
            "name": "fixedConfidenceBps",
            "type": "u8"
          },
          {
            "name": "tokenSwapFeeAfterTwBps",
            "type": "u8"
          },
          {
            "name": "tokenSwapFeeBeforeTwBps",
            "type": "u8"
          },
          {
            "name": "isLive",
            "type": "u8"
          },
          {
            "name": "lpOn",
            "type": "u8"
          },
          {
            "name": "useCurveData",
            "type": "u8"
          },
          {
            "name": "additionalData",
            "type": {
              "array": [
                "u8",
                63
              ]
            }
          }
        ]
      }
    },
    {
      "name": "updateMetadataParams",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "name",
            "type": "string"
          },
          {
            "name": "symbol",
            "type": "string"
          },
          {
            "name": "uri",
            "type": "string"
          }
        ]
      }
    },
    {
      "name": "buyState",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "fund",
            "type": "pubkey"
          },
          {
            "name": "buyer",
            "type": "pubkey"
          },
          {
            "name": "fundManager",
            "type": "pubkey"
          },
          {
            "name": "hostPlatform",
            "type": "pubkey"
          },
          {
            "name": "buyerFundTokenAccount",
            "type": "pubkey"
          },
          {
            "name": "usdcContributed",
            "type": "u64"
          },
          {
            "name": "usdcLeft",
            "type": "u64"
          },
          {
            "name": "token",
            "type": {
              "array": [
                "u64",
                20
              ]
            }
          },
          {
            "name": "amountToSpend",
            "type": {
              "array": [
                "u64",
                20
              ]
            }
          },
          {
            "name": "amountBought",
            "type": {
              "array": [
                "u64",
                20
              ]
            }
          },
          {
            "name": "creationTimestamp",
            "type": "u64"
          },
          {
            "name": "contributedValue",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "database",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "data",
            "type": {
              "array": [
                {
                  "defined": {
                    "name": "tokenData"
                  }
                },
                200
              ]
            }
          },
          {
            "name": "numberOfTokens",
            "type": "u64"
          }
        ]
      }
    },
    {
      "name": "fundState",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "version",
            "type": "u64"
          },
          {
            "name": "manager",
            "type": "pubkey"
          },
          {
            "name": "fundToken",
            "type": "pubkey"
          },
          {
            "name": "managerFee",
            "type": "u64"
          },
          {
            "name": "supplyOutstanding",
            "type": "u64"
          },
          {
            "name": "activelyManaged",
            "type": "u64"
          },
          {
            "name": "activeBuyStates",
            "type": "u64"
          },
          {
            "name": "sellState",
            "type": "u64"
          },
          {
            "name": "rebalanceSellState",
            "type": "u64"
          },
          {
            "name": "hostPubkey",
            "type": "pubkey"
          },
          {
            "name": "hostFee",
            "type": "u64"
          },
          {
            "name": "numOfTokens",
            "type": "u64"
          },
          {
            "name": "currentCompToken",
            "type": {
              "array": [
                "u64",
                20
              ]
            }
          },
          {
            "name": "currentCompAmount",
            "type": {
              "array": [
                "u64",
                20
              ]
            }
          },
          {
            "name": "lastRebalanceTime",
            "type": {
              "array": [
                "u64",
                20
              ]
            }
          },
          {
            "name": "targetWeight",
            "type": {
              "array": [
                "u64",
                20
              ]
            }
          },
          {
            "name": "weightSum",
            "type": "u64"
          },
          {
            "name": "currentWeight",
            "type": {
              "array": [
                "u64",
                20
              ]
            }
          },
          {
            "name": "fundWorth",
            "type": "u64"
          },
          {
            "name": "lastUpdateTime",
            "type": "u64"
          },
          {
            "name": "refilterInterval",
            "type": "u64"
          },
          {
            "name": "reweightInterval",
            "type": "u64"
          },
          {
            "name": "rebalanceInterval",
            "type": "u64"
          },
          {
            "name": "rebalanceThreshold",
            "type": "u64"
          },
          {
            "name": "rebalanceSlippage",
            "type": "u64"
          },
          {
            "name": "lpOffsetThreshold",
            "type": "u64"
          },
          {
            "name": "lastRefilterTime",
            "type": "u64"
          },
          {
            "name": "lastReweightTime",
            "type": "u64"
          },
          {
            "name": "rulesReady",
            "type": "u64"
          },
          {
            "name": "assetPool",
            "type": {
              "array": [
                "u64",
                200
              ]
            }
          },
          {
            "name": "numOfRules",
            "type": "u64"
          },
          {
            "name": "rules",
            "type": {
              "array": [
                {
                  "defined": {
                    "name": "rule"
                  }
                },
                20
              ]
            }
          },
          {
            "name": "numRuleTokens",
            "type": "u64"
          },
          {
            "name": "ruleTokens",
            "type": {
              "array": [
                "u64",
                20
              ]
            }
          },
          {
            "name": "ruleTokenWeights",
            "type": {
              "array": [
                "u64",
                20
              ]
            }
          },
          {
            "name": "messageDigestFive",
            "type": {
              "array": [
                "u8",
                16
              ]
            }
          },
          {
            "name": "disableRebalance",
            "type": "u64"
          },
          {
            "name": "disableLp",
            "type": "u64"
          },
          {
            "name": "allowMultiAssetContribution",
            "type": "u8"
          },
          {
            "name": "symbolLength",
            "type": "u8"
          },
          {
            "name": "symbol",
            "type": {
              "array": [
                "u8",
                10
              ]
            }
          },
          {
            "name": "nameLength",
            "type": "u8"
          },
          {
            "name": "name",
            "type": {
              "array": [
                "u8",
                60
              ]
            }
          },
          {
            "name": "uriLength",
            "type": "u8"
          },
          {
            "name": "uri",
            "type": {
              "array": [
                "u8",
                300
              ]
            }
          },
          {
            "name": "feeDelegate",
            "type": "pubkey"
          },
          {
            "name": "extraBytes",
            "type": {
              "array": [
                "u8",
                362
              ]
            }
          }
        ]
      }
    },
    {
      "name": "prismData",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "buy",
            "type": {
              "array": [
                {
                  "defined": {
                    "name": "tokenPriceData"
                  }
                },
                200
              ]
            }
          },
          {
            "name": "sell",
            "type": {
              "array": [
                {
                  "defined": {
                    "name": "tokenPriceData"
                  }
                },
                200
              ]
            }
          }
        ]
      }
    },
    {
      "name": "tokenList",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "numTokens",
            "type": "u64"
          },
          {
            "name": "list",
            "type": {
              "array": [
                {
                  "defined": {
                    "name": "tokenSettings"
                  }
                },
                200
              ]
            }
          }
        ]
      }
    },
    {
      "name": "tokenStats",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "stats",
            "type": {
              "array": [
                {
                  "array": [
                    {
                      "defined": {
                        "name": "stats"
                      }
                    },
                    6
                  ]
                },
                200
              ]
            }
          }
        ]
      }
    },
    {
      "name": "rebalanceState",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "basketState",
            "type": "pubkey"
          },
          {
            "name": "timestamp",
            "type": "u64"
          },
          {
            "name": "fromToken",
            "type": "u8"
          },
          {
            "name": "fromAmount",
            "type": "u64"
          },
          {
            "name": "fromValue",
            "type": "u64"
          },
          {
            "name": "toToken",
            "type": "u8"
          },
          {
            "name": "signerToTokenBalance",
            "type": "u64"
          }
        ]
      }
    }
  ]
}
