{
  "address": "gConFzxKL9USmwTdJoeQJvfKmqhJ2CyUaXTyQ8v9TGX",
  "metadata": {
    "name": "glam_config",
    "version": "1.0.1",
    "spec": "0.1.0",
    "description": "GLAM config program"
  },
  "instructions": [
    {
      "name": "close",
      "discriminator": [
        98,
        165,
        201,
        177,
        108,
        65,
        206,
        96
      ],
      "accounts": [
        {
          "name": "global_config",
          "writable": true
        },
        {
          "name": "admin",
          "writable": true,
          "signer": true
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        }
      ],
      "args": []
    },
    {
      "name": "delete_asset_meta",
      "docs": [
        "Deletes an asset meta"
      ],
      "discriminator": [
        108,
        173,
        149,
        99,
        144,
        203,
        21,
        115
      ],
      "accounts": [
        {
          "name": "global_config",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  103,
                  108,
                  111,
                  98,
                  97,
                  108,
                  45,
                  99,
                  111,
                  110,
                  102,
                  105,
                  103
                ]
              }
            ]
          }
        },
        {
          "name": "admin",
          "writable": true,
          "signer": true
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        }
      ],
      "args": [
        {
          "name": "asset",
          "type": "pubkey"
        },
        {
          "name": "oracle",
          "type": "pubkey"
        }
      ]
    },
    {
      "name": "deprecate_asset_meta",
      "docs": [
        "Marks an asset meta as deprecated"
      ],
      "discriminator": [
        138,
        242,
        230,
        22,
        21,
        151,
        149,
        19
      ],
      "accounts": [
        {
          "name": "global_config",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  103,
                  108,
                  111,
                  98,
                  97,
                  108,
                  45,
                  99,
                  111,
                  110,
                  102,
                  105,
                  103
                ]
              }
            ]
          }
        },
        {
          "name": "admin",
          "writable": true,
          "signer": true
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        }
      ],
      "args": [
        {
          "name": "asset",
          "type": "pubkey"
        },
        {
          "name": "oracle",
          "type": "pubkey"
        }
      ]
    },
    {
      "name": "initialize",
      "discriminator": [
        175,
        175,
        109,
        31,
        13,
        152,
        155,
        237
      ],
      "accounts": [
        {
          "name": "global_config",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  103,
                  108,
                  111,
                  98,
                  97,
                  108,
                  45,
                  99,
                  111,
                  110,
                  102,
                  105,
                  103
                ]
              }
            ]
          }
        },
        {
          "name": "payer",
          "writable": true,
          "signer": true
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        }
      ],
      "args": [
        {
          "name": "admin",
          "type": "pubkey"
        },
        {
          "name": "fee_authority",
          "type": "pubkey"
        },
        {
          "name": "referrer",
          "type": "pubkey"
        },
        {
          "name": "base_fee_bps",
          "type": "u16"
        },
        {
          "name": "flow_fee_bps",
          "type": "u16"
        }
      ]
    },
    {
      "name": "update_admin",
      "discriminator": [
        161,
        176,
        40,
        213,
        60,
        184,
        179,
        228
      ],
      "accounts": [
        {
          "name": "global_config",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  103,
                  108,
                  111,
                  98,
                  97,
                  108,
                  45,
                  99,
                  111,
                  110,
                  102,
                  105,
                  103
                ]
              }
            ]
          }
        },
        {
          "name": "admin",
          "writable": true,
          "signer": true
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        }
      ],
      "args": [
        {
          "name": "new_admin",
          "type": "pubkey"
        }
      ]
    },
    {
      "name": "update_fee_authority",
      "discriminator": [
        31,
        223,
        200,
        21,
        114,
        158,
        65,
        61
      ],
      "accounts": [
        {
          "name": "global_config",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  103,
                  108,
                  111,
                  98,
                  97,
                  108,
                  45,
                  99,
                  111,
                  110,
                  102,
                  105,
                  103
                ]
              }
            ]
          }
        },
        {
          "name": "fee_authority",
          "signer": true
        }
      ],
      "args": [
        {
          "name": "fee_authority",
          "type": "pubkey"
        }
      ]
    },
    {
      "name": "update_protocol_fees",
      "discriminator": [
        158,
        219,
        253,
        143,
        54,
        45,
        113,
        182
      ],
      "accounts": [
        {
          "name": "global_config",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  103,
                  108,
                  111,
                  98,
                  97,
                  108,
                  45,
                  99,
                  111,
                  110,
                  102,
                  105,
                  103
                ]
              }
            ]
          }
        },
        {
          "name": "fee_authority",
          "signer": true
        }
      ],
      "args": [
        {
          "name": "base_fee_bps",
          "type": "u16"
        },
        {
          "name": "flow_fee_bps",
          "type": "u16"
        }
      ]
    },
    {
      "name": "update_referrer",
      "discriminator": [
        208,
        225,
        56,
        15,
        244,
        21,
        195,
        34
      ],
      "accounts": [
        {
          "name": "global_config",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  103,
                  108,
                  111,
                  98,
                  97,
                  108,
                  45,
                  99,
                  111,
                  110,
                  102,
                  105,
                  103
                ]
              }
            ]
          }
        },
        {
          "name": "fee_authority",
          "signer": true
        }
      ],
      "args": [
        {
          "name": "referrer",
          "type": "pubkey"
        }
      ]
    },
    {
      "name": "upsert_asset_meta",
      "discriminator": [
        29,
        40,
        115,
        194,
        215,
        146,
        222,
        212
      ],
      "accounts": [
        {
          "name": "global_config",
          "writable": true,
          "pda": {
            "seeds": [
              {
                "kind": "const",
                "value": [
                  103,
                  108,
                  111,
                  98,
                  97,
                  108,
                  45,
                  99,
                  111,
                  110,
                  102,
                  105,
                  103
                ]
              }
            ]
          }
        },
        {
          "name": "admin",
          "writable": true,
          "signer": true
        },
        {
          "name": "asset"
        },
        {
          "name": "oracle"
        },
        {
          "name": "system_program",
          "address": "11111111111111111111111111111111"
        }
      ],
      "args": [
        {
          "name": "asset_meta",
          "type": {
            "defined": {
              "name": "AssetMeta"
            }
          }
        }
      ]
    }
  ],
  "accounts": [
    {
      "name": "GlobalConfig",
      "discriminator": [
        149,
        8,
        156,
        202,
        160,
        252,
        176,
        217
      ]
    }
  ],
  "errors": [
    {
      "code": 6000,
      "name": "InvalidAuthority",
      "msg": "Invalid authority"
    },
    {
      "code": 6001,
      "name": "InvalidAssetMeta",
      "msg": "Invalid asset meta"
    },
    {
      "code": 6002,
      "name": "AssetMetaNotFound",
      "msg": "Asset meta not found"
    },
    {
      "code": 6003,
      "name": "InvalidParameters",
      "msg": "Invalid fee parameters or insufficient account space"
    },
    {
      "code": 6004,
      "name": "InvalidOracleSource",
      "msg": "Invalid oracle source"
    },
    {
      "code": 6005,
      "name": "InvalidGlobalConfig",
      "msg": "Invalid or corrupted global config account"
    },
    {
      "code": 6006,
      "name": "InvalidFeeAuthority",
      "msg": "Invalid fee authority"
    }
  ],
  "types": [
    {
      "name": "AssetMeta",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "asset",
            "type": "pubkey"
          },
          {
            "name": "decimals",
            "type": "u8"
          },
          {
            "name": "oracle",
            "type": "pubkey"
          },
          {
            "name": "oracle_source",
            "type": {
              "defined": {
                "name": "OracleSource"
              }
            }
          },
          {
            "name": "max_age_seconds",
            "type": "u16"
          },
          {
            "name": "priority",
            "type": "i8"
          },
          {
            "name": "padding",
            "type": {
              "array": [
                "u8",
                3
              ]
            }
          }
        ]
      }
    },
    {
      "name": "GlobalConfig",
      "type": {
        "kind": "struct",
        "fields": [
          {
            "name": "admin",
            "docs": [
              "The authority that can modify the config"
            ],
            "type": "pubkey"
          },
          {
            "name": "fee_authority",
            "docs": [
              "The authority that can modify fee structure of individual glam state and claim protocol fees"
            ],
            "type": "pubkey"
          },
          {
            "name": "referrer",
            "docs": [
              "Default GLAM referrer"
            ],
            "type": "pubkey"
          },
          {
            "name": "base_fee_bps",
            "docs": [
              "Default protocol base fee applied to all vaults"
            ],
            "type": "u16"
          },
          {
            "name": "flow_fee_bps",
            "docs": [
              "Default protocol flow fee applied to all vaults"
            ],
            "type": "u16"
          },
          {
            "name": "asset_metas",
            "docs": [
              "List of assets and their oracle configs supported by the protocol"
            ],
            "type": {
              "vec": {
                "defined": {
                  "name": "AssetMeta"
                }
              }
            }
          }
        ]
      }
    },
    {
      "name": "OracleSource",
      "type": {
        "kind": "enum",
        "variants": [
          {
            "name": "Pyth"
          },
          {
            "name": "Switchboard"
          },
          {
            "name": "QuoteAsset"
          },
          {
            "name": "Pyth1K"
          },
          {
            "name": "Pyth1M"
          },
          {
            "name": "PythStableCoin"
          },
          {
            "name": "Prelaunch"
          },
          {
            "name": "PythPull"
          },
          {
            "name": "Pyth1KPull"
          },
          {
            "name": "Pyth1MPull"
          },
          {
            "name": "PythStableCoinPull"
          },
          {
            "name": "SwitchboardOnDemand"
          },
          {
            "name": "PythLazer"
          },
          {
            "name": "PythLazer1K"
          },
          {
            "name": "PythLazer1M"
          },
          {
            "name": "PythLazerStableCoin"
          },
          {
            "name": "NotSet"
          },
          {
            "name": "LstPoolState"
          },
          {
            "name": "MarinadeState"
          },
          {
            "name": "BaseAsset"
          },
          {
            "name": "ChainlinkRWA"
          },
          {
            "name": "ChainlinkX"
          },
          {
            "name": "KaminoReserve"
          }
        ]
      }
    }
  ]
}