//! This code was AUTOGENERATED using the codama library.
//! Please DO NOT EDIT THIS FILE, instead use visitors
//! to add features, then rerun codama to update it.
//!
//! <https://github.com/codama-idl/codama>
//!
syntax = "proto3";

package vixen.parser.orca_whirlpool;

message InitializeConfigIx {
	InitializeConfigIxAccounts accounts = 1;
	InitializeConfigIxData data = 2;
}

message InitializePoolIx {
	InitializePoolIxAccounts accounts = 1;
	InitializePoolIxData data = 2;
}

message InitializeTickArrayIx {
	InitializeTickArrayIxAccounts accounts = 1;
	InitializeTickArrayIxData data = 2;
}

message InitializeFeeTierIx {
	InitializeFeeTierIxAccounts accounts = 1;
	InitializeFeeTierIxData data = 2;
}

message InitializeRewardIx {
	InitializeRewardIxAccounts accounts = 1;
	InitializeRewardIxData data = 2;
}

message SetRewardEmissionsIx {
	SetRewardEmissionsIxAccounts accounts = 1;
	SetRewardEmissionsIxData data = 2;
}

message OpenPositionIx {
	OpenPositionIxAccounts accounts = 1;
	OpenPositionIxData data = 2;
}

message OpenPositionWithMetadataIx {
	OpenPositionWithMetadataIxAccounts accounts = 1;
	OpenPositionWithMetadataIxData data = 2;
}

message IncreaseLiquidityIx {
	IncreaseLiquidityIxAccounts accounts = 1;
	IncreaseLiquidityIxData data = 2;
}

message DecreaseLiquidityIx {
	DecreaseLiquidityIxAccounts accounts = 1;
	DecreaseLiquidityIxData data = 2;
}

message UpdateFeesAndRewardsIx {
	UpdateFeesAndRewardsIxAccounts accounts = 1;
}

message CollectFeesIx {
	CollectFeesIxAccounts accounts = 1;
}

message CollectRewardIx {
	CollectRewardIxAccounts accounts = 1;
	CollectRewardIxData data = 2;
}

message CollectProtocolFeesIx {
	CollectProtocolFeesIxAccounts accounts = 1;
}

message SwapIx {
	SwapIxAccounts accounts = 1;
	SwapIxData data = 2;
}

message ClosePositionIx {
	ClosePositionIxAccounts accounts = 1;
}

message SetDefaultFeeRateIx {
	SetDefaultFeeRateIxAccounts accounts = 1;
	SetDefaultFeeRateIxData data = 2;
}

message SetDefaultProtocolFeeRateIx {
	SetDefaultProtocolFeeRateIxAccounts accounts = 1;
	SetDefaultProtocolFeeRateIxData data = 2;
}

message SetFeeRateIx {
	SetFeeRateIxAccounts accounts = 1;
	SetFeeRateIxData data = 2;
}

message SetProtocolFeeRateIx {
	SetProtocolFeeRateIxAccounts accounts = 1;
	SetProtocolFeeRateIxData data = 2;
}

message SetFeeAuthorityIx {
	SetFeeAuthorityIxAccounts accounts = 1;
}

message SetCollectProtocolFeesAuthorityIx {
	SetCollectProtocolFeesAuthorityIxAccounts accounts = 1;
}

message SetRewardAuthorityIx {
	SetRewardAuthorityIxAccounts accounts = 1;
	SetRewardAuthorityIxData data = 2;
}

message SetRewardAuthorityBySuperAuthorityIx {
	SetRewardAuthorityBySuperAuthorityIxAccounts accounts = 1;
	SetRewardAuthorityBySuperAuthorityIxData data = 2;
}

message SetRewardEmissionsSuperAuthorityIx {
	SetRewardEmissionsSuperAuthorityIxAccounts accounts = 1;
}

message TwoHopSwapIx {
	TwoHopSwapIxAccounts accounts = 1;
	TwoHopSwapIxData data = 2;
}

message InitializePositionBundleIx {
	InitializePositionBundleIxAccounts accounts = 1;
}

message InitializePositionBundleWithMetadataIx {
	InitializePositionBundleWithMetadataIxAccounts accounts = 1;
}

message DeletePositionBundleIx {
	DeletePositionBundleIxAccounts accounts = 1;
}

message OpenBundledPositionIx {
	OpenBundledPositionIxAccounts accounts = 1;
	OpenBundledPositionIxData data = 2;
}

message CloseBundledPositionIx {
	CloseBundledPositionIxAccounts accounts = 1;
	CloseBundledPositionIxData data = 2;
}

message OpenPositionWithTokenExtensionsIx {
	OpenPositionWithTokenExtensionsIxAccounts accounts = 1;
	OpenPositionWithTokenExtensionsIxData data = 2;
}

message ClosePositionWithTokenExtensionsIx {
	ClosePositionWithTokenExtensionsIxAccounts accounts = 1;
}

message LockPositionIx {
	LockPositionIxAccounts accounts = 1;
	LockPositionIxData data = 2;
}

message CollectFeesV2Ix {
	CollectFeesV2IxAccounts accounts = 1;
	CollectFeesV2IxData data = 2;
}

message CollectProtocolFeesV2Ix {
	CollectProtocolFeesV2IxAccounts accounts = 1;
	CollectProtocolFeesV2IxData data = 2;
}

message CollectRewardV2Ix {
	CollectRewardV2IxAccounts accounts = 1;
	CollectRewardV2IxData data = 2;
}

message DecreaseLiquidityV2Ix {
	DecreaseLiquidityV2IxAccounts accounts = 1;
	DecreaseLiquidityV2IxData data = 2;
}

message IncreaseLiquidityV2Ix {
	IncreaseLiquidityV2IxAccounts accounts = 1;
	IncreaseLiquidityV2IxData data = 2;
}

message InitializePoolV2Ix {
	InitializePoolV2IxAccounts accounts = 1;
	InitializePoolV2IxData data = 2;
}

message InitializeRewardV2Ix {
	InitializeRewardV2IxAccounts accounts = 1;
	InitializeRewardV2IxData data = 2;
}

message SetRewardEmissionsV2Ix {
	SetRewardEmissionsV2IxAccounts accounts = 1;
	SetRewardEmissionsV2IxData data = 2;
}

message SwapV2Ix {
	SwapV2IxAccounts accounts = 1;
	SwapV2IxData data = 2;
}

message TwoHopSwapV2Ix {
	TwoHopSwapV2IxAccounts accounts = 1;
	TwoHopSwapV2IxData data = 2;
}

message InitializeConfigExtensionIx {
	InitializeConfigExtensionIxAccounts accounts = 1;
}

message SetConfigExtensionAuthorityIx {
	SetConfigExtensionAuthorityIxAccounts accounts = 1;
}

message SetTokenBadgeAuthorityIx {
	SetTokenBadgeAuthorityIxAccounts accounts = 1;
}

message InitializeTokenBadgeIx {
	InitializeTokenBadgeIxAccounts accounts = 1;
}

message DeleteTokenBadgeIx {
	DeleteTokenBadgeIxAccounts accounts = 1;
}


enum LockType {
	LockTypePermanent = 0;
}

enum LockTypeLabel {
	LockTypeLabelPermanent = 0;
}

message PositionRewardInfo {
	string growth_inside_checkpoint = 1;
	uint64 amount_owed = 2;
}

message Tick {
	bool initialized = 1;
	string liquidity_net = 2;
	string liquidity_gross = 3;
	string fee_growth_outside_a = 4;
	string fee_growth_outside_b = 5;
	repeated string reward_growths_outside = 6;
}

message WhirlpoolRewardInfo {
	string mint = 1;
	string vault = 2;
	string authority = 3;
	string emissions_per_second_x64 = 4;
	string growth_global_x64 = 5;
}

enum AccountsType {
	AccountsTypeTransferHookA = 0;
	AccountsTypeTransferHookB = 1;
	AccountsTypeTransferHookReward = 2;
	AccountsTypeTransferHookInput = 3;
	AccountsTypeTransferHookIntermediate = 4;
	AccountsTypeTransferHookOutput = 5;
	AccountsTypeSupplementalTickArrays = 6;
	AccountsTypeSupplementalTickArraysOne = 7;
	AccountsTypeSupplementalTickArraysTwo = 8;
}

message RemainingAccountsInfo {
	repeated RemainingAccountsSlice slices = 1;
}

message RemainingAccountsSlice {
	AccountsType accounts_type = 1;
	uint32 length = 2;
}


message WhirlpoolsConfig {
	string fee_authority = 1;
	string collect_protocol_fees_authority = 2;
	string reward_emissions_super_authority = 3;
	uint32 default_protocol_fee_rate = 4;
}

message WhirlpoolsConfigExtension {
	string whirlpools_config = 1;
	string config_extension_authority = 2;
	string token_badge_authority = 3;
}

message FeeTier {
	string whirlpools_config = 1;
	uint32 tick_spacing = 2;
	uint32 default_fee_rate = 3;
}

message LockConfig {
	string position = 1;
	string position_owner = 2;
	string whirlpool = 3;
	uint64 locked_timestamp = 4;
	LockTypeLabel lock_type = 5;
}

message Position {
	string whirlpool = 1;
	string position_mint = 2;
	string liquidity = 3;
	int32 tick_lower_index = 4;
	int32 tick_upper_index = 5;
	string fee_growth_checkpoint_a = 6;
	uint64 fee_owed_a = 7;
	string fee_growth_checkpoint_b = 8;
	uint64 fee_owed_b = 9;
	repeated PositionRewardInfo reward_infos = 10;
}

message PositionBundle {
	string position_bundle_mint = 1;
	repeated uint32 position_bitmap = 2;
}

message TickArray {
	int32 start_tick_index = 1;
	repeated Tick ticks = 2;
	string whirlpool = 3;
}

message TokenBadge {
	string whirlpools_config = 1;
	string token_mint = 2;
}

message Whirlpool {
	string whirlpools_config = 1;
	repeated uint32 whirlpool_bump = 2;
	uint32 tick_spacing = 3;
	repeated uint32 tick_spacing_seed = 4;
	uint32 fee_rate = 5;
	uint32 protocol_fee_rate = 6;
	string liquidity = 7;
	string sqrt_price = 8;
	int32 tick_current_index = 9;
	uint64 protocol_fee_owed_a = 10;
	uint64 protocol_fee_owed_b = 11;
	string token_mint_a = 12;
	string token_vault_a = 13;
	string fee_growth_global_a = 14;
	string token_mint_b = 15;
	string token_vault_b = 16;
	string fee_growth_global_b = 17;
	uint64 reward_last_updated_timestamp = 18;
	repeated WhirlpoolRewardInfo reward_infos = 19;
}


message InitializeConfigIxAccounts {
	string config = 1;
	string funder = 2;
	string system_program = 3;
}

message InitializeConfigIxData {
	string fee_authority = 1;
	string collect_protocol_fees_authority = 2;
	string reward_emissions_super_authority = 3;
	uint32 default_protocol_fee_rate = 4;
}

message InitializePoolIxAccounts {
	string whirlpools_config = 1;
	string token_mint_a = 2;
	string token_mint_b = 3;
	string funder = 4;
	string whirlpool = 5;
	string token_vault_a = 6;
	string token_vault_b = 7;
	string fee_tier = 8;
	string token_program = 9;
	string system_program = 10;
	string rent = 11;
}

message InitializePoolIxData {
	uint32 whirlpool_bump = 1;
	uint32 tick_spacing = 2;
	string initial_sqrt_price = 3;
}

message InitializeTickArrayIxAccounts {
	string whirlpool = 1;
	string funder = 2;
	string tick_array = 3;
	string system_program = 4;
}

message InitializeTickArrayIxData {
	int32 start_tick_index = 1;
}

message InitializeFeeTierIxAccounts {
	string config = 1;
	string fee_tier = 2;
	string funder = 3;
	string fee_authority = 4;
	string system_program = 5;
}

message InitializeFeeTierIxData {
	uint32 tick_spacing = 1;
	uint32 default_fee_rate = 2;
}

message InitializeRewardIxAccounts {
	string reward_authority = 1;
	string funder = 2;
	string whirlpool = 3;
	string reward_mint = 4;
	string reward_vault = 5;
	string token_program = 6;
	string system_program = 7;
	string rent = 8;
}

message InitializeRewardIxData {
	uint32 reward_index = 1;
}

message SetRewardEmissionsIxAccounts {
	string whirlpool = 1;
	string reward_authority = 2;
	string reward_vault = 3;
}

message SetRewardEmissionsIxData {
	uint32 reward_index = 1;
	string emissions_per_second_x64 = 2;
}

message OpenPositionIxAccounts {
	string funder = 1;
	string owner = 2;
	string position = 3;
	string position_mint = 4;
	string position_token_account = 5;
	string whirlpool = 6;
	string token_program = 7;
	string system_program = 8;
	string rent = 9;
	string associated_token_program = 10;
}

message OpenPositionIxData {
	uint32 position_bump = 1;
	int32 tick_lower_index = 2;
	int32 tick_upper_index = 3;
}

message OpenPositionWithMetadataIxAccounts {
	string funder = 1;
	string owner = 2;
	string position = 3;
	string position_mint = 4;
	string position_metadata_account = 5;
	string position_token_account = 6;
	string whirlpool = 7;
	string token_program = 8;
	string system_program = 9;
	string rent = 10;
	string associated_token_program = 11;
	string metadata_program = 12;
	string metadata_update_auth = 13;
}

message OpenPositionWithMetadataIxData {
	uint32 position_bump = 1;
	uint32 metadata_bump = 2;
	int32 tick_lower_index = 3;
	int32 tick_upper_index = 4;
}

message IncreaseLiquidityIxAccounts {
	string whirlpool = 1;
	string token_program = 2;
	string position_authority = 3;
	string position = 4;
	string position_token_account = 5;
	string token_owner_account_a = 6;
	string token_owner_account_b = 7;
	string token_vault_a = 8;
	string token_vault_b = 9;
	string tick_array_lower = 10;
	string tick_array_upper = 11;
}

message IncreaseLiquidityIxData {
	string liquidity_amount = 1;
	uint64 token_max_a = 2;
	uint64 token_max_b = 3;
}

message DecreaseLiquidityIxAccounts {
	string whirlpool = 1;
	string token_program = 2;
	string position_authority = 3;
	string position = 4;
	string position_token_account = 5;
	string token_owner_account_a = 6;
	string token_owner_account_b = 7;
	string token_vault_a = 8;
	string token_vault_b = 9;
	string tick_array_lower = 10;
	string tick_array_upper = 11;
}

message DecreaseLiquidityIxData {
	string liquidity_amount = 1;
	uint64 token_min_a = 2;
	uint64 token_min_b = 3;
}

message UpdateFeesAndRewardsIxAccounts {
	string whirlpool = 1;
	string position = 2;
	string tick_array_lower = 3;
	string tick_array_upper = 4;
}


message CollectFeesIxAccounts {
	string whirlpool = 1;
	string position_authority = 2;
	string position = 3;
	string position_token_account = 4;
	string token_owner_account_a = 5;
	string token_vault_a = 6;
	string token_owner_account_b = 7;
	string token_vault_b = 8;
	string token_program = 9;
}


message CollectRewardIxAccounts {
	string whirlpool = 1;
	string position_authority = 2;
	string position = 3;
	string position_token_account = 4;
	string reward_owner_account = 5;
	string reward_vault = 6;
	string token_program = 7;
}

message CollectRewardIxData {
	uint32 reward_index = 1;
}

message CollectProtocolFeesIxAccounts {
	string whirlpools_config = 1;
	string whirlpool = 2;
	string collect_protocol_fees_authority = 3;
	string token_vault_a = 4;
	string token_vault_b = 5;
	string token_destination_a = 6;
	string token_destination_b = 7;
	string token_program = 8;
}


message SwapIxAccounts {
	string token_program = 1;
	string token_authority = 2;
	string whirlpool = 3;
	string token_owner_account_a = 4;
	string token_vault_a = 5;
	string token_owner_account_b = 6;
	string token_vault_b = 7;
	string tick_array0 = 8;
	string tick_array1 = 9;
	string tick_array2 = 10;
	string oracle = 11;
}

message SwapIxData {
	uint64 amount = 1;
	uint64 other_amount_threshold = 2;
	string sqrt_price_limit = 3;
	bool amount_specified_is_input = 4;
	bool a_to_b = 5;
}

message ClosePositionIxAccounts {
	string position_authority = 1;
	string receiver = 2;
	string position = 3;
	string position_mint = 4;
	string position_token_account = 5;
	string token_program = 6;
}


message SetDefaultFeeRateIxAccounts {
	string whirlpools_config = 1;
	string fee_tier = 2;
	string fee_authority = 3;
}

message SetDefaultFeeRateIxData {
	uint32 default_fee_rate = 1;
}

message SetDefaultProtocolFeeRateIxAccounts {
	string whirlpools_config = 1;
	string fee_authority = 2;
}

message SetDefaultProtocolFeeRateIxData {
	uint32 default_protocol_fee_rate = 1;
}

message SetFeeRateIxAccounts {
	string whirlpools_config = 1;
	string whirlpool = 2;
	string fee_authority = 3;
}

message SetFeeRateIxData {
	uint32 fee_rate = 1;
}

message SetProtocolFeeRateIxAccounts {
	string whirlpools_config = 1;
	string whirlpool = 2;
	string fee_authority = 3;
}

message SetProtocolFeeRateIxData {
	uint32 protocol_fee_rate = 1;
}

message SetFeeAuthorityIxAccounts {
	string whirlpools_config = 1;
	string fee_authority = 2;
	string new_fee_authority = 3;
}


message SetCollectProtocolFeesAuthorityIxAccounts {
	string whirlpools_config = 1;
	string collect_protocol_fees_authority = 2;
	string new_collect_protocol_fees_authority = 3;
}


message SetRewardAuthorityIxAccounts {
	string whirlpool = 1;
	string reward_authority = 2;
	string new_reward_authority = 3;
}

message SetRewardAuthorityIxData {
	uint32 reward_index = 1;
}

message SetRewardAuthorityBySuperAuthorityIxAccounts {
	string whirlpools_config = 1;
	string whirlpool = 2;
	string reward_emissions_super_authority = 3;
	string new_reward_authority = 4;
}

message SetRewardAuthorityBySuperAuthorityIxData {
	uint32 reward_index = 1;
}

message SetRewardEmissionsSuperAuthorityIxAccounts {
	string whirlpools_config = 1;
	string reward_emissions_super_authority = 2;
	string new_reward_emissions_super_authority = 3;
}


message TwoHopSwapIxAccounts {
	string token_program = 1;
	string token_authority = 2;
	string whirlpool_one = 3;
	string whirlpool_two = 4;
	string token_owner_account_one_a = 5;
	string token_vault_one_a = 6;
	string token_owner_account_one_b = 7;
	string token_vault_one_b = 8;
	string token_owner_account_two_a = 9;
	string token_vault_two_a = 10;
	string token_owner_account_two_b = 11;
	string token_vault_two_b = 12;
	string tick_array_one0 = 13;
	string tick_array_one1 = 14;
	string tick_array_one2 = 15;
	string tick_array_two0 = 16;
	string tick_array_two1 = 17;
	string tick_array_two2 = 18;
	string oracle_one = 19;
	string oracle_two = 20;
}

message TwoHopSwapIxData {
	uint64 amount = 1;
	uint64 other_amount_threshold = 2;
	bool amount_specified_is_input = 3;
	bool a_to_b_one = 4;
	bool a_to_b_two = 5;
	string sqrt_price_limit_one = 6;
	string sqrt_price_limit_two = 7;
}

message InitializePositionBundleIxAccounts {
	string position_bundle = 1;
	string position_bundle_mint = 2;
	string position_bundle_token_account = 3;
	string position_bundle_owner = 4;
	string funder = 5;
	string token_program = 6;
	string system_program = 7;
	string rent = 8;
	string associated_token_program = 9;
}


message InitializePositionBundleWithMetadataIxAccounts {
	string position_bundle = 1;
	string position_bundle_mint = 2;
	string position_bundle_metadata = 3;
	string position_bundle_token_account = 4;
	string position_bundle_owner = 5;
	string funder = 6;
	string metadata_update_auth = 7;
	string token_program = 8;
	string system_program = 9;
	string rent = 10;
	string associated_token_program = 11;
	string metadata_program = 12;
}


message DeletePositionBundleIxAccounts {
	string position_bundle = 1;
	string position_bundle_mint = 2;
	string position_bundle_token_account = 3;
	string position_bundle_owner = 4;
	string receiver = 5;
	string token_program = 6;
}


message OpenBundledPositionIxAccounts {
	string bundled_position = 1;
	string position_bundle = 2;
	string position_bundle_token_account = 3;
	string position_bundle_authority = 4;
	string whirlpool = 5;
	string funder = 6;
	string system_program = 7;
	string rent = 8;
}

message OpenBundledPositionIxData {
	uint32 bundle_index = 1;
	int32 tick_lower_index = 2;
	int32 tick_upper_index = 3;
}

message CloseBundledPositionIxAccounts {
	string bundled_position = 1;
	string position_bundle = 2;
	string position_bundle_token_account = 3;
	string position_bundle_authority = 4;
	string receiver = 5;
}

message CloseBundledPositionIxData {
	uint32 bundle_index = 1;
}

message OpenPositionWithTokenExtensionsIxAccounts {
	string funder = 1;
	string owner = 2;
	string position = 3;
	string position_mint = 4;
	string position_token_account = 5;
	string whirlpool = 6;
	string token2022_program = 7;
	string system_program = 8;
	string associated_token_program = 9;
	string metadata_update_auth = 10;
}

message OpenPositionWithTokenExtensionsIxData {
	int32 tick_lower_index = 1;
	int32 tick_upper_index = 2;
	bool with_token_metadata_extension = 3;
}

message ClosePositionWithTokenExtensionsIxAccounts {
	string position_authority = 1;
	string receiver = 2;
	string position = 3;
	string position_mint = 4;
	string position_token_account = 5;
	string token2022_program = 6;
}


message LockPositionIxAccounts {
	string funder = 1;
	string position_authority = 2;
	string position = 3;
	string position_mint = 4;
	string position_token_account = 5;
	string lock_config = 6;
	string whirlpool = 7;
	string token2022_program = 8;
	string system_program = 9;
}

message LockPositionIxData {
	LockType lock_type = 1;
}

message CollectFeesV2IxAccounts {
	string whirlpool = 1;
	string position_authority = 2;
	string position = 3;
	string position_token_account = 4;
	string token_mint_a = 5;
	string token_mint_b = 6;
	string token_owner_account_a = 7;
	string token_vault_a = 8;
	string token_owner_account_b = 9;
	string token_vault_b = 10;
	string token_program_a = 11;
	string token_program_b = 12;
	string memo_program = 13;
}

message CollectFeesV2IxData {
	optional RemainingAccountsInfo remaining_accounts_info = 1;
}

message CollectProtocolFeesV2IxAccounts {
	string whirlpools_config = 1;
	string whirlpool = 2;
	string collect_protocol_fees_authority = 3;
	string token_mint_a = 4;
	string token_mint_b = 5;
	string token_vault_a = 6;
	string token_vault_b = 7;
	string token_destination_a = 8;
	string token_destination_b = 9;
	string token_program_a = 10;
	string token_program_b = 11;
	string memo_program = 12;
}

message CollectProtocolFeesV2IxData {
	optional RemainingAccountsInfo remaining_accounts_info = 1;
}

message CollectRewardV2IxAccounts {
	string whirlpool = 1;
	string position_authority = 2;
	string position = 3;
	string position_token_account = 4;
	string reward_owner_account = 5;
	string reward_mint = 6;
	string reward_vault = 7;
	string reward_token_program = 8;
	string memo_program = 9;
}

message CollectRewardV2IxData {
	uint32 reward_index = 1;
	optional RemainingAccountsInfo remaining_accounts_info = 2;
}

message DecreaseLiquidityV2IxAccounts {
	string whirlpool = 1;
	string token_program_a = 2;
	string token_program_b = 3;
	string memo_program = 4;
	string position_authority = 5;
	string position = 6;
	string position_token_account = 7;
	string token_mint_a = 8;
	string token_mint_b = 9;
	string token_owner_account_a = 10;
	string token_owner_account_b = 11;
	string token_vault_a = 12;
	string token_vault_b = 13;
	string tick_array_lower = 14;
	string tick_array_upper = 15;
}

message DecreaseLiquidityV2IxData {
	string liquidity_amount = 1;
	uint64 token_min_a = 2;
	uint64 token_min_b = 3;
	optional RemainingAccountsInfo remaining_accounts_info = 4;
}

message IncreaseLiquidityV2IxAccounts {
	string whirlpool = 1;
	string token_program_a = 2;
	string token_program_b = 3;
	string memo_program = 4;
	string position_authority = 5;
	string position = 6;
	string position_token_account = 7;
	string token_mint_a = 8;
	string token_mint_b = 9;
	string token_owner_account_a = 10;
	string token_owner_account_b = 11;
	string token_vault_a = 12;
	string token_vault_b = 13;
	string tick_array_lower = 14;
	string tick_array_upper = 15;
}

message IncreaseLiquidityV2IxData {
	string liquidity_amount = 1;
	uint64 token_max_a = 2;
	uint64 token_max_b = 3;
	optional RemainingAccountsInfo remaining_accounts_info = 4;
}

message InitializePoolV2IxAccounts {
	string whirlpools_config = 1;
	string token_mint_a = 2;
	string token_mint_b = 3;
	string token_badge_a = 4;
	string token_badge_b = 5;
	string funder = 6;
	string whirlpool = 7;
	string token_vault_a = 8;
	string token_vault_b = 9;
	string fee_tier = 10;
	string token_program_a = 11;
	string token_program_b = 12;
	string system_program = 13;
	string rent = 14;
}

message InitializePoolV2IxData {
	uint32 tick_spacing = 1;
	string initial_sqrt_price = 2;
}

message InitializeRewardV2IxAccounts {
	string reward_authority = 1;
	string funder = 2;
	string whirlpool = 3;
	string reward_mint = 4;
	string reward_token_badge = 5;
	string reward_vault = 6;
	string reward_token_program = 7;
	string system_program = 8;
	string rent = 9;
}

message InitializeRewardV2IxData {
	uint32 reward_index = 1;
}

message SetRewardEmissionsV2IxAccounts {
	string whirlpool = 1;
	string reward_authority = 2;
	string reward_vault = 3;
}

message SetRewardEmissionsV2IxData {
	uint32 reward_index = 1;
	string emissions_per_second_x64 = 2;
}

message SwapV2IxAccounts {
	string token_program_a = 1;
	string token_program_b = 2;
	string memo_program = 3;
	string token_authority = 4;
	string whirlpool = 5;
	string token_mint_a = 6;
	string token_mint_b = 7;
	string token_owner_account_a = 8;
	string token_vault_a = 9;
	string token_owner_account_b = 10;
	string token_vault_b = 11;
	string tick_array0 = 12;
	string tick_array1 = 13;
	string tick_array2 = 14;
	string oracle = 15;
}

message SwapV2IxData {
	uint64 amount = 1;
	uint64 other_amount_threshold = 2;
	string sqrt_price_limit = 3;
	bool amount_specified_is_input = 4;
	bool a_to_b = 5;
	optional RemainingAccountsInfo remaining_accounts_info = 6;
}

message TwoHopSwapV2IxAccounts {
	string whirlpool_one = 1;
	string whirlpool_two = 2;
	string token_mint_input = 3;
	string token_mint_intermediate = 4;
	string token_mint_output = 5;
	string token_program_input = 6;
	string token_program_intermediate = 7;
	string token_program_output = 8;
	string token_owner_account_input = 9;
	string token_vault_one_input = 10;
	string token_vault_one_intermediate = 11;
	string token_vault_two_intermediate = 12;
	string token_vault_two_output = 13;
	string token_owner_account_output = 14;
	string token_authority = 15;
	string tick_array_one0 = 16;
	string tick_array_one1 = 17;
	string tick_array_one2 = 18;
	string tick_array_two0 = 19;
	string tick_array_two1 = 20;
	string tick_array_two2 = 21;
	string oracle_one = 22;
	string oracle_two = 23;
	string memo_program = 24;
}

message TwoHopSwapV2IxData {
	uint64 amount = 1;
	uint64 other_amount_threshold = 2;
	bool amount_specified_is_input = 3;
	bool a_to_b_one = 4;
	bool a_to_b_two = 5;
	string sqrt_price_limit_one = 6;
	string sqrt_price_limit_two = 7;
	optional RemainingAccountsInfo remaining_accounts_info = 8;
}

message InitializeConfigExtensionIxAccounts {
	string config = 1;
	string config_extension = 2;
	string funder = 3;
	string fee_authority = 4;
	string system_program = 5;
}


message SetConfigExtensionAuthorityIxAccounts {
	string whirlpools_config = 1;
	string whirlpools_config_extension = 2;
	string config_extension_authority = 3;
	string new_config_extension_authority = 4;
}


message SetTokenBadgeAuthorityIxAccounts {
	string whirlpools_config = 1;
	string whirlpools_config_extension = 2;
	string config_extension_authority = 3;
	string new_token_badge_authority = 4;
}


message InitializeTokenBadgeIxAccounts {
	string whirlpools_config = 1;
	string whirlpools_config_extension = 2;
	string token_badge_authority = 3;
	string token_mint = 4;
	string token_badge = 5;
	string funder = 6;
	string system_program = 7;
}


message DeleteTokenBadgeIxAccounts {
	string whirlpools_config = 1;
	string whirlpools_config_extension = 2;
	string token_badge_authority = 3;
	string token_mint = 4;
	string token_badge = 5;
	string receiver = 6;
}



message ProgramState {
    oneof state_oneof {
        	WhirlpoolsConfig whirlpools_config = 1;
        	WhirlpoolsConfigExtension whirlpools_config_extension = 2;
        	FeeTier fee_tier = 3;
        	LockConfig lock_config = 4;
        	Position position = 5;
        	PositionBundle position_bundle = 6;
        	TickArray tick_array = 7;
        	TokenBadge token_badge = 8;
        	Whirlpool whirlpool = 9;
        }
}

message ProgramIxs {
    oneof ix_oneof {
        	InitializeConfigIx initialize_config = 1;
        	InitializePoolIx initialize_pool = 2;
        	InitializeTickArrayIx initialize_tick_array = 3;
        	InitializeFeeTierIx initialize_fee_tier = 4;
        	InitializeRewardIx initialize_reward = 5;
        	SetRewardEmissionsIx set_reward_emissions = 6;
        	OpenPositionIx open_position = 7;
        	OpenPositionWithMetadataIx open_position_with_metadata = 8;
        	IncreaseLiquidityIx increase_liquidity = 9;
        	DecreaseLiquidityIx decrease_liquidity = 10;
        	UpdateFeesAndRewardsIx update_fees_and_rewards = 11;
        	CollectFeesIx collect_fees = 12;
        	CollectRewardIx collect_reward = 13;
        	CollectProtocolFeesIx collect_protocol_fees = 14;
        	SwapIx swap = 15;
        	ClosePositionIx close_position = 16;
        	SetDefaultFeeRateIx set_default_fee_rate = 17;
        	SetDefaultProtocolFeeRateIx set_default_protocol_fee_rate = 18;
        	SetFeeRateIx set_fee_rate = 19;
        	SetProtocolFeeRateIx set_protocol_fee_rate = 20;
        	SetFeeAuthorityIx set_fee_authority = 21;
        	SetCollectProtocolFeesAuthorityIx set_collect_protocol_fees_authority = 22;
        	SetRewardAuthorityIx set_reward_authority = 23;
        	SetRewardAuthorityBySuperAuthorityIx set_reward_authority_by_super_authority = 24;
        	SetRewardEmissionsSuperAuthorityIx set_reward_emissions_super_authority = 25;
        	TwoHopSwapIx two_hop_swap = 26;
        	InitializePositionBundleIx initialize_position_bundle = 27;
        	InitializePositionBundleWithMetadataIx initialize_position_bundle_with_metadata = 28;
        	DeletePositionBundleIx delete_position_bundle = 29;
        	OpenBundledPositionIx open_bundled_position = 30;
        	CloseBundledPositionIx close_bundled_position = 31;
        	OpenPositionWithTokenExtensionsIx open_position_with_token_extensions = 32;
        	ClosePositionWithTokenExtensionsIx close_position_with_token_extensions = 33;
        	LockPositionIx lock_position = 34;
        	CollectFeesV2Ix collect_fees_v2 = 35;
        	CollectProtocolFeesV2Ix collect_protocol_fees_v2 = 36;
        	CollectRewardV2Ix collect_reward_v2 = 37;
        	DecreaseLiquidityV2Ix decrease_liquidity_v2 = 38;
        	IncreaseLiquidityV2Ix increase_liquidity_v2 = 39;
        	InitializePoolV2Ix initialize_pool_v2 = 40;
        	InitializeRewardV2Ix initialize_reward_v2 = 41;
        	SetRewardEmissionsV2Ix set_reward_emissions_v2 = 42;
        	SwapV2Ix swap_v2 = 43;
        	TwoHopSwapV2Ix two_hop_swap_v2 = 44;
        	InitializeConfigExtensionIx initialize_config_extension = 45;
        	SetConfigExtensionAuthorityIx set_config_extension_authority = 46;
        	SetTokenBadgeAuthorityIx set_token_badge_authority = 47;
        	InitializeTokenBadgeIx initialize_token_badge = 48;
        	DeleteTokenBadgeIx delete_token_badge = 49;
        }
}

