Testing pump buy

This commit is contained in:
2026-08-06 05:22:30 +02:00
parent b42c59e01b
commit f20bdd490a
3 changed files with 221 additions and 472 deletions
Generated
+151 -443
View File
@@ -106,229 +106,6 @@ dependencies = [
"alloc-no-stdlib",
]
[[package]]
name = "anchor-attribute-access-control"
version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9fc4b6b3c3f3e37a0b7d537e03a36bfb0415ee11b4443fa4190437cf26a874b6"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.119",
]
[[package]]
name = "anchor-attribute-account"
version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "48e8b1468add67e6a69732883e58d23a18be51538994adaae69c9b3fe967e6be"
dependencies = [
"anchor-syn",
"proc-macro2",
"quote",
"syn 2.0.119",
]
[[package]]
name = "anchor-attribute-constant"
version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "80e1e3ade39ba05716ddc3b792859d838cccf43f5f4913ae8a163de7a2ed7f7e"
dependencies = [
"anchor-syn",
"quote",
"syn 2.0.119",
]
[[package]]
name = "anchor-attribute-error"
version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d4e026f0ff09d740fd1821bbf97d9ac649c123ff92f04b9197b002494af4acf1"
dependencies = [
"anchor-syn",
"quote",
"syn 2.0.119",
]
[[package]]
name = "anchor-attribute-event"
version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7aafc8e26eb16a0c4129661f6857c42f301859fc2ee10f4e5287d571f0ea07f5"
dependencies = [
"anchor-syn",
"proc-macro2",
"quote",
"syn 2.0.119",
]
[[package]]
name = "anchor-attribute-program"
version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6844e657ffe049b073389efb843bb281d08579b8a47ef294365f729b35ed3dca"
dependencies = [
"anchor-lang-idl",
"anchor-syn",
"anyhow",
"heck",
"proc-macro2",
"quote",
"syn 2.0.119",
]
[[package]]
name = "anchor-derive-accounts"
version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2c87a6769d7cf2deed8d3351d6d1d8aa05a3a07751f1418ab6b34aaa307bd34b"
dependencies = [
"anchor-syn",
"quote",
"syn 2.0.119",
]
[[package]]
name = "anchor-derive-serde"
version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1f014d99530ae48a81f710f150688c5c542fdeee3af8998010e147a64d7a697c"
dependencies = [
"anchor-syn",
"proc-macro-crate 3.5.0",
"proc-macro2",
"quote",
"syn 2.0.119",
]
[[package]]
name = "anchor-derive-space"
version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "33ba30c2d844e7440c491ad5f3e25f93115c6c9319df480eda460ce96030832b"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.119",
]
[[package]]
name = "anchor-lang"
version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa6708f356398752b8d7a08fb701c9c17395e103786fb1b33615a7267a6f4774"
dependencies = [
"anchor-attribute-access-control",
"anchor-attribute-account",
"anchor-attribute-constant",
"anchor-attribute-error",
"anchor-attribute-event",
"anchor-attribute-program",
"anchor-derive-accounts",
"anchor-derive-serde",
"anchor-derive-space",
"anchor-lang-error",
"base64 0.21.7",
"bincode",
"borsh 1.8.0",
"bytemuck",
"const-crypto",
"solana-account-info",
"solana-clock",
"solana-cpi",
"solana-define-syscall 3.0.0",
"solana-feature-gate-interface",
"solana-instruction",
"solana-instructions-sysvar",
"solana-invoke",
"solana-loader-v3-interface",
"solana-msg",
"solana-program-entrypoint",
"solana-program-error",
"solana-program-memory",
"solana-program-option",
"solana-program-pack",
"solana-pubkey 3.0.0",
"solana-sdk-ids",
"solana-stake-interface",
"solana-system-interface 2.0.0",
"solana-sysvar 3.1.1",
"solana-sysvar-id",
"thiserror 1.0.69",
]
[[package]]
name = "anchor-lang-error"
version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "20760a8d5b7ddd1aea7a347c43c702ea4e962ccb7b9908c952e4b372b2d9e1f7"
dependencies = [
"anchor-attribute-error",
"borsh 1.8.0",
"solana-msg",
"solana-program-error",
"solana-pubkey 3.0.0",
]
[[package]]
name = "anchor-lang-idl"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "47914b4290ae2bdf4ec203aa821e6eba86d7c78ef497918938038dcc6919f953"
dependencies = [
"anchor-lang-idl-spec",
"anyhow",
"heck",
"serde",
"serde_json",
"sha2 0.10.9",
]
[[package]]
name = "anchor-lang-idl-spec"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2bdf143115440fe621bdac3a29a1f7472e09f6cd82b2aa569429a0c13f103838"
dependencies = [
"anyhow",
"serde",
]
[[package]]
name = "anchor-spl"
version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2f698a45d424351ff695df413adcb3fa603f2c791a0b4a937ebcd2e93a052c77"
dependencies = [
"anchor-lang",
"mpl-token-metadata",
"solana-sysvar 3.1.1",
"spl-associated-token-account-interface",
"spl-pod",
"spl-token-2022-interface",
"spl-token-group-interface",
"spl-token-interface",
"spl-token-metadata-interface",
]
[[package]]
name = "anchor-syn"
version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8f6c61ef5b47db60700087bb6e419284b3461ba8f59040e1f6827aa9e9a5bc4"
dependencies = [
"anyhow",
"bs58",
"heck",
"proc-macro2",
"quote",
"serde",
"sha2 0.11.0",
"syn 2.0.119",
"thiserror 1.0.69",
]
[[package]]
name = "anstream"
version = "1.0.0"
@@ -509,12 +286,6 @@ version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
[[package]]
name = "base64"
version = "0.21.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
[[package]]
name = "base64"
version = "0.22.1"
@@ -584,40 +355,17 @@ dependencies = [
"hybrid-array",
]
[[package]]
name = "borsh"
version = "0.10.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "115e54d64eb62cdebad391c19efc9dce4981c690c85a33a12199d99bb9546fee"
dependencies = [
"borsh-derive 0.10.4",
"hashbrown 0.13.2",
]
[[package]]
name = "borsh"
version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a88b7ea17d208c4193f2c1e6de3c35fe71f98c96982d5ced308bdcc749ff6e1f"
dependencies = [
"borsh-derive 1.8.0",
"borsh-derive",
"bytes",
"cfg_aliases",
]
[[package]]
name = "borsh-derive"
version = "0.10.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "831213f80d9423998dd696e2c5345aba6be7a0bd8cd19e31c5243e13df1cef89"
dependencies = [
"borsh-derive-internal",
"borsh-schema-derive-internal",
"proc-macro-crate 0.1.5",
"proc-macro2",
"syn 1.0.109",
]
[[package]]
name = "borsh-derive"
version = "1.8.0"
@@ -625,34 +373,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d8f347189c62a579b8cd5f80714efa178f52e461dc2e6d701d264f5ff22e566c"
dependencies = [
"once_cell",
"proc-macro-crate 3.5.0",
"proc-macro-crate",
"proc-macro2",
"quote",
"syn 2.0.119",
]
[[package]]
name = "borsh-derive-internal"
version = "0.10.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "65d6ba50644c98714aa2a70d13d7df3cd75cd2b523a2b452bf010443800976b3"
dependencies = [
"proc-macro2",
"quote",
"syn 1.0.109",
]
[[package]]
name = "borsh-schema-derive-internal"
version = "0.10.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "276691d96f063427be83e6692b86148e488ebba9f48f77788724ca027ba3b6d4"
dependencies = [
"proc-macro2",
"quote",
"syn 1.0.109",
]
[[package]]
name = "brotli"
version = "8.0.4"
@@ -864,16 +590,6 @@ dependencies = [
"windows-sys 0.61.2",
]
[[package]]
name = "const-crypto"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1c06f1eb05f06cf2e380fdded278fbf056a38974299d77960555a311dcf91a52"
dependencies = [
"keccak-const",
"sha2-const-stable",
]
[[package]]
name = "const-oid"
version = "0.9.6"
@@ -1260,7 +976,7 @@ dependencies = [
"ed25519",
"rand_core 0.6.4",
"serde",
"sha2 0.10.9",
"sha2",
"subtle",
"zeroize",
]
@@ -1274,7 +990,7 @@ dependencies = [
"derivation-path",
"ed25519-dalek",
"hmac",
"sha2 0.10.9",
"sha2",
]
[[package]]
@@ -1651,15 +1367,6 @@ dependencies = [
"byteorder",
]
[[package]]
name = "hashbrown"
version = "0.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
dependencies = [
"ahash",
]
[[package]]
name = "hashbrown"
version = "0.14.5"
@@ -1672,15 +1379,6 @@ version = "0.17.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a"
[[package]]
name = "heck"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
dependencies = [
"unicode-segmentation",
]
[[package]]
name = "hermit-abi"
version = "0.5.2"
@@ -2128,19 +1826,10 @@ dependencies = [
"ecdsa",
"elliptic-curve",
"once_cell",
"sha2 0.10.9",
"sha2",
"signature",
]
[[package]]
name = "kaigan"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4f25ded719a2354f6b1a51d0c0741c25bc7afe038617664eb37f6418439eb084"
dependencies = [
"borsh 0.10.4",
]
[[package]]
name = "keccak"
version = "0.1.6"
@@ -2150,12 +1839,6 @@ dependencies = [
"cpufeatures 0.2.17",
]
[[package]]
name = "keccak-const"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "57d8d8ce877200136358e0bbff3a77965875db3af755a11e1fa6b1b3e2df13ea"
[[package]]
name = "lazy_static"
version = "1.5.0"
@@ -2261,21 +1944,6 @@ dependencies = [
"windows-sys 0.61.2",
]
[[package]]
name = "mpl-token-metadata"
version = "5.1.2-alpha.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9824d84a8e23b634256591ce2f05b3180f7be5fcd193d939c43764c804aac5ef"
dependencies = [
"borsh 1.8.0",
"kaigan",
"num-derive 0.3.3",
"num-traits",
"solana-program",
"solana-program-error",
"thiserror 1.0.69",
]
[[package]]
name = "native-tls"
version = "0.2.18"
@@ -2367,17 +2035,6 @@ version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441"
[[package]]
name = "num-derive"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d"
dependencies = [
"proc-macro2",
"quote",
"syn 1.0.109",
]
[[package]]
name = "num-derive"
version = "0.4.2"
@@ -2455,7 +2112,7 @@ version = "0.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8"
dependencies = [
"proc-macro-crate 3.5.0",
"proc-macro-crate",
"proc-macro2",
"quote",
"syn 2.0.119",
@@ -2672,15 +2329,6 @@ dependencies = [
"zerocopy",
]
[[package]]
name = "proc-macro-crate"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785"
dependencies = [
"toml",
]
[[package]]
name = "proc-macro-crate"
version = "3.5.0"
@@ -2699,18 +2347,6 @@ dependencies = [
"unicode-ident",
]
[[package]]
name = "pump-rust-client"
version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b506959627ec272b37c54769180010d413df3a153f4adebda2879eea76e98345"
dependencies = [
"anchor-lang",
"anchor-spl",
"fastrand",
"solana-program",
]
[[package]]
name = "qstring"
version = "0.7.2"
@@ -3346,17 +2982,6 @@ dependencies = [
"digest 0.10.7",
]
[[package]]
name = "sha2"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "446ba717509524cb3f22f17ecc096f10f4822d76ab5c0b9822c5f9c284e825f4"
dependencies = [
"cfg-if",
"cpufeatures 0.3.0",
"digest 0.11.3",
]
[[package]]
name = "sha2-const-stable"
version = "0.1.0"
@@ -3463,11 +3088,13 @@ dependencies = [
"env_logger",
"futures-util",
"log",
"pump-rust-client",
"serde",
"serde_json",
"solana-client",
"solana-program 4.0.0",
"solana-sdk",
"spl-associated-token-account",
"spl-token",
"tokio",
"tokio-tungstenite 0.30.0",
"wincode 0.5.5",
@@ -3594,7 +3221,7 @@ version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5f08236dacd0e6dc8234becef58e27c8567856644ef509d7e97957d55a91dc72"
dependencies = [
"borsh 1.8.0",
"borsh",
"bytemuck",
"bytemuck_derive",
"curve25519-dalek",
@@ -3668,7 +3295,7 @@ version = "3.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c04abbae16f57178a163125805637b8a076175bb5c0002fb04f4792bea901cf7"
dependencies = [
"borsh 1.8.0",
"borsh",
]
[[package]]
@@ -3948,6 +3575,23 @@ dependencies = [
"thiserror 2.0.19",
]
[[package]]
name = "solana-example-mocks"
version = "4.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0eb265ff95e28eceda117e2e3d2d2a611ecbbfe911dfeeeecd1521814540ffab"
dependencies = [
"serde",
"serde_derive",
"solana-hash 4.2.0",
"solana-instruction",
"solana-nonce",
"solana-pubkey 4.1.0",
"solana-sdk-ids",
"solana-system-interface 3.1.0",
"thiserror 2.0.19",
]
[[package]]
name = "solana-feature-gate-interface"
version = "3.1.0"
@@ -4003,7 +3647,7 @@ version = "4.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8064ea1d591ec791be95245058ca40f4f5345d390c200069d0f79bbf55bfae55"
dependencies = [
"borsh 1.8.0",
"borsh",
"bytemuck",
"bytemuck_derive",
"five8",
@@ -4031,7 +3675,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a97881335fc698deb46c6571945969aae6d93a14e2fff792a368b4fac872f116"
dependencies = [
"bincode",
"borsh 1.8.0",
"borsh",
"serde",
"serde_derive",
"solana-define-syscall 5.2.0",
@@ -4069,19 +3713,6 @@ dependencies = [
"solana-sysvar-id",
]
[[package]]
name = "solana-invoke"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4065031f5c7dd29ef5f5003c1a353011eeabbafa6c5a5033da0cedbfca824b94"
dependencies = [
"solana-account-info",
"solana-define-syscall 3.0.0",
"solana-instruction",
"solana-program-entrypoint",
"solana-stable-layout",
]
[[package]]
name = "solana-keccak-hasher"
version = "3.1.0"
@@ -4137,7 +3768,6 @@ dependencies = [
"solana-instruction",
"solana-pubkey 4.1.0",
"solana-sdk-ids",
"solana-system-interface 3.1.0",
]
[[package]]
@@ -4363,7 +3993,7 @@ dependencies = [
"solana-epoch-rewards",
"solana-epoch-schedule",
"solana-epoch-stake",
"solana-example-mocks",
"solana-example-mocks 3.0.0",
"solana-fee-calculator",
"solana-hash 3.1.0",
"solana-instruction",
@@ -4393,6 +4023,53 @@ dependencies = [
"solana-sysvar-id",
]
[[package]]
name = "solana-program"
version = "4.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "778f08fb0eaf52c9a3bef2978247f7fab0ccfddc44cfddb936d5ad9f98ede886"
dependencies = [
"memoffset",
"solana-account-info",
"solana-big-mod-exp",
"solana-blake3-hasher",
"solana-borsh",
"solana-clock",
"solana-cpi",
"solana-define-syscall 5.2.0",
"solana-epoch-rewards",
"solana-epoch-schedule",
"solana-epoch-stake",
"solana-example-mocks 4.0.0",
"solana-fee-calculator",
"solana-hash 4.2.0",
"solana-instruction",
"solana-instruction-error",
"solana-instructions-sysvar",
"solana-keccak-hasher",
"solana-last-restart-slot",
"solana-msg",
"solana-native-token",
"solana-program-entrypoint",
"solana-program-error",
"solana-program-memory",
"solana-program-option",
"solana-program-pack",
"solana-pubkey 4.1.0",
"solana-rent 4.2.1",
"solana-sdk-ids",
"solana-secp256k1-recover",
"solana-serde-varint",
"solana-serialize-utils",
"solana-sha256-hasher",
"solana-short-vec",
"solana-slot-hashes",
"solana-slot-history",
"solana-stable-layout",
"solana-sysvar 4.0.0",
"solana-sysvar-id",
]
[[package]]
name = "solana-program-entrypoint"
version = "3.1.1"
@@ -4411,7 +4088,7 @@ version = "3.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4f04fa578707b3612b095f0c8e19b66a1233f7c42ca8082fcb3b745afcc0add6"
dependencies = [
"borsh 1.8.0",
"borsh",
"serde",
"serde_derive",
]
@@ -4693,7 +4370,7 @@ dependencies = [
"solana-message 4.0.0",
"solana-offchain-message",
"solana-presigner",
"solana-program",
"solana-program 3.0.0",
"solana-program-memory",
"solana-pubkey 4.1.0",
"solana-sanitize",
@@ -4762,7 +4439,7 @@ checksum = "dc905b200a95f2ea9146e43f2a7181e3aeb55de6bc12afb36462d00a3c7310de"
dependencies = [
"hmac",
"pbkdf2",
"sha2 0.10.9",
"sha2",
]
[[package]]
@@ -4800,7 +4477,7 @@ version = "3.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "db7dc3011ea4c0334aaaa7e7128cb390ecf546b28d412e9bf2064680f57f588f"
dependencies = [
"sha2 0.10.9",
"sha2",
"solana-define-syscall 4.0.1",
"solana-hash 4.2.0",
]
@@ -5040,6 +4717,8 @@ checksum = "1632b69b4f72489db5949a10e8308c229dfa003f99ecaa7477b376807c7b81f4"
dependencies = [
"base64 0.22.1",
"bincode",
"bytemuck",
"bytemuck_derive",
"lazy_static",
"serde",
"serde_derive",
@@ -5277,7 +4956,7 @@ checksum = "d444ce30b6b4f9c281ba06061ea96638d063b53c2171b1e41ba02ebff79ed28f"
dependencies = [
"bincode",
"cfg_eval",
"num-derive 0.4.2",
"num-derive",
"num-traits",
"serde",
"serde_derive",
@@ -5301,7 +4980,7 @@ version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bd3183a7934dd7e6490ae86732616cd70361f5ab9401b9a375ab62f7fa17b112"
dependencies = [
"borsh 1.8.0",
"borsh",
"bytemuck",
"bytemuck_derive",
]
@@ -5322,7 +5001,7 @@ dependencies = [
"itertools 0.12.1",
"js-sys",
"merlin",
"num-derive 0.4.2",
"num-derive",
"num-traits",
"rand 0.8.7",
"serde",
@@ -5353,12 +5032,39 @@ dependencies = [
"der",
]
[[package]]
name = "spl-associated-token-account"
version = "8.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0242277e290c023de8826f504abcf9206b3cd4e18d9ace4ec59a698b2828e88b"
dependencies = [
"borsh",
"num-derive",
"num-traits",
"solana-account-info",
"solana-cpi",
"solana-instruction",
"solana-msg",
"solana-program-entrypoint",
"solana-program-error",
"solana-pubkey 3.0.0",
"solana-rent 3.1.0",
"solana-sdk-ids",
"solana-system-interface 2.0.0",
"solana-sysvar 3.1.1",
"spl-associated-token-account-interface",
"spl-token-2022-interface",
"spl-token-interface",
"thiserror 2.0.19",
]
[[package]]
name = "spl-associated-token-account-interface"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e6433917b60441d68d99a17e121d9db0ea15a9a69c0e5afa34649cf5ba12612f"
dependencies = [
"borsh",
"solana-instruction",
"solana-pubkey 3.0.0",
]
@@ -5394,7 +5100,7 @@ checksum = "5d1dbc82ab91422345b6df40a79e2b78c7bce1ebb366da323572dd60b7076b67"
dependencies = [
"proc-macro2",
"quote",
"sha2 0.10.9",
"sha2",
"syn 2.0.119",
"thiserror 1.0.69",
]
@@ -5415,10 +5121,10 @@ version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2f9c6e142cdf1e7e77f480053ec9f0ce989890768ddf91f619b50f39d1b456f5"
dependencies = [
"borsh 1.8.0",
"borsh",
"bytemuck",
"bytemuck_derive",
"num-derive 0.4.2",
"num-derive",
"num-traits",
"num_enum",
"solana-program-error",
@@ -5429,6 +5135,34 @@ dependencies = [
"thiserror 2.0.19",
]
[[package]]
name = "spl-token"
version = "9.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "878b0183d51fcd8a53e1604f4c13321894cf53227e6773c529b0d03d499a8dfd"
dependencies = [
"arrayref",
"bytemuck",
"num-derive",
"num-traits",
"num_enum",
"solana-account-info",
"solana-cpi",
"solana-instruction",
"solana-msg",
"solana-program-entrypoint",
"solana-program-error",
"solana-program-memory",
"solana-program-option",
"solana-program-pack",
"solana-pubkey 3.0.0",
"solana-rent 3.1.0",
"solana-sdk-ids",
"solana-sysvar 3.1.1",
"spl-token-interface",
"thiserror 2.0.19",
]
[[package]]
name = "spl-token-2022-interface"
version = "2.1.0"
@@ -5437,7 +5171,7 @@ checksum = "2fcd81188211f4b3c8a5eba7fd534c7142f9dd026123b3472492782cc72f4dc6"
dependencies = [
"arrayref",
"bytemuck",
"num-derive 0.4.2",
"num-derive",
"num-traits",
"num_enum",
"solana-account-info",
@@ -5495,7 +5229,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "841cbd6f2322d02719be4da1affedbe6495b1048b7b985ec9796032564026e22"
dependencies = [
"bytemuck",
"num-derive 0.4.2",
"num-derive",
"num-traits",
"num_enum",
"solana-address 2.5.0",
@@ -5515,7 +5249,7 @@ checksum = "8c564ac05a7c8d8b12e988a37d82695b5ba4db376d07ea98bc4882c81f96c7f3"
dependencies = [
"arrayref",
"bytemuck",
"num-derive 0.4.2",
"num-derive",
"num-traits",
"num_enum",
"solana-instruction",
@@ -5533,8 +5267,8 @@ version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c467c7c3bd056f8fe60119e7ec34ddd6f23052c2fa8f1f51999098063b72676"
dependencies = [
"borsh 1.8.0",
"num-derive 0.4.2",
"borsh",
"num-derive",
"num-traits",
"solana-borsh",
"solana-instruction",
@@ -5553,7 +5287,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2504631748c48d2a937414d64a12dcac4588d34bd07d355d648619c189d29435"
dependencies = [
"bytemuck",
"num-derive 0.4.2",
"num-derive",
"num-traits",
"num_enum",
"solana-account-info",
@@ -5581,17 +5315,6 @@ version = "2.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
[[package]]
name = "syn"
version = "1.0.109"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
[[package]]
name = "syn"
version = "2.0.119"
@@ -5845,15 +5568,6 @@ dependencies = [
"tokio",
]
[[package]]
name = "toml"
version = "0.5.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
dependencies = [
"serde",
]
[[package]]
name = "toml_datetime"
version = "1.1.1+spec-1.1.0"
@@ -6009,12 +5723,6 @@ version = "1.0.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
[[package]]
name = "unicode-segmentation"
version = "1.13.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8"
[[package]]
name = "unicode-width"
version = "0.2.2"
+5 -1
View File
@@ -11,9 +11,13 @@ serde = { version = "1.0.229", features = ["derive", "serde_derive"] }
serde_json = "1.0.151"
wincode = "=0.5.5"
solana-client = "=4.0.0"
solana-sdk = "=4.0.0"
pump-rust-client = { version = "0.1.9", default-features = false }
solana-program = "=4.0.0"
spl-token = "=9.0.0"
spl-associated-token-account = "=8.0.0"
tokio = { version = "1.53.1", features = ["macros", "rt-multi-thread"] }
tokio-tungstenite = { version = "0.30.0", features = ["native-tls"] }
+65 -28
View File
@@ -1,40 +1,77 @@
use pump_rust_client::{
AccountWrapper, PumpSdk, pump::pump::accounts::BondingCurve, state::Global,
use solana_sdk::{
instruction::{AccountMeta, Instruction},
pubkey::Pubkey,
};
use std::str::FromStr;
use crate::executor::Executor;
pub mod system_program {
use solana_sdk::declare_id;
pub const PROGRAM_ID: &str = "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P";
pub struct PumpFun {
pub private_key: String,
pub sdk: PumpSdk,
pub global: Global,
declare_id!("11111111111111111111111111111111");
}
impl Executor for PumpFun {
async fn buy(&self, token: solana_sdk::pubkey::Pubkey, amount: u64) -> anyhow::Result<()> {
log::info!("Buying {token}");
/// Derives the bonding curve and associated bonding curve tokens for a given mint.
pub fn derive_bonding_curve_pdas(mint: &Pubkey, program_id: &Pubkey) -> (Pubkey, Pubkey) {
let (bonding_curve, _) =
Pubkey::find_program_address(&[b"bonding-curve", mint.as_ref()], program_id);
// let bonding_curve: AccountWrapper<BondingCurve> = _;
let (associated_bonding_curve, _) = Pubkey::find_program_address(
&[
bonding_curve.as_ref(),
spl_token::ID.as_ref(),
mint.as_ref(),
],
&spl_associated_token_account::ID,
);
// self.sdk.buy_v2_instructions(
// &self.global,
// &bonding_curve,
// token,
// quote_token_program,
// user,
// amount,
// max_quote_tokens,
// );
(bonding_curve, associated_bonding_curve)
}
Ok(())
}
/// Constructs a raw pump.fun buy instruction
pub fn create_pump_buy_instruction(
payer: Pubkey,
mint: Pubkey,
ata_token_account: Pubkey, // User's associated token account for this mint
token_amount: u64, // Amount of tokens to purchase
max_sol_cost: u64, // Max lamports to spend (Slippage protection)
) -> Instruction {
let program_id = Pubkey::from_str("6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5AMX787Nz").unwrap();
async fn sell(&self, token: solana_sdk::pubkey::Pubkey, amount: u64) -> anyhow::Result<()> {
log::info!("Selling {token}");
// Constant global state accounts used by pump.fun
let global_account = Pubkey::from_str("4wTV1YmiEkRvAtN4S7mJP2bXax2p18e4LK8LCHWwEQ2F").unwrap();
let fee_recipient = Pubkey::from_str("CebN5WG3QfR6EPEDZgbu6wN6sfg92v7S759DcGTR8b61").unwrap();
Ok(())
// Derive the PDAs for the bonding curves
let (bonding_curve, associated_bonding_curve) = derive_bonding_curve_pdas(&mint, &program_id);
// 1. Build the data payload (Discriminator + Args)
// Anchor discriminator for 'buy': [102, 139, 25, 211, 85, 210, 149, 228]
let mut instruction_data = vec![102, 139, 25, 211, 85, 210, 149, 228];
instruction_data.extend_from_slice(&token_amount.to_le_bytes());
instruction_data.extend_from_slice(&max_sol_cost.to_le_bytes());
// 2. Map required accounts in correct order
let accounts = vec![
AccountMeta::new_readonly(global_account, false),
AccountMeta::new(fee_recipient, false),
AccountMeta::new_readonly(mint, false),
AccountMeta::new(bonding_curve, false),
AccountMeta::new(associated_bonding_curve, false),
AccountMeta::new(ata_token_account, false),
AccountMeta::new(payer, true), // Signer
AccountMeta::new_readonly(system_program::ID, false),
AccountMeta::new_readonly(spl_token::ID, false),
AccountMeta::new_readonly(solana_program::sysvar::rent::ID, false),
AccountMeta::new_readonly(
Pubkey::from_str("Ce6TQqeHC9p8KBAayQr27Pyy6wJaCdE7wXw8msu3vA8Q").unwrap(),
false,
), // Event Authority
AccountMeta::new_readonly(program_id, false),
];
Instruction {
program_id,
accounts,
data: instruction_data,
}
}