From ac6967693a0f4397ef82aaf2455bd625190e2983 Mon Sep 17 00:00:00 2001 From: thesn10 <38666407+thesn10@users.noreply.github.com> Date: Wed, 27 May 2026 23:58:11 +0200 Subject: [PATCH] chore(solisting): add crate skeleton and workspace entry --- Cargo.lock | 307 +++++++++++++++++- programs/solisting/Cargo.toml | 6 +- .../src/instructions/accept_order.rs | 0 .../src/instructions/cancel_order.rs | 0 .../src/instructions/close_listing.rs | 0 .../src/instructions/close_stale_order.rs | 0 .../src/instructions/create_listing.rs | 0 .../src/instructions/create_order.rs | 0 .../src/instructions/reject_order.rs | 0 .../src/instructions/update_listing.rs | 0 programs/solisting/src/oracle.rs | 0 programs/solisting/tests/common/mod.rs | 0 programs/solisting/tests/test_listings.rs | 0 programs/solisting/tests/test_orders.rs | 0 14 files changed, 293 insertions(+), 20 deletions(-) create mode 100644 programs/solisting/src/instructions/accept_order.rs create mode 100644 programs/solisting/src/instructions/cancel_order.rs create mode 100644 programs/solisting/src/instructions/close_listing.rs create mode 100644 programs/solisting/src/instructions/close_stale_order.rs create mode 100644 programs/solisting/src/instructions/create_listing.rs create mode 100644 programs/solisting/src/instructions/create_order.rs create mode 100644 programs/solisting/src/instructions/reject_order.rs create mode 100644 programs/solisting/src/instructions/update_listing.rs create mode 100644 programs/solisting/src/oracle.rs create mode 100644 programs/solisting/tests/common/mod.rs create mode 100644 programs/solisting/tests/test_listings.rs create mode 100644 programs/solisting/tests/test_orders.rs diff --git a/Cargo.lock b/Cargo.lock index 98534b2..45cecd8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -100,7 +100,7 @@ dependencies = [ "solana-svm-measure", "solana-svm-timings", "solana-svm-type-overrides", - "solana-sysvar", + "solana-sysvar 3.1.1", "solana-sysvar-id", "solana-transaction-context", "thiserror 2.0.18", @@ -224,7 +224,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8140a40827bdfd74720f1f3084778fa081262f2f43bd4bdbc350f98ce1b341c6" dependencies = [ "anchor-syn", - "proc-macro-crate", + "proc-macro-crate 3.5.0", "proc-macro2", "quote", "syn 1.0.109", @@ -259,7 +259,7 @@ dependencies = [ "anchor-lang-idl", "base64 0.21.7", "bincode", - "borsh", + "borsh 1.6.1", "bytemuck", "const-crypto", "solana-account-info", @@ -281,7 +281,7 @@ dependencies = [ "solana-sdk-ids", "solana-stake-interface", "solana-system-interface 2.0.0", - "solana-sysvar", + "solana-sysvar 3.1.1", "solana-sysvar-id", "thiserror 1.0.69", ] @@ -696,17 +696,40 @@ 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.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfd1e3f8955a5d7de9fab72fc8373fade9fb8a703968cb200ae3dc6cf08e185a" dependencies = [ - "borsh-derive", + "borsh-derive 1.6.1", "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.6.1" @@ -714,12 +737,34 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfcfdc083699101d5a7965e49925975f2f55060f94f9a05e7187be95d530ca59" dependencies = [ "once_cell", - "proc-macro-crate", + "proc-macro-crate 3.5.0", "proc-macro2", "quote", "syn 2.0.117", ] +[[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 = "bs58" version = "0.5.1" @@ -784,7 +829,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a98356df42a2eb1bd8f1793ae4ee4de48e384dd974ce5eac8eee802edb7492be" dependencies = [ "serde", - "toml", + "toml 0.8.23", ] [[package]] @@ -1070,6 +1115,21 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "descro" +version = "0.1.0" +dependencies = [ + "anchor-lang", + "descro_ext_resolvers", +] + +[[package]] +name = "descro_ext_resolvers" +version = "0.1.0" +dependencies = [ + "anchor-lang", +] + [[package]] name = "digest" version = "0.9.0" @@ -1230,6 +1290,15 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" +[[package]] +name = "fast-math" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2465292146cdfc2011350fe3b1c616ac83cf0faeedb33463ba1c332ed8948d66" +dependencies = [ + "ieee754", +] + [[package]] name = "feature-probe" version = "0.1.1" @@ -1412,6 +1481,15 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] + [[package]] name = "hmac" version = "0.12.1" @@ -1436,6 +1514,12 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" +[[package]] +name = "ieee754" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9007da9cacbd3e6343da136e98b0d2df013f553d35bdec8b518f07bea768e19c" + [[package]] name = "indexmap" version = "2.14.0" @@ -1676,7 +1760,7 @@ dependencies = [ "solana-svm-transaction", "solana-system-interface 3.2.0", "solana-system-program", - "solana-sysvar", + "solana-sysvar 3.1.1", "solana-sysvar-id", "solana-transaction", "solana-transaction-context", @@ -1705,6 +1789,15 @@ version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + [[package]] name = "merlin" version = "3.0.0" @@ -1922,6 +2015,15 @@ 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 0.5.11", +] + [[package]] name = "proc-macro-crate" version = "3.5.0" @@ -1940,6 +2042,39 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "pyth-solana-receiver-sdk" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b7854c4176470c8d86de301dc5b57ac84227dabb9527328b585fc332962d60b" +dependencies = [ + "anchor-lang", + "hex", + "pythnet-sdk", + "solana-program", +] + +[[package]] +name = "pythnet-sdk" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "498d20fd330277697aaee92f341bdabdb4695b10e05f054157a18ad8b7746a17" +dependencies = [ + "anchor-lang", + "bincode", + "borsh 0.10.4", + "bytemuck", + "byteorder", + "fast-math", + "hex", + "rustc_version", + "serde", + "sha3", + "slow_primes", + "solana-program", + "thiserror 1.0.69", +] + [[package]] name = "qstring" version = "0.7.2" @@ -2325,6 +2460,15 @@ version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" +[[package]] +name = "slow_primes" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58267dd2fbaa6dceecba9e3e106d2d90a2b02497c0e8b01b8759beccf5113938" +dependencies = [ + "num", +] + [[package]] name = "smallvec" version = "1.15.1" @@ -2346,7 +2490,7 @@ dependencies = [ "solana-instruction-error", "solana-pubkey 4.2.0", "solana-sdk-ids", - "solana-sysvar", + "solana-sysvar 3.1.1", ] [[package]] @@ -2355,6 +2499,8 @@ version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9cf16495d9eb53e3d04e72366a33bb1c20c24e78c171d8b8f5978357b63ae95" dependencies = [ + "bincode", + "serde_core", "solana-address 2.6.0", "solana-program-error", "solana-program-memory", @@ -2375,7 +2521,7 @@ version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1384b52c435a750cc9c538760fc7bb472fd78e65a9900a2d07312c5bb335b72" dependencies = [ - "borsh", + "borsh 1.6.1", "bytemuck", "bytemuck_derive", "curve25519-dalek", @@ -2473,7 +2619,7 @@ version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c04abbae16f57178a163125805637b8a076175bb5c0002fb04f4792bea901cf7" dependencies = [ - "borsh", + "borsh 1.6.1", ] [[package]] @@ -2593,7 +2739,7 @@ version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8292c436b269ad23cecc8b24f7da3ab07ca111661e25e00ce0e1d22771951ab9" dependencies = [ - "borsh", + "borsh 1.6.1", "solana-instruction", "solana-sdk-ids", ] @@ -2691,6 +2837,33 @@ dependencies = [ "solana-sysvar-id", ] +[[package]] +name = "solana-epoch-stake" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "027e6d0b9e7daac5b2ac7c3f9ca1b727861121d9ef05084cf435ff736051e7c2" +dependencies = [ + "solana-define-syscall 5.1.0", + "solana-pubkey 4.2.0", +] + +[[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.3.0", + "solana-instruction", + "solana-nonce", + "solana-pubkey 4.2.0", + "solana-sdk-ids", + "solana-system-interface 3.2.0", + "thiserror 2.0.18", +] + [[package]] name = "solana-feature-gate-interface" version = "3.1.0" @@ -2753,7 +2926,7 @@ version = "4.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1b113239362cee7093bfb250467138f079a2a03673181dc15bff6ccd677912d" dependencies = [ - "borsh", + "borsh 1.6.1", "bytemuck", "bytemuck_derive", "five8", @@ -2771,6 +2944,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37ebb0ffd19263051bc3f683fcc086134b8ff23af894dcb63f7563c7137b42f1" dependencies = [ "bincode", + "borsh 1.6.1", "serde", "serde_derive", "solana-define-syscall 5.1.0", @@ -3007,6 +3181,53 @@ dependencies = [ "num-traits", ] +[[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.1.0", + "solana-epoch-rewards", + "solana-epoch-schedule", + "solana-epoch-stake", + "solana-example-mocks", + "solana-fee-calculator", + "solana-hash 4.3.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.2.0", + "solana-rent 4.2.0", + "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" @@ -3025,7 +3246,9 @@ version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4f04fa578707b3612b095f0c8e19b66a1233f7c42ca8082fcb3b745afcc0add6" dependencies = [ - "borsh", + "borsh 1.6.1", + "serde", + "serde_derive", ] [[package]] @@ -3091,7 +3314,7 @@ dependencies = [ "solana-svm-transaction", "solana-svm-type-overrides", "solana-system-interface 2.0.0", - "solana-sysvar", + "solana-sysvar 3.1.1", "solana-sysvar-id", "solana-transaction-context", "thiserror 2.0.18", @@ -3134,7 +3357,11 @@ version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9809b081e99bc142ce803bcd7ee18306759ce3b30a96a9da3f6f41c45e50ef0" dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids", "solana-sdk-macro", + "solana-sysvar-id", ] [[package]] @@ -3329,7 +3556,7 @@ dependencies = [ "solana-program-error", "solana-pubkey 3.0.0", "solana-system-interface 2.0.0", - "solana-sysvar", + "solana-sysvar 3.1.1", "solana-sysvar-id", ] @@ -3452,7 +3679,7 @@ dependencies = [ "solana-svm-log-collector", "solana-svm-type-overrides", "solana-system-interface 2.0.0", - "solana-sysvar", + "solana-sysvar 3.1.1", "solana-transaction-context", ] @@ -3488,6 +3715,40 @@ dependencies = [ "solana-sysvar-id", ] +[[package]] +name = "solana-sysvar" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1632b69b4f72489db5949a10e8308c229dfa003f99ecaa7477b376807c7b81f4" +dependencies = [ + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info", + "solana-clock", + "solana-define-syscall 5.1.0", + "solana-epoch-rewards", + "solana-epoch-schedule", + "solana-fee-calculator", + "solana-hash 4.3.0", + "solana-instruction", + "solana-last-restart-slot", + "solana-program-entrypoint", + "solana-program-error", + "solana-program-memory", + "solana-pubkey 4.2.0", + "solana-rent 4.2.0", + "solana-sdk-ids", + "solana-sdk-macro", + "solana-slot-hashes", + "solana-slot-history", + "solana-sysvar-id", +] + [[package]] name = "solana-sysvar-id" version = "3.1.0" @@ -3717,7 +3978,10 @@ name = "solisting" version = "0.1.0" dependencies = [ "anchor-lang", + "descro", + "descro_ext_resolvers", "litesvm", + "pyth-solana-receiver-sdk", "solana-keypair", "solana-message", "solana-signer", @@ -3823,6 +4087,15 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + [[package]] name = "toml" version = "0.8.23" diff --git a/programs/solisting/Cargo.toml b/programs/solisting/Cargo.toml index 532eb56..31a9d6d 100644 --- a/programs/solisting/Cargo.toml +++ b/programs/solisting/Cargo.toml @@ -1,7 +1,6 @@ [package] name = "solisting" version = "0.1.0" -description = "Created with Anchor" edition = "2021" [lib] @@ -19,9 +18,11 @@ anchor-debug = [] custom-heap = [] custom-panic = [] - [dependencies] anchor-lang = "1.0.2" +descro = { path = "../../../descro/programs/descro", features = ["cpi"] } +descro_ext_resolvers = { path = "../../../descro/programs/descro_ext_resolvers" } +# pyth-solana-receiver-sdk = "0.3" # TODO: Use when implementing oracle - has borsh version incompatibility [dev-dependencies] litesvm = "0.12.0" @@ -30,6 +31,5 @@ solana-transaction = "3.0.2" solana-signer = "3.0.0" solana-keypair = "3.0.1" - [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("solana"))'] } diff --git a/programs/solisting/src/instructions/accept_order.rs b/programs/solisting/src/instructions/accept_order.rs new file mode 100644 index 0000000..e69de29 diff --git a/programs/solisting/src/instructions/cancel_order.rs b/programs/solisting/src/instructions/cancel_order.rs new file mode 100644 index 0000000..e69de29 diff --git a/programs/solisting/src/instructions/close_listing.rs b/programs/solisting/src/instructions/close_listing.rs new file mode 100644 index 0000000..e69de29 diff --git a/programs/solisting/src/instructions/close_stale_order.rs b/programs/solisting/src/instructions/close_stale_order.rs new file mode 100644 index 0000000..e69de29 diff --git a/programs/solisting/src/instructions/create_listing.rs b/programs/solisting/src/instructions/create_listing.rs new file mode 100644 index 0000000..e69de29 diff --git a/programs/solisting/src/instructions/create_order.rs b/programs/solisting/src/instructions/create_order.rs new file mode 100644 index 0000000..e69de29 diff --git a/programs/solisting/src/instructions/reject_order.rs b/programs/solisting/src/instructions/reject_order.rs new file mode 100644 index 0000000..e69de29 diff --git a/programs/solisting/src/instructions/update_listing.rs b/programs/solisting/src/instructions/update_listing.rs new file mode 100644 index 0000000..e69de29 diff --git a/programs/solisting/src/oracle.rs b/programs/solisting/src/oracle.rs new file mode 100644 index 0000000..e69de29 diff --git a/programs/solisting/tests/common/mod.rs b/programs/solisting/tests/common/mod.rs new file mode 100644 index 0000000..e69de29 diff --git a/programs/solisting/tests/test_listings.rs b/programs/solisting/tests/test_listings.rs new file mode 100644 index 0000000..e69de29 diff --git a/programs/solisting/tests/test_orders.rs b/programs/solisting/tests/test_orders.rs new file mode 100644 index 0000000..e69de29