constants

package
v1.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 22, 2026 License: MIT Imports: 0 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SPLTokenInitializeMint     = 0
	SPLTokenInitializeAccount  = 1
	SPLTokenInitializeMultisig = 2
	SPLTokenTransfer           = 3
	SPLTokenApprove            = 4
	SPLTokenRevoke             = 5
	SPLTokenSetAuthority       = 6
	SPLTokenMintTo             = 7
	SPLTokenBurn               = 8
	SPLTokenCloseAccount       = 9
	SPLTokenFreezeAccount      = 10
	SPLTokenThawAccount        = 11
	SPLTokenTransferChecked    = 12
	SPLTokenApproveChecked     = 13
	SPLTokenMintToChecked      = 14
	SPLTokenBurnChecked        = 15
)

SPL Token instruction types

View Source
const (
	SystemCreateAccount                = 0
	SystemAssign                       = 1
	SystemTransfer                     = 2
	SystemCreateAccountWithSeed        = 3
	SystemAdvanceNonceAccount          = 4
	SystemWithdrawNonceAccount         = 5
	SystemInitializeNonceAccount       = 6
	SystemAuthorizeNonceAccount        = 7
	SystemAllocate                     = 8
	SystemAllocateWithSeed             = 9
	SystemAssignWithSeed               = 10
	SystemTransferWithSeed             = 11
	SystemUpgradeNonceAccount          = 12
	SystemCreateAccountWithSeedChecked = 13
	SystemCreateIdempotent             = 14
)

System instruction types

View Source
const (
	// System program ID (SOL transfers)
	SYSTEM_PROGRAM_ID = "11111111111111111111111111111111"
	// SPL Token program ID
	TOKEN_PROGRAM_ID = "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
	// SPL Token 2022 program ID
	TOKEN_2022_PROGRAM_ID = "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
	// Associated Token Account program ID
	ASSOCIATED_TOKEN_PROGRAM_ID = "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
	// Metaplex Token Metadata program ID
	METAPLEX_PROGRAM_ID = "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"
	// Address Lookup Table program
	ALT_PROGRAM_ID = "AddressLookupTab1e1111111111111111111111111"
)

Token program constants

Variables

View Source
var BOT_FEE_ACCOUNTS = map[string][]string{
	"Trojan": {
		"9yMwSPk9mrXSN7yDHUuZurAh1sjbJsfpUqjZ7SvVtdco",
	},
	"BONKbot": {
		"ZG98FUCjb8mJ824Gbs6RsgVmr1FhXb2oNiJHa2dwmPd",
	},
	"Axiom": {
		"7LCZckF6XXGQ1hDY6HFXBKWAtiUgL9QY5vj1C4Bn1Qjj",
		"4V65jvcDG9DSQioUVqVPiUcUY9v6sb6HKtMnsxSKEz5S",
		"CeA3sPZfWWToFEBmw5n1Y93tnV66Vmp8LacLzsVprgxZ",
		"AaG6of1gbj1pbDumvbSiTuJhRCRkkUNaWVxijSbWvTJW",
		"7oi1L8U9MRu5zDz5syFahsiLUric47LzvJBQX6r827ws",
		"9kPrgLggBJ69tx1czYAbp7fezuUmL337BsqQTKETUEhP",
		"DKyUs1xXMDy8Z11zNsLnUg3dy9HZf6hYZidB6WodcaGy",
		"4FobGn5ZWYquoJkxMzh2VUAWvV36xMgxQ3M7uG1pGGhd",
		"76sxKrPtgoJHDJvxwFHqb3cAXWfRHFLe3VpKcLCAHSEf",
		"H2cDR3EkJjtTKDQKk8SJS48du9mhsdzQhy8xJx5UMqQK",
		"8m5GkL7nVy95G4YVUbs79z873oVKqg2afgKRmqxsiiRm",
		"4kuG6NsAFJNwqEkac8GFDMMheCGKUPEbaRVHHyFHSwWz",
		"8vFGAKdwpn4hk7kc1cBgfWZzpyW3MEMDATDzVZhddeQb",
		"86Vh4XGLW2b6nvWbRyDs4ScgMXbuvRCHT7WbUT3RFxKG",
		"DZfEurFKFtSbdWZsKSDTqpqsQgvXxmESpvRtXkAdgLwM",
		"5L2QKqDn5ukJSWGyqR4RPvFvwnBabKWqAqMzH4heaQNB",
		"DYVeNgXGLAhZdeLMMYnCw1nPnMxkBN7fJnNpHmizTrrF",
		"Hbj6XdxX6eV4nfbYTseysibp4zZJtVRRPn2J3BhGRuK9",
		"846ah7iBSu9ApuCyEhA5xpnjHHX7d4QJKetWLbwzmJZ8",
		"5BqYhuD4q1YD3DMAYkc1FeTu9vqQVYYdfBAmkZjamyZg",
	},
	"GMGN": {
		"BB5dnY55FXS1e1NXqZDwCzgdYJdMCj3B92PU6Q5Fb6DT",
		"7sHXjs1j7sDJGVSMSPjD1b4v3FD6uRSvRWfhRdfv5BiA",
		"HeZVpHj9jLwTVtMMbzQRf6mLtFPkWNSg11o68qrbUBa3",
		"ByRRgnZenY6W2sddo1VJzX9o4sMU4gPDUkcmgrpGBxRy",
		"DXfkEGoo6WFsdL7x6gLZ7r6Hw2S6HrtrAQVPWYx2A1s9",
		"3t9EKmRiAUcQUYzTZpNojzeGP1KBAVEEbDNmy6wECQpK",
		"DymeoWc5WLNiQBaoLuxrxDnDRvLgGZ1QGsEoCAM7Jsrx",
		"dBhdrmwBkRa66XxBuAK4WZeZnsZ6bHeHCCLXa3a8bTJ",
		"6TxjC5wJzuuZgTtnTMipwwULEbMPx5JPW3QwWkdTGnrn",
	},
	"BullX": {
		"9RYJ3qr5eU5xAooqVcbmdeusjcViL5Nkiq7Gske3tiKq",
		"F4hJ3Ee3c5UuaorKAMfELBjYCjiiLH75haZTKqTywRP3",
	},
	"Maestro": {
		"MaestroUL88UBnZr3wfoN7hqmNWFi3ZYCGqZoJJHE36",
		"FRMxAnZgkW58zbYcE7Bxqsg99VWpJh6sMP5xLzAWNabN",
	},
	"Bloom": {
		"7HeD6sLLqAnKVRuSfc1Ko3BSPMNKWgGTiWLKXJF31vKM",
	},
	"BananaGun": {
		"47hEzz83VFR23rLTEeVm9A7eFzjJwjvdupPPmX3cePqF",
		"4BBNEVRgrxVKv9f7pMNE788XM1tt379X9vNjpDH2KCL7",
		"8r2hZoDfk5hDWJ1sDujAi2Qr45ZyZw5EQxAXiMZWLKh2",
	},
	"Raybot": {
		"4mih95RmBqfHYvEfqq6uGGLp1Fr3gVS3VNSEa3JVRfQK",
	},
}

BOT_FEE_ACCOUNTS maps bot names to their fee account addresses Trading bots are detected by SOL transfers to these fee accounts

View Source
var DEX_PROGRAMS = struct {
	// DEX Aggregators
	JUPITER                DexProgram
	JUPITER_V2             DexProgram
	JUPITER_V4             DexProgram
	JUPITER_DCA            DexProgram
	JUPITER_DCA_KEEPER1    DexProgram
	JUPITER_DCA_KEEPER2    DexProgram
	JUPITER_DCA_KEEPER3    DexProgram
	JUPITER_LIMIT_ORDER    DexProgram
	JUPITER_LIMIT_ORDER_V2 DexProgram
	JUPITER_VA             DexProgram
	OKX_DEX                DexProgram
	OKX_ROUTER             DexProgram
	RAYDIUM_ROUTE          DexProgram
	SANCTUM                DexProgram
	PHOTON                 DexProgram

	// Major DEX Protocols
	RAYDIUM_V4      DexProgram
	RAYDIUM_AMM     DexProgram
	RAYDIUM_CPMM    DexProgram
	RAYDIUM_CL      DexProgram
	RAYDIUM_LCP     DexProgram
	ORCA            DexProgram
	ORCA_V2         DexProgram
	ORCA_V1         DexProgram
	PHOENIX         DexProgram
	OPENBOOK        DexProgram
	METEORA         DexProgram
	METEORA_DAMM    DexProgram
	METEORA_DAMM_V2 DexProgram
	METEORA_DBC     DexProgram
	SERUM_V3        DexProgram

	// Vault Programs
	METEORA_VAULT DexProgram
	STABBEL_VAULT DexProgram

	// Trading Bot Programs
	BANANA_GUN DexProgram
	MINTECH    DexProgram
	BLOOM      DexProgram
	MAESTRO    DexProgram
	NOVA       DexProgram
	APEPRO     DexProgram

	// Other DEX Protocols
	ALDRIN         DexProgram
	ALDRIN_V2      DexProgram
	CREMA          DexProgram
	GOOSEFX        DexProgram
	LIFINITY       DexProgram
	LIFINITY_V2    DexProgram
	MERCURIAL      DexProgram
	MOONIT         DexProgram
	ONEDEX         DexProgram
	PUMP_FUN       DexProgram
	PUMP_SWAP      DexProgram
	SABER          DexProgram
	SAROS          DexProgram
	SOLFI          DexProgram
	STABBEL        DexProgram
	STABBEL_WEIGHT DexProgram
	BOOP_FUN       DexProgram
	ZERO_FI        DexProgram
	SUGAR          DexProgram
	HEAVEN         DexProgram
	HEAVEN_VAULT   DexProgram

	// Prop AMM Protocols (Dark Pools)
	GOONFI   DexProgram
	OBRIC_V2 DexProgram
	HUMIDIFI DexProgram

	// Additional Aggregators
	DFLOW DexProgram
}{

	JUPITER: DexProgram{
		ID:   "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4",
		Name: "Jupiter",
		Tags: []string{"route"},
	},
	JUPITER_V2: DexProgram{
		ID:   "JUP2jxvXaqu7NQY1GmNF4m1vodw12LVXYxbFL2uJvfo",
		Name: "JupiterV2",
		Tags: []string{"route"},
	},
	JUPITER_V4: DexProgram{
		ID:   "JUP4Fb2cqiRUcaTHdrPC8h2gNsA2ETXiPDD33WcGuJB",
		Name: "JupiterV4",
		Tags: []string{"route"},
	},
	JUPITER_DCA: DexProgram{
		ID:   "DCA265Vj8a9CEuX1eb1LWRnDT7uK6q1xMipnNyatn23M",
		Name: "JupiterDCA",
		Tags: []string{"route"},
	},
	JUPITER_DCA_KEEPER1: DexProgram{
		ID:   "DCAKxn5PFNN1mBREPWGdk1RXg5aVH9rPErLfBFEi2Emb",
		Name: "JupiterDcaKeeper1",
		Tags: []string{"route"},
	},
	JUPITER_DCA_KEEPER2: DexProgram{
		ID:   "DCAKuApAuZtVNYLk3KTAVW9GLWVvPbnb5CxxRRmVgcTr",
		Name: "JupiterDcaKeeper2",
		Tags: []string{"route"},
	},
	JUPITER_DCA_KEEPER3: DexProgram{
		ID:   "DCAK36VfExkPdAkYUQg6ewgxyinvcEyPLyHjRbmveKFw",
		Name: "JupiterDcaKeeper3",
		Tags: []string{"route"},
	},
	JUPITER_LIMIT_ORDER: DexProgram{
		ID:   "jupoNjAxXgZ4rjzxzPMP4oxduvQsQtZzyknqvzYNrNu",
		Name: "JupiterLimit",
		Tags: []string{"route"},
	},
	JUPITER_LIMIT_ORDER_V2: DexProgram{
		ID:   "j1o2qRpjcyUwEvwtcfhEQefh773ZgjxcVRry7LDqg5X",
		Name: "JupiterLimitV2",
		Tags: []string{"route"},
	},
	JUPITER_VA: DexProgram{
		ID:   "VALaaymxQh2mNy2trH9jUqHT1mTow76wpTcGmSWSwJe",
		Name: "JupiterVA",
		Tags: []string{"route"},
	},
	OKX_DEX: DexProgram{
		ID:   "6m2CDdhRgxpH4WjvdzxAYbGxwdGUz5MziiL5jek2kBma",
		Name: "OKX",
		Tags: []string{"route"},
	},
	OKX_ROUTER: DexProgram{
		ID:   "HV1KXxWFaSeriyFvXyx48FqG9BoFbfinB8njCJonqP7K",
		Name: "OKXRouter",
		Tags: []string{"route"},
	},
	RAYDIUM_ROUTE: DexProgram{
		ID:   "routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS",
		Name: "RaydiumRoute",
		Tags: []string{"route"},
	},
	SANCTUM: DexProgram{
		ID:   "stkitrT1Uoy18Dk1fTrgPw8W6MVzoCfYoAFT4MLsmhq",
		Name: "Sanctum",
		Tags: []string{"route"},
	},
	PHOTON: DexProgram{
		ID:   "BSfD6SHZigAfDWSjzD5Q41jw8LmKwtmjskPH9XW1mrRW",
		Name: "Photon",
		Tags: []string{"route"},
	},

	RAYDIUM_V4: DexProgram{
		ID:   "675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8",
		Name: "RaydiumV4",
		Tags: []string{"amm"},
	},
	RAYDIUM_AMM: DexProgram{
		ID:   "5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h",
		Name: "RaydiumAMM",
		Tags: []string{"amm"},
	},
	RAYDIUM_CPMM: DexProgram{
		ID:   "CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C",
		Name: "RaydiumCPMM",
		Tags: []string{"amm"},
	},
	RAYDIUM_CL: DexProgram{
		ID:   "CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK",
		Name: "RaydiumCL",
		Tags: []string{"amm"},
	},
	RAYDIUM_LCP: DexProgram{
		ID:   "LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj",
		Name: "RaydiumLaunchpad",
		Tags: []string{"amm"},
	},
	ORCA: DexProgram{
		ID:   "whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc",
		Name: "Orca",
		Tags: []string{"amm"},
	},
	ORCA_V2: DexProgram{
		ID:   "9W959DqEETiGZocYWCQPaJ6sBmUzgfxXfqGeTEdp3aQP",
		Name: "OrcaV2",
		Tags: []string{"amm"},
	},
	ORCA_V1: DexProgram{
		ID:   "DjVE6JNiYqPL2QXyCUUh8rNjHrbz9hXHNYt99MQ59qw1",
		Name: "OrcaV1",
		Tags: []string{"amm"},
	},
	PHOENIX: DexProgram{
		ID:   "PhoeNiXZ8ByJGLkxNfZRnkUfjvmuYqLR89jjFHGqdXY",
		Name: "Phoenix",
		Tags: []string{"route", "amm"},
	},
	OPENBOOK: DexProgram{
		ID:   "opnb2LAfJYbRMAHHvqjCwQxanZn7ReEHp1k81EohpZb",
		Name: "Openbook",
		Tags: []string{"amm"},
	},
	METEORA: DexProgram{
		ID:   "LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo",
		Name: "MeteoraDLMM",
		Tags: []string{"amm"},
	},
	METEORA_DAMM: DexProgram{
		ID:   "Eo7WjKq67rjJQSZxS6z3YkapzY3eMj6Xy8X5EQVn5UaB",
		Name: "MeteoraDamm",
		Tags: []string{"amm"},
	},
	METEORA_DAMM_V2: DexProgram{
		ID:   "cpamdpZCGKUy5JxQXB4dcpGPiikHawvSWAd6mEn1sGG",
		Name: "MeteoraDammV2",
		Tags: []string{"amm"},
	},
	METEORA_DBC: DexProgram{
		ID:   "dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN",
		Name: "MeteoraDBC",
		Tags: []string{"amm"},
	},
	SERUM_V3: DexProgram{
		ID:   "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
		Name: "SerumV3",
		Tags: []string{"amm", "vault"},
	},

	METEORA_VAULT: DexProgram{
		ID:   "24Uqj9JCLxUeoC3hGfh5W3s9FM9uCHDS2SG3LYwBpyTi",
		Name: "MeteoraVault",
		Tags: []string{"vault"},
	},
	STABBEL_VAULT: DexProgram{
		ID:   "vo1tWgqZMjG61Z2T9qUaMYKqZ75CYzMuaZ2LZP1n7HV",
		Name: "StabbleVault",
		Tags: []string{"vault"},
	},

	BANANA_GUN: DexProgram{
		ID:   "BANANAjs7FJiPQqJTGFzkZJndT9o7UmKiYYGaJz6frGu",
		Name: "BananaGun",
		Tags: []string{"bot"},
	},
	MINTECH: DexProgram{
		ID:   "minTcHYRLVPubRK8nt6sqe2ZpWrGDLQoNLipDJCGocY",
		Name: "Mintech",
		Tags: []string{"bot"},
	},
	BLOOM: DexProgram{
		ID:   "b1oomGGqPKGD6errbyfbVMBuzSC8WtAAYo8MwNafWW1",
		Name: "Bloom",
		Tags: []string{"bot"},
	},
	MAESTRO: DexProgram{
		ID:   "MaestroAAe9ge5HTc64VbBQZ6fP77pwvrhM8i1XWSAx",
		Name: "Maestro",
		Tags: []string{"bot"},
	},
	NOVA: DexProgram{
		ID:   "NoVA1TmDUqksaj2hB1nayFkPysjJbFiU76dT4qPw2wm",
		Name: "Nova",
		Tags: []string{"bot"},
	},
	APEPRO: DexProgram{
		ID:   "JSW99DKmxNyREQM14SQLDykeBvEUG63TeohrvmofEiw",
		Name: "Apepro",
		Tags: []string{"bot"},
	},

	ALDRIN: DexProgram{
		ID:   "AMM55ShdkoGRB5jVYPjWziwk8m5MpwyDgsMWHaMSQWH6",
		Name: "Aldrin",
		Tags: []string{"amm"},
	},
	ALDRIN_V2: DexProgram{
		ID:   "CURVGoZn8zycx6FXwwevgBTB2gVvdbGTEpvMJDbgs2t4",
		Name: "Aldrin V2",
		Tags: []string{"amm"},
	},
	CREMA: DexProgram{
		ID:   "CLMM9tUoggJu2wagPkkqs9eFG4BWhVBZWkP1qv3Sp7tR",
		Name: "Crema",
		Tags: []string{"amm"},
	},
	GOOSEFX: DexProgram{
		ID:   "GAMMA7meSFWaBXF25oSUgmGRwaW6sCMFLmBNiMSdbHVT",
		Name: "GooseFX GAMMA",
		Tags: []string{"amm"},
	},
	LIFINITY: DexProgram{
		ID:   "EewxydAPCCVuNEyrVN68PuSYdQ7wKn27V9Gjeoi8dy3S",
		Name: "Lifinity",
		Tags: []string{"amm"},
	},
	LIFINITY_V2: DexProgram{
		ID:   "2wT8Yq49kHgDzXuPxZSaeLaH1qbmGXtEyPy64bL7aD3c",
		Name: "LifinityV2",
		Tags: []string{"amm"},
	},
	MERCURIAL: DexProgram{
		ID:   "MERLuDFBMmsHnsBPZw2sDQZHvXFMwp8EdjudcU2HKky",
		Name: "Mercurial",
		Tags: []string{"amm"},
	},
	MOONIT: DexProgram{
		ID:   "MoonCVVNZFSYkqNXP6bxHLPL6QQJiMagDL3qcqUQTrG",
		Name: "Moonit",
		Tags: []string{"amm"},
	},
	ONEDEX: DexProgram{
		ID:   "DEXYosS6oEGvk8uCDayvwEZz4qEyDJRf9nFgYCaqPMTm",
		Name: "1Dex",
		Tags: []string{"amm"},
	},
	PUMP_FUN: DexProgram{
		ID:   "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P",
		Name: "Pumpfun",
		Tags: []string{"amm"},
	},
	PUMP_SWAP: DexProgram{
		ID:   "pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA",
		Name: "Pumpswap",
		Tags: []string{"amm"},
	},
	SABER: DexProgram{
		ID:   "SSwpkEEcbUqx4vtoEByFjSkhKdCT862DNVb52nZg1UZ",
		Name: "Saber",
		Tags: []string{"amm"},
	},
	SAROS: DexProgram{
		ID:   "SSwapUtytfBdBn1b9NUGG6foMVPtcWgpRU32HToDUZr",
		Name: "Saros",
		Tags: []string{"amm"},
	},
	SOLFI: DexProgram{
		ID:   "SoLFiHG9TfgtdUXUjWAxi3LtvYuFyDLVhBWxdMZxyCe",
		Name: "SolFi",
		Tags: []string{"amm"},
	},
	STABBEL: DexProgram{
		ID:   "swapNyd8XiQwJ6ianp9snpu4brUqFxadzvHebnAXjJZ",
		Name: "Stabble",
		Tags: []string{"amm"},
	},
	STABBEL_WEIGHT: DexProgram{
		ID:   "swapFpHZwjELNnjvThjajtiVmkz3yPQEHjLtka2fwHW",
		Name: "StabbleWeight",
		Tags: []string{"amm"},
	},
	BOOP_FUN: DexProgram{
		ID:   "boop8hVGQGqehUK2iVEMEnMrL5RbjywRzHKBmBE7ry4",
		Name: "Boopfun",
		Tags: []string{"amm"},
	},
	ZERO_FI: DexProgram{
		ID:   "ZERor4xhbUycZ6gb9ntrhqscUcZmAbQDjEAtCf4hbZY",
		Name: "ZeroFi",
		Tags: []string{"amm"},
	},
	SUGAR: DexProgram{
		ID:   "deus4Bvftd5QKcEkE5muQaWGWDoma8GrySvPFrBPjhS",
		Name: "Sugar",
		Tags: []string{"amm"},
	},
	HEAVEN: DexProgram{
		ID:   "HEAVENoP2qxoeuF8Dj2oT1GHEnu49U5mJYkdeC8BAX2o",
		Name: "Heaven",
		Tags: []string{"amm"},
	},
	HEAVEN_VAULT: DexProgram{
		ID:   "HEvSKofvBgfaexv23kMabbYqxasxU3mQ4ibBMEmJWHny",
		Name: "HeavenStore",
		Tags: []string{"vault"},
	},

	GOONFI: DexProgram{
		ID:   "goonERTdGsjnkZqWuVjs73BZ3Pb9qoCUdBUL17BnS5j",
		Name: "GoonFi",
		Tags: []string{"amm"},
	},
	OBRIC_V2: DexProgram{
		ID:   "obriQD1zbpyLz95G5n7nJe6a4DPjpFwa5XYPoNm113y",
		Name: "ObricV2",
		Tags: []string{"amm"},
	},
	HUMIDIFI: DexProgram{
		ID:   "9H6tua7jkLhdm3w8BvgpTn5LZNU7g4ZynDmCiNN3q6Rp",
		Name: "HumidiFi",
		Tags: []string{"amm"},
	},

	DFLOW: DexProgram{
		ID:   "DF1ow4tspfHX9JwWJsAb9epbkA8hmpSEAtxXy1V27QBH",
		Name: "DFlow",
		Tags: []string{"route"},
	},
}

DEX_PROGRAMS contains all supported DEX program configurations

View Source
var DEX_PROGRAM_IDS = []string{
	DEX_PROGRAMS.JUPITER.ID,
	DEX_PROGRAMS.JUPITER_V2.ID,
	DEX_PROGRAMS.JUPITER_V4.ID,
	DEX_PROGRAMS.JUPITER_DCA.ID,
	DEX_PROGRAMS.JUPITER_DCA_KEEPER1.ID,
	DEX_PROGRAMS.JUPITER_DCA_KEEPER2.ID,
	DEX_PROGRAMS.JUPITER_DCA_KEEPER3.ID,
	DEX_PROGRAMS.JUPITER_LIMIT_ORDER.ID,
	DEX_PROGRAMS.JUPITER_LIMIT_ORDER_V2.ID,
	DEX_PROGRAMS.JUPITER_VA.ID,
	DEX_PROGRAMS.OKX_DEX.ID,
	DEX_PROGRAMS.OKX_ROUTER.ID,
	DEX_PROGRAMS.RAYDIUM_ROUTE.ID,
	DEX_PROGRAMS.SANCTUM.ID,
	DEX_PROGRAMS.PHOTON.ID,
	DEX_PROGRAMS.RAYDIUM_V4.ID,
	DEX_PROGRAMS.RAYDIUM_AMM.ID,
	DEX_PROGRAMS.RAYDIUM_CPMM.ID,
	DEX_PROGRAMS.RAYDIUM_CL.ID,
	DEX_PROGRAMS.RAYDIUM_LCP.ID,
	DEX_PROGRAMS.ORCA.ID,
	DEX_PROGRAMS.ORCA_V2.ID,
	DEX_PROGRAMS.ORCA_V1.ID,
	DEX_PROGRAMS.PHOENIX.ID,
	DEX_PROGRAMS.OPENBOOK.ID,
	DEX_PROGRAMS.METEORA.ID,
	DEX_PROGRAMS.METEORA_DAMM.ID,
	DEX_PROGRAMS.METEORA_DAMM_V2.ID,
	DEX_PROGRAMS.METEORA_DBC.ID,
	DEX_PROGRAMS.SERUM_V3.ID,
	DEX_PROGRAMS.METEORA_VAULT.ID,
	DEX_PROGRAMS.STABBEL_VAULT.ID,
	DEX_PROGRAMS.BANANA_GUN.ID,
	DEX_PROGRAMS.MINTECH.ID,
	DEX_PROGRAMS.BLOOM.ID,
	DEX_PROGRAMS.MAESTRO.ID,
	DEX_PROGRAMS.NOVA.ID,
	DEX_PROGRAMS.APEPRO.ID,
	DEX_PROGRAMS.ALDRIN.ID,
	DEX_PROGRAMS.ALDRIN_V2.ID,
	DEX_PROGRAMS.CREMA.ID,
	DEX_PROGRAMS.GOOSEFX.ID,
	DEX_PROGRAMS.LIFINITY.ID,
	DEX_PROGRAMS.LIFINITY_V2.ID,
	DEX_PROGRAMS.MERCURIAL.ID,
	DEX_PROGRAMS.MOONIT.ID,
	DEX_PROGRAMS.ONEDEX.ID,
	DEX_PROGRAMS.PUMP_FUN.ID,
	DEX_PROGRAMS.PUMP_SWAP.ID,
	DEX_PROGRAMS.SABER.ID,
	DEX_PROGRAMS.SAROS.ID,
	DEX_PROGRAMS.SOLFI.ID,
	DEX_PROGRAMS.STABBEL.ID,
	DEX_PROGRAMS.STABBEL_WEIGHT.ID,
	DEX_PROGRAMS.BOOP_FUN.ID,
	DEX_PROGRAMS.ZERO_FI.ID,
	DEX_PROGRAMS.SUGAR.ID,
	DEX_PROGRAMS.HEAVEN.ID,
	DEX_PROGRAMS.HEAVEN_VAULT.ID,
	DEX_PROGRAMS.GOONFI.ID,
	DEX_PROGRAMS.OBRIC_V2.ID,
	DEX_PROGRAMS.HUMIDIFI.ID,
	DEX_PROGRAMS.DFLOW.ID,
}

DEX_PROGRAM_IDS is a list of all DEX program IDs

View Source
var DISCRIMINATORS = struct {
	JUPITER                JupiterDiscriminators
	JUPITER_DCA            JupiterDCADiscriminators
	JUPITER_LIMIT_ORDER    JupiterLimitOrderDiscriminators
	JUPITER_LIMIT_ORDER_V2 JupiterLimitOrderV2Discriminators
	JUPITER_VA             JupiterVADiscriminators
	PUMPFUN                PumpfunDiscriminators
	PUMPSWAP               PumpswapDiscriminators
	MOONIT                 MoonitDiscriminators
	RAYDIUM                RaydiumDiscriminators
	RAYDIUM_CL             RaydiumCLDiscriminators
	RAYDIUM_CPMM           RaydiumCPMMDiscriminators
	RAYDIUM_LCP            RaydiumLCPDiscriminators
	METEORA_DLMM           MeteoraDLMMDiscriminators
	METEORA_DAMM           MeteoraDAMMDiscriminators
	METEORA_DAMM_V2        MeteoraDAMMV2Discriminators
	METEORA_DBC            MeteoraDBCDiscriminators
	ORCA                   OrcaDiscriminators
	BOOPFUN                BoopfunDiscriminators
	HEAVEN                 HeavenDiscriminators
	METAPLEX               MetaplexDiscriminators
	SUGAR                  SugarDiscriminators
	PHOTON                 PhotonDiscriminators
	SOLFI                  SolFiDiscriminators
	GOONFI                 GoonFiDiscriminators
	OBRIC                  ObricDiscriminators
	DFLOW                  DFlowDiscriminators
	HUMIDIFI               HumidiFiDiscriminators
}{
	JUPITER: JupiterDiscriminators{
		ROUTE_EVENT: []byte{228, 69, 165, 46, 81, 203, 154, 29, 64, 198, 205, 232, 38, 8, 113, 226},

		ROUTE:                                  []byte{229, 23, 203, 151, 122, 227, 173, 42},
		ROUTE_EXACT_OUT:                        []byte{208, 51, 239, 151, 123, 43, 237, 92},
		ROUTE_WITH_TOKEN_LEDGER:                []byte{150, 86, 71, 116, 167, 93, 14, 104},
		SHARE_ACCOUNTS_ROUTE:                   []byte{193, 32, 155, 51, 65, 214, 156, 129},
		SHARE_ACCOUNTS_EXACT_OUT_ROUTE:         []byte{176, 209, 105, 168, 154, 125, 69, 62},
		SHARE_ACCOUNTS_ROUTE_WITH_TOKEN_LEDGER: []byte{230, 121, 143, 80, 119, 159, 106, 170},
	},
	JUPITER_DCA: JupiterDCADiscriminators{
		FILLED:      []byte{228, 69, 165, 46, 81, 203, 154, 29, 134, 4, 17, 63, 221, 45, 177, 173},
		CLOSE_DCA:   []byte{22, 7, 33, 98, 168, 183, 34, 243},
		OPEN_DCA:    []byte{36, 65, 185, 54, 1, 210, 100, 163},
		OPEN_DCA_V2: []byte{142, 119, 43, 109, 162, 52, 11, 177},
	},
	JUPITER_LIMIT_ORDER: JupiterLimitOrderDiscriminators{
		CANCEL_ORDER:     []byte{95, 129, 237, 240, 8, 49, 223, 132},
		CREATE_ORDER:     []byte{133, 110, 74, 175, 112, 159, 245, 159},
		TRADE_EVENT:      []byte{228, 69, 165, 46, 81, 203, 154, 29, 189, 219, 127, 211, 78, 230, 97, 238},
		UNKNOWN:          []byte{232, 122, 115, 25, 199, 143, 136, 162},
		FLASH_FILL_ORDER: []byte{252, 104, 18, 134, 164, 78, 18, 140},
	},
	JUPITER_LIMIT_ORDER_V2: JupiterLimitOrderV2Discriminators{
		CANCEL_ORDER:       []byte{95, 129, 237, 240, 8, 49, 223, 132},
		CREATE_ORDER_EVENT: []byte{228, 69, 165, 46, 81, 203, 154, 29, 49, 142, 72, 166, 230, 29, 84, 84},
		TRADE_EVENT:        []byte{228, 69, 165, 46, 81, 203, 154, 29, 189, 219, 127, 211, 78, 230, 97, 238},
		UNKNOWN:            []byte{232, 122, 115, 25, 199, 143, 136, 162},
		FLASH_FILL_ORDER:   []byte{252, 104, 18, 134, 164, 78, 18, 140},
	},
	JUPITER_VA: JupiterVADiscriminators{
		FILL_EVENT:     []byte{228, 69, 165, 46, 81, 203, 154, 29, 78, 225, 199, 154, 86, 219, 224, 169},
		OPEN_EVENT:     []byte{228, 69, 165, 46, 81, 203, 154, 29, 104, 220, 224, 191, 87, 241, 132, 61},
		CLOSE_EVENT:    []byte{},
		DEPOSIT_EVENT:  []byte{},
		WITHDRAW_EVENT: []byte{228, 69, 165, 46, 81, 203, 154, 29, 192, 241, 201, 217, 70, 150, 90, 247},
	},
	PUMPFUN: PumpfunDiscriminators{
		CREATE:         []byte{24, 30, 200, 40, 5, 28, 7, 119},
		MIGRATE:        []byte{155, 234, 231, 146, 236, 158, 162, 30},
		BUY:            []byte{102, 6, 61, 18, 1, 218, 235, 234},
		SELL:           []byte{51, 230, 133, 164, 1, 127, 131, 173},
		TRADE_EVENT:    []byte{228, 69, 165, 46, 81, 203, 154, 29, 189, 219, 127, 211, 78, 230, 97, 238},
		CREATE_EVENT:   []byte{228, 69, 165, 46, 81, 203, 154, 29, 27, 114, 169, 77, 222, 235, 99, 118},
		COMPLETE_EVENT: []byte{228, 69, 165, 46, 81, 203, 154, 29, 95, 114, 97, 156, 212, 46, 152, 8},
		MIGRATE_EVENT:  []byte{228, 69, 165, 46, 81, 203, 154, 29, 189, 233, 93, 185, 92, 148, 234, 148},
	},
	PUMPSWAP: PumpswapDiscriminators{
		CREATE_POOL:            []byte{233, 146, 209, 142, 207, 104, 64, 188},
		ADD_LIQUIDITY:          []byte{242, 35, 198, 137, 82, 225, 242, 182},
		REMOVE_LIQUIDITY:       []byte{183, 18, 70, 156, 148, 109, 161, 34},
		BUY:                    []byte{102, 6, 61, 18, 1, 218, 235, 234},
		SELL:                   []byte{51, 230, 133, 164, 1, 127, 131, 173},
		CREATE_POOL_EVENT:      []byte{228, 69, 165, 46, 81, 203, 154, 29, 177, 49, 12, 210, 160, 118, 167, 116},
		ADD_LIQUIDITY_EVENT:    []byte{228, 69, 165, 46, 81, 203, 154, 29, 120, 248, 61, 83, 31, 142, 107, 144},
		REMOVE_LIQUIDITY_EVENT: []byte{228, 69, 165, 46, 81, 203, 154, 29, 22, 9, 133, 26, 160, 44, 71, 192},
		BUY_EVENT:              []byte{228, 69, 165, 46, 81, 203, 154, 29, 103, 244, 82, 31, 44, 245, 119, 119},
		SELL_EVENT:             []byte{228, 69, 165, 46, 81, 203, 154, 29, 62, 47, 55, 10, 165, 3, 220, 42},
	},
	MOONIT: MoonitDiscriminators{
		BUY:     []byte{102, 6, 61, 18, 1, 218, 235, 234},
		SELL:    []byte{51, 230, 133, 164, 1, 127, 131, 173},
		CREATE:  []byte{3, 44, 164, 184, 123, 13, 245, 179},
		MIGRATE: []byte{42, 229, 10, 231, 189, 62, 193, 174},
	},
	RAYDIUM: RaydiumDiscriminators{
		CREATE:           []byte{1},
		ADD_LIQUIDITY:    []byte{3},
		REMOVE_LIQUIDITY: []byte{4},
		SWAP:             []byte{9},
		SWAP_EXACT_OUT:   []byte{11},
	},
	RAYDIUM_CL: RaydiumCLDiscriminators{
		CREATE: RaydiumCLCreateDiscriminators{
			OPEN_POSITION:    []byte{135, 128, 47, 77, 15, 152, 240, 49},
			OPEN_POSITION_V2: []byte{77, 184, 74, 214, 112, 86, 241, 199},
			CREATE_POOL:      []byte{233, 146, 209, 142, 207, 104, 64, 188},
		},
		ADD_LIQUIDITY: RaydiumCLAddLiquidityDiscriminators{
			INCREASE_LIQUIDITY:         []byte{46, 156, 243, 118, 13, 205, 251, 178},
			INCREASE_LIQUIDITY_V2:      []byte{133, 29, 89, 223, 69, 238, 176, 10},
			OPEN_POSITION_WITH_TOKEN22: []byte{77, 255, 174, 82, 125, 29, 201, 46},
		},
		REMOVE_LIQUIDITY: RaydiumCLRemoveLiquidityDiscriminators{
			DECREASE_LIQUIDITY:    []byte{160, 38, 208, 111, 104, 91, 44, 1},
			DECREASE_LIQUIDITY_V2: []byte{58, 127, 188, 62, 79, 82, 196, 96},
			CLOSE_POSITION:        []byte{123, 134, 81, 0, 49, 68, 98, 98},
		},
		SWAP: RaydiumCLSwapDiscriminators{
			SWAP:                []byte{248, 198, 158, 145, 225, 117, 135, 200},
			SWAP_V2:             []byte{43, 4, 237, 11, 26, 201, 30, 98},
			SWAP_ROUTER_BASE_IN: []byte{69, 125, 115, 218, 245, 186, 242, 196},
		},
		EVENTS: RaydiumCLEventDiscriminators{
			COLLECT_PERSONAL_FEE:     []byte{166, 174, 105, 192, 81, 161, 83, 105},
			COLLECT_PROTOCOL_FEE:     []byte{206, 87, 17, 79, 45, 41, 213, 61},
			CONFIG_CHANGE:            []byte{247, 189, 7, 119, 106, 112, 95, 151},
			CREATE_PERSONAL_POSITION: []byte{100, 30, 87, 249, 196, 223, 154, 206},
			DECREASE_LIQUIDITY:       []byte{58, 222, 86, 58, 68, 50, 85, 56},
			INCREASE_LIQUIDITY:       []byte{49, 79, 105, 212, 32, 34, 30, 84},
			LIQUIDITY_CALCULATE:      []byte{237, 112, 148, 230, 57, 84, 180, 162},
			LIQUIDITY_CHANGE:         []byte{126, 240, 175, 206, 158, 88, 153, 107},
			POOL_CREATED:             []byte{25, 94, 75, 47, 112, 99, 53, 63},
			SWAP:                     []byte{64, 198, 205, 232, 38, 8, 113, 226},
			UPDATE_REWARD_INFOS:      []byte{109, 127, 186, 78, 114, 65, 37, 236},
		},
	},
	RAYDIUM_CPMM: RaydiumCPMMDiscriminators{
		CREATE:           []byte{175, 175, 109, 31, 13, 152, 155, 237},
		ADD_LIQUIDITY:    []byte{242, 35, 198, 137, 82, 225, 242, 182},
		REMOVE_LIQUIDITY: []byte{183, 18, 70, 156, 148, 109, 161, 34},
	},
	RAYDIUM_LCP: RaydiumLCPDiscriminators{
		CREATE_EVENT:      []byte{228, 69, 165, 46, 81, 203, 154, 29, 151, 215, 226, 9, 118, 161, 115, 174},
		TRADE_EVENT:       []byte{228, 69, 165, 46, 81, 203, 154, 29, 189, 219, 127, 211, 78, 230, 97, 238},
		MIGRATE_TO_AMM:    []byte{207, 82, 192, 145, 254, 207, 145, 223},
		MIGRATE_TO_CPSWAP: []byte{136, 92, 200, 103, 28, 218, 144, 140},
		BUY_EXACT_IN:      []byte{250, 234, 13, 123, 213, 156, 19, 236},
		BUY_EXACT_OUT:     []byte{24, 211, 116, 40, 105, 3, 153, 56},
		SELL_EXACT_IN:     []byte{149, 39, 222, 155, 211, 124, 152, 26},
		SELL_EXACT_OUT:    []byte{95, 200, 71, 34, 8, 9, 11, 166},
		INITIALIZE:        []byte{175, 175, 109, 31, 13, 152, 155, 237},
	},
	METEORA_DLMM: MeteoraDLMMDiscriminators{
		ADD_LIQUIDITY: map[string][]byte{
			"addLiquidity":                  {181, 157, 89, 67, 143, 182, 52, 72},
			"addLiquidityByStrategy":        {7, 3, 150, 127, 148, 40, 61, 200},
			"addLiquidityByStrategy2":       {3, 221, 149, 218, 111, 141, 118, 213},
			"addLiquidityByStrategyOneSide": {41, 5, 238, 175, 100, 225, 6, 205},
			"addLiquidityOneSide":           {94, 155, 103, 151, 70, 95, 220, 165},
			"addLiquidityOneSidePrecise":    {161, 194, 103, 84, 171, 71, 250, 154},
			"addLiquidityByWeight":          {28, 140, 238, 99, 231, 162, 21, 149},
		},
		REMOVE_LIQUIDITY: map[string][]byte{
			"removeLiquidity":         {80, 85, 209, 72, 24, 206, 177, 108},
			"removeLiquidityByRange":  {26, 82, 102, 152, 240, 74, 105, 26},
			"removeLiquidityByRange2": {204, 2, 195, 145, 53, 145, 145, 205},
			"removeAllLiquidity":      {10, 51, 61, 35, 112, 105, 24, 85},
			"claimFee":                {169, 32, 79, 137, 136, 232, 70, 137},
			"claimFeeV2":              {112, 191, 101, 171, 28, 144, 127, 187},
		},
		LIQUIDITY_EVENT: map[string][]byte{
			"compositionFeeEvent":  {228, 69, 165, 46, 81, 203, 154, 29, 128, 151, 123, 106, 17, 102, 113, 142},
			"addLiquidityEvent":    {228, 69, 165, 46, 81, 203, 154, 29, 31, 94, 125, 90, 227, 52, 61, 186},
			"removeLiquidityEvent": {228, 69, 165, 46, 81, 203, 154, 29, 151, 113, 115, 164, 224, 159, 112, 193},
		},
	},
	METEORA_DAMM: MeteoraDAMMDiscriminators{
		CREATE:                  []byte{7, 166, 138, 171, 206, 171, 236, 244},
		ADD_LIQUIDITY:           []byte{168, 227, 50, 62, 189, 171, 84, 176},
		REMOVE_LIQUIDITY:        []byte{133, 109, 44, 179, 56, 238, 114, 33},
		ADD_IMBALANCE_LIQUIDITY: []byte{79, 35, 122, 84, 173, 15, 93, 191},
	},
	METEORA_DAMM_V2: MeteoraDAMMV2Discriminators{
		INITIALIZE_POOL:                     []byte{95, 180, 10, 172, 84, 174, 232, 40},
		INITIALIZE_CUSTOM_POOL:              []byte{20, 161, 241, 24, 189, 221, 180, 2},
		INITIALIZE_POOL_WITH_DYNAMIC_CONFIG: []byte{149, 82, 72, 197, 253, 252, 68, 15},
		ADD_LIQUIDITY:                       []byte{181, 157, 89, 67, 143, 182, 52, 72},
		CLAIM_POSITION_FEE:                  []byte{180, 38, 154, 17, 133, 33, 162, 211},
		REMOVE_LIQUIDITY:                    []byte{80, 85, 209, 72, 24, 206, 177, 108},
		REMOVE_ALL_LIQUIDITY:                []byte{10, 51, 61, 35, 112, 105, 24, 85},
		CREATE_POSITION_EVENT:               []byte{228, 69, 165, 46, 81, 203, 154, 29, 156, 15, 119, 198, 29, 181, 221, 55},
	},
	METEORA_DBC: MeteoraDBCDiscriminators{
		SWAP:                                   []byte{248, 198, 158, 145, 225, 117, 135, 200},
		SWAP_V2:                                []byte{65, 75, 63, 76, 235, 91, 91, 136},
		INITIALIZE_VIRTUAL_POOL_WITH_SPL:       []byte{140, 85, 215, 176, 102, 54, 104, 79},
		INITIALIZE_VIRTUAL_POOL_WITH_TOKEN2022: []byte{169, 118, 51, 78, 145, 110, 220, 155},
		METEORA_DBC_MIGRATE_DAMM:               []byte{27, 1, 48, 22, 180, 63, 118, 217},
		METEORA_DBC_MIGRATE_DAMM_V2:            []byte{156, 169, 230, 103, 53, 228, 80, 64},
	},
	ORCA: OrcaDiscriminators{
		CREATE:           []byte{242, 29, 134, 48, 58, 110, 14, 60},
		CREATE2:          []byte{212, 47, 95, 92, 114, 102, 131, 250},
		ADD_LIQUIDITY:    []byte{46, 156, 243, 118, 13, 205, 251, 178},
		ADD_LIQUIDITY2:   []byte{133, 29, 89, 223, 69, 238, 176, 10},
		REMOVE_LIQUIDITY: []byte{160, 38, 208, 111, 104, 91, 44, 1},
		OTHER1:           []byte{164, 152, 207, 99, 30, 186, 19, 182},
		OTHER2:           []byte{70, 5, 132, 87, 86, 235, 177, 34},
	},
	BOOPFUN: BoopfunDiscriminators{
		CREATE:   []byte{84, 52, 204, 228, 24, 140, 234, 75},
		DEPLOY:   []byte{180, 89, 199, 76, 168, 236, 217, 138},
		COMPLETE: []byte{45, 235, 225, 181, 17, 218, 64, 130},
		BUY:      []byte{138, 127, 14, 91, 38, 87, 115, 105},
		SELL:     []byte{109, 61, 40, 187, 230, 176, 135, 174},
	},
	HEAVEN: HeavenDiscriminators{
		BUY:         []byte{102, 6, 61, 18, 1, 218, 235, 234},
		SELL:        []byte{51, 230, 133, 164, 1, 127, 131, 173},
		CREATE_POOL: []byte{42, 43, 126, 56, 231, 10, 208, 53},
	},
	METAPLEX: MetaplexDiscriminators{
		CREATE_MINT: []byte{42},
	},
	SUGAR: SugarDiscriminators{
		BUY_EXACT_IN:      []byte{250, 234, 13, 123, 213, 156, 19, 236},
		BUY_EXACT_OUT:     []byte{24, 211, 116, 40, 105, 3, 153, 56},
		BUY_MAX_OUT:       []byte{96, 177, 203, 117, 183, 65, 196, 177},
		SELL_EXACT_IN:     []byte{149, 39, 222, 155, 211, 124, 152, 26},
		SELL_EXACT_OUT:    []byte{149, 95, 200, 71, 34, 8, 9, 11, 166},
		CREATE:            []byte{24, 30, 200, 40, 5, 28, 7, 119},
		INITIALIZE:        []byte{175, 175, 109, 31, 13, 152, 155, 237},
		MIGRATE_TO_RADIUM: []byte{96, 230, 91, 140, 139, 40, 235, 142},
	},
	PHOTON: PhotonDiscriminators{
		PUMPSWAP_TRADE: []byte{44, 119, 175, 218, 199, 77, 196, 235},
		PUMPFUN_BUY:    []byte{82, 225, 119, 231, 78, 29, 45, 70},
		PUMPFUN_SELL:   []byte{93, 88, 60, 34, 91, 18, 86, 197},
		MOONIT_BUY:     []byte{61, 220, 193, 108, 173, 62, 69, 176},
		MOONIT_SELL:    []byte{206, 188, 188, 107, 32, 145, 81, 150},
		HOP_TWO_SWAP:   []byte{195, 96, 237, 108, 68, 162, 219, 230},
	},

	SOLFI: SolFiDiscriminators{
		SWAP: []byte{0x07},
	},
	GOONFI: GoonFiDiscriminators{
		SWAP: []byte{0x02},
	},
	OBRIC: ObricDiscriminators{
		SWAP:        []byte{248, 198, 158, 145, 225, 117, 135, 200},
		SWAP_X_TO_Y: []byte{143, 190, 90, 218, 196, 30, 51, 222},
		SWAP_Y_TO_X: []byte{220, 117, 232, 239, 48, 247, 211, 180},
	},
	DFLOW: DFlowDiscriminators{
		SWAP:           []byte{248, 198, 158, 145, 225, 117, 135, 200},
		SWAP2:          []byte{65, 75, 63, 76, 235, 91, 91, 136},
		SWAP_WITH_DEST: []byte{168, 172, 24, 77, 197, 156, 135, 101},
		OPEN_ORDER:     []byte{206, 88, 88, 143, 38, 136, 50, 224},
		FILL_ORDER:     []byte{232, 122, 115, 25, 199, 143, 136, 162},
		CLOSE_ORDER:    []byte{90, 103, 209, 28, 7, 63, 168, 4},
	},
	HUMIDIFI: HumidiFiDiscriminators{

		SWAP: []byte{248, 198, 158, 145, 225, 117, 135, 200},
	},
}

Discriminator byte slices for instruction identification

View Source
var FEE_ACCOUNTS = []string{

	"96gYZGLnJYVFmbjzopPSU6QiEV5fGqZNyN9nmNhvrZU5",
	"HFqU5x63VTqvQss8hp11i4wVV8bD44PvwucfZ2bU7gRe",
	"Cw8CFyM9FkoMi7K7Crf6HNQqf4uEMzpKw6QNghXLvLkY",
	"ADaUMid9yfUytqMBgopwjb2DTLSokTSzL1zt6iGPaS49",
	"DfXygSm4jCyNCybVYYK6DwvWqjKee8pbDmJGcLWNDXjh",
	"ADuUkR4vqLUMWXxW9gh6D6L8pMSawimctcNZ5pGwDcEt",
	"DttWaMuVvTiduZRnguLF7jNxTgiMBZ1hyAumKUiL2KRL",
	"3AVi9Tg9Uo68tJfuvoKvqKNWKkC5wPdSSdeBnizKZ6jT",

	"45ruCyfdRkWpRNGEqWzjCiXRHkZs8WXCLQ67Pnpye7Hp",

	"39azUYFWPz3VHgKCf3VChUwbpURdCHRxjWVowf5jUJjg",
	"FWsW1xNtWscwNmKv6wVsU1iTzRN6wmmk3MjxRP5tT7hz",
	"G5UZAVbAf46s7cKWoyKu8kYTip9DGTpbLZ2qa9Aq69dP",
	"7hTckgnGnLQR6sdH7YkqFTAA7VwTfYFaZ6EhEsU3saCX",
	"9rPYyANsfQZw3DnDmKE3YCQF5E8oD89UXoHn9JFEhJUz",
	"7VtfL8fvgNfhz17qKRMjzQEXgbdpnHHHQRh54R9jP2RJ",
	"AVmoTthdrX6tKt4nDjco2D775W2YK3sDhxPcMmzUAmTY",
	"62qc2CNXwrYqQScmEdiZFFAnJR262PxWEuNQtxfafNgV",
	"JCRGumoE9Qi5BBgULTgdgTLjSgkCMSbF62ZZfGs84JeU",
	"CebN5WGQ4jvEPvsVU4EoHEpgzq1VV7AbicfhtW4xC9iM",

	"AVUCZyuT35YSuj4RH7fwiyPu82Djn2Hfg7y2ND2XcnZH",

	"BUX7s2ef2htTGb2KKoPHWkmzxPj4nTWMWRgs5CSbQxf9",

	"CdQTNULjDiTsvyR5UKjYBMqWvYpxXj6HY4m6atm2hErk",
}

FEE_ACCOUNTS contains known fee account addresses

View Source
var PUMPFUN_MIGRATORS = []string{
	"39azUYFWPz3VHgKCf3VChUwbpURdCHRxjWVowf5jUJjg",
}

PUMPFUN_MIGRATORS contains Pumpfun migrator addresses

View Source
var SKIP_PROGRAM_IDS = []string{
	"pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ",
}

SKIP_PROGRAM_IDS contains program IDs that should be skipped

View Source
var SYSTEM_PROGRAMS = []string{
	"ComputeBudget111111111111111111111111111111",
	"11111111111111111111111111111111",
	"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
	"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb",
	"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL",
}

SYSTEM_PROGRAMS contains system program IDs that should be ignored

View Source
var TOKENS = struct {
	NATIVE string
	SOL    string
	USDC   string
	USDT   string
	USD1   string
	USDG   string
	PYUSD  string
	EURC   string
	USDY   string
	FDUSD  string
}{
	NATIVE: "11111111111111111111111111111111",
	SOL:    "So11111111111111111111111111111111111111112",
	USDC:   "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
	USDT:   "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
	USD1:   "USD1ttGY1N17NEEHLmELoaybftRBUSErhqYiQzvEmuB",
	USDG:   "2u1tszSeqZ3qBWF3uNGPFc8TzMk2tdiwknnRMWGWjGWH",
	PYUSD:  "2b1kV6DkPAnxd5ixfnxCpjxmKwqjjaYmCZfHsFu24GXo",
	EURC:   "HzwqbKZw8HxMN6bF2yFZNrht3c2iXXzpKcFu7uBEDKtr",
	USDY:   "A1KLoBrKBde8Ty9qtNQUtq3C2ortoC3u7twggz7sEto6",
	FDUSD:  "9zNQRsGLjNKwCUU5Gq5LR8beUCPzQMVMqKAi3SSZh54u",
}

TOKENS contains known token addresses

View Source
var TOKEN_DECIMALS = map[string]uint8{
	"So11111111111111111111111111111111111111112":  9,
	"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v": 6,
	"Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB": 6,
	"USD1ttGY1N17NEEHLmELoaybftRBUSErhqYiQzvEmuB":  6,
	"2u1tszSeqZ3qBWF3uNGPFc8TzMk2tdiwknnRMWGWjGWH": 6,
	"2b1kV6DkPAnxd5ixfnxCpjxmKwqjjaYmCZfHsFu24GXo": 6,
	"HzwqbKZw8HxMN6bF2yFZNrht3c2iXXzpKcFu7uBEDKtr": 6,
	"A1KLoBrKBde8Ty9qtNQUtq3C2ortoC3u7twggz7sEto6": 6,
	"9zNQRsGLjNKwCUU5Gq5LR8beUCPzQMVMqKAi3SSZh54u": 6,
}

TOKEN_DECIMALS maps token addresses to their decimal precision

Functions

func GetAllBotFeeAccounts added in v1.2.0

func GetAllBotFeeAccounts() []string

GetAllBotFeeAccounts returns all known bot fee accounts as a slice

func GetBotName added in v1.2.0

func GetBotName(account string) string

GetBotName returns the bot name if the account is a known bot fee account Returns empty string if not found

func GetBotNames added in v1.2.0

func GetBotNames() []string

GetBotNames returns all known bot names

func GetProgramName

func GetProgramName(programId string) string

GetProgramName returns the human-readable name for a program ID

func GetTokenDecimals

func GetTokenDecimals(mint string) (uint8, bool)

GetTokenDecimals returns the decimals for a known token, or 0 if unknown

func IsBotFeeAccount added in v1.2.0

func IsBotFeeAccount(account string) bool

IsBotFeeAccount checks if an account is a known bot fee account

func IsDexProgram

func IsDexProgram(programId string) bool

IsDexProgram checks if a program ID is a known DEX program

func IsFeeAccount

func IsFeeAccount(account string) bool

IsFeeAccount checks if an account is a known fee account

func IsQuoteToken

func IsQuoteToken(mint string) bool

IsQuoteToken checks if a token is a quote token (SOL or stablecoin)

func IsSOL

func IsSOL(mint string) bool

IsSOL checks if a token is SOL (native or wrapped)

func IsSPLBurnInstruction

func IsSPLBurnInstruction(instructionType uint8) bool

IsSPLBurnInstruction checks if the instruction type is a burn operation

func IsSPLMintInstruction

func IsSPLMintInstruction(instructionType uint8) bool

IsSPLMintInstruction checks if the instruction type is a mint operation

func IsSPLTransferInstruction

func IsSPLTransferInstruction(instructionType uint8) bool

IsSPLTransferInstruction checks if the instruction type is a transfer

func IsStablecoin

func IsStablecoin(mint string) bool

IsStablecoin checks if a token is a known stablecoin

func IsSystemProgram

func IsSystemProgram(programId string) bool

IsSystemProgram checks if a program ID is a system program

func MatchAnyDiscriminator

func MatchAnyDiscriminator(data []byte, discriminators map[string][]byte) (string, bool)

MatchAnyDiscriminator checks if data matches any of the given discriminators

func MatchDiscriminator

func MatchDiscriminator(data []byte, discriminator []byte) bool

MatchDiscriminator checks if data starts with the given discriminator

Types

type BoopfunDiscriminators

type BoopfunDiscriminators struct {
	CREATE   []byte
	DEPLOY   []byte
	COMPLETE []byte
	BUY      []byte
	SELL     []byte
}

type DFlowDiscriminators added in v1.2.0

type DFlowDiscriminators struct {
	SWAP           []byte
	SWAP2          []byte
	SWAP_WITH_DEST []byte
	OPEN_ORDER     []byte
	FILL_ORDER     []byte
	CLOSE_ORDER    []byte
}

type DexProgram

type DexProgram struct {
	ID   string   // Program ID
	Name string   // Human-readable name
	Tags []string // Tags: "route", "amm", "bot", "vault"
}

DexProgram represents a DEX program configuration

func GetDexProgramByID

func GetDexProgramByID(id string) DexProgram

GetDexProgramByID returns the DEX program configuration for a given ID

type GoonFiDiscriminators added in v1.2.0

type GoonFiDiscriminators struct {
	SWAP []byte
}

type HeavenDiscriminators

type HeavenDiscriminators struct {
	BUY         []byte
	SELL        []byte
	CREATE_POOL []byte
}

type HumidiFiDiscriminators added in v1.2.0

type HumidiFiDiscriminators struct {
	SWAP []byte
}

type JupiterDCADiscriminators

type JupiterDCADiscriminators struct {
	FILLED      []byte
	CLOSE_DCA   []byte
	OPEN_DCA    []byte
	OPEN_DCA_V2 []byte
}

type JupiterDiscriminators

type JupiterDiscriminators struct {
	ROUTE_EVENT []byte
	// Jupiter V6 shred discriminators
	ROUTE                                  []byte
	ROUTE_EXACT_OUT                        []byte
	ROUTE_WITH_TOKEN_LEDGER                []byte
	SHARE_ACCOUNTS_ROUTE                   []byte
	SHARE_ACCOUNTS_EXACT_OUT_ROUTE         []byte
	SHARE_ACCOUNTS_ROUTE_WITH_TOKEN_LEDGER []byte
}

Discriminator type definitions

type JupiterLimitOrderDiscriminators

type JupiterLimitOrderDiscriminators struct {
	CANCEL_ORDER     []byte
	CREATE_ORDER     []byte
	TRADE_EVENT      []byte
	UNKNOWN          []byte
	FLASH_FILL_ORDER []byte
}

type JupiterLimitOrderV2Discriminators

type JupiterLimitOrderV2Discriminators struct {
	CANCEL_ORDER       []byte
	CREATE_ORDER_EVENT []byte
	TRADE_EVENT        []byte
	UNKNOWN            []byte
	FLASH_FILL_ORDER   []byte
}

type JupiterVADiscriminators

type JupiterVADiscriminators struct {
	FILL_EVENT     []byte
	OPEN_EVENT     []byte
	CLOSE_EVENT    []byte
	DEPOSIT_EVENT  []byte
	WITHDRAW_EVENT []byte
}

type MetaplexDiscriminators

type MetaplexDiscriminators struct {
	CREATE_MINT []byte
}

type MeteoraDAMMDiscriminators

type MeteoraDAMMDiscriminators struct {
	CREATE                  []byte
	ADD_LIQUIDITY           []byte
	REMOVE_LIQUIDITY        []byte
	ADD_IMBALANCE_LIQUIDITY []byte
}

type MeteoraDAMMV2Discriminators

type MeteoraDAMMV2Discriminators struct {
	INITIALIZE_POOL                     []byte
	INITIALIZE_CUSTOM_POOL              []byte
	INITIALIZE_POOL_WITH_DYNAMIC_CONFIG []byte
	ADD_LIQUIDITY                       []byte
	CLAIM_POSITION_FEE                  []byte
	REMOVE_LIQUIDITY                    []byte
	REMOVE_ALL_LIQUIDITY                []byte
	CREATE_POSITION_EVENT               []byte
}

type MeteoraDBCDiscriminators

type MeteoraDBCDiscriminators struct {
	SWAP                                   []byte
	SWAP_V2                                []byte
	INITIALIZE_VIRTUAL_POOL_WITH_SPL       []byte
	INITIALIZE_VIRTUAL_POOL_WITH_TOKEN2022 []byte
	METEORA_DBC_MIGRATE_DAMM               []byte
	METEORA_DBC_MIGRATE_DAMM_V2            []byte
}

type MeteoraDLMMDiscriminators

type MeteoraDLMMDiscriminators struct {
	ADD_LIQUIDITY    map[string][]byte
	REMOVE_LIQUIDITY map[string][]byte
	LIQUIDITY_EVENT  map[string][]byte
}

type MoonitDiscriminators

type MoonitDiscriminators struct {
	BUY     []byte
	SELL    []byte
	CREATE  []byte
	MIGRATE []byte
}

type ObricDiscriminators added in v1.2.0

type ObricDiscriminators struct {
	SWAP        []byte
	SWAP_X_TO_Y []byte
	SWAP_Y_TO_X []byte
}

type OrcaDiscriminators

type OrcaDiscriminators struct {
	CREATE           []byte
	CREATE2          []byte
	ADD_LIQUIDITY    []byte
	ADD_LIQUIDITY2   []byte
	REMOVE_LIQUIDITY []byte
	OTHER1           []byte
	OTHER2           []byte
}

type PhotonDiscriminators added in v1.2.0

type PhotonDiscriminators struct {
	PUMPSWAP_TRADE []byte
	PUMPFUN_BUY    []byte
	PUMPFUN_SELL   []byte
	MOONIT_BUY     []byte
	MOONIT_SELL    []byte
	HOP_TWO_SWAP   []byte
}

type PumpfunDiscriminators

type PumpfunDiscriminators struct {
	CREATE         []byte
	MIGRATE        []byte
	BUY            []byte
	SELL           []byte
	TRADE_EVENT    []byte
	CREATE_EVENT   []byte
	COMPLETE_EVENT []byte
	MIGRATE_EVENT  []byte
}

type PumpswapDiscriminators

type PumpswapDiscriminators struct {
	CREATE_POOL            []byte
	ADD_LIQUIDITY          []byte
	REMOVE_LIQUIDITY       []byte
	BUY                    []byte
	SELL                   []byte
	CREATE_POOL_EVENT      []byte
	ADD_LIQUIDITY_EVENT    []byte
	REMOVE_LIQUIDITY_EVENT []byte
	BUY_EVENT              []byte
	SELL_EVENT             []byte
}

type RaydiumCLAddLiquidityDiscriminators

type RaydiumCLAddLiquidityDiscriminators struct {
	INCREASE_LIQUIDITY         []byte
	INCREASE_LIQUIDITY_V2      []byte
	OPEN_POSITION_WITH_TOKEN22 []byte
}

type RaydiumCLCreateDiscriminators

type RaydiumCLCreateDiscriminators struct {
	OPEN_POSITION    []byte
	OPEN_POSITION_V2 []byte
	CREATE_POOL      []byte
}

type RaydiumCLEventDiscriminators added in v1.2.0

type RaydiumCLEventDiscriminators struct {
	COLLECT_PERSONAL_FEE     []byte
	COLLECT_PROTOCOL_FEE     []byte
	CONFIG_CHANGE            []byte
	CREATE_PERSONAL_POSITION []byte
	DECREASE_LIQUIDITY       []byte
	INCREASE_LIQUIDITY       []byte
	LIQUIDITY_CALCULATE      []byte
	LIQUIDITY_CHANGE         []byte
	POOL_CREATED             []byte
	SWAP                     []byte
	UPDATE_REWARD_INFOS      []byte
}

type RaydiumCLRemoveLiquidityDiscriminators

type RaydiumCLRemoveLiquidityDiscriminators struct {
	DECREASE_LIQUIDITY    []byte
	DECREASE_LIQUIDITY_V2 []byte
	CLOSE_POSITION        []byte
}

type RaydiumCLSwapDiscriminators added in v1.2.0

type RaydiumCLSwapDiscriminators struct {
	SWAP                []byte
	SWAP_V2             []byte
	SWAP_ROUTER_BASE_IN []byte
}

type RaydiumCPMMDiscriminators

type RaydiumCPMMDiscriminators struct {
	CREATE           []byte
	ADD_LIQUIDITY    []byte
	REMOVE_LIQUIDITY []byte
}

type RaydiumDiscriminators

type RaydiumDiscriminators struct {
	CREATE           []byte
	ADD_LIQUIDITY    []byte
	REMOVE_LIQUIDITY []byte
	SWAP             []byte
	SWAP_EXACT_OUT   []byte
}

type RaydiumLCPDiscriminators

type RaydiumLCPDiscriminators struct {
	CREATE_EVENT      []byte
	TRADE_EVENT       []byte
	MIGRATE_TO_AMM    []byte
	MIGRATE_TO_CPSWAP []byte
	BUY_EXACT_IN      []byte
	BUY_EXACT_OUT     []byte
	SELL_EXACT_IN     []byte
	SELL_EXACT_OUT    []byte
	INITIALIZE        []byte
}

type SolFiDiscriminators added in v1.2.0

type SolFiDiscriminators struct {
	SWAP []byte
}

type SugarDiscriminators

type SugarDiscriminators struct {
	BUY_EXACT_IN      []byte
	BUY_EXACT_OUT     []byte
	BUY_MAX_OUT       []byte
	SELL_EXACT_IN     []byte
	SELL_EXACT_OUT    []byte
	CREATE            []byte
	INITIALIZE        []byte
	MIGRATE_TO_RADIUM []byte
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL