Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
68a95ab
add settlement IDL
kaze-cow Jul 28, 2026
7e63017
add validation of the idl
kaze-cow Jul 29, 2026
b6f6b97
Merge branch 'main' into idl
kaze-cow Jul 29, 2026
adf17c5
fix lint
kaze-cow Jul 29, 2026
aab1aba
Merge branch 'idl' of github.com:cowprotocol/solana-programs into idl
kaze-cow Jul 29, 2026
f398816
Merge branch 'main' into idl
kaze-cow Jul 31, 2026
d976a07
Merge branch 'main' into idl
kaze-cow Jul 31, 2026
44e827e
Merge branch 'main' into idl
kaze-cow Aug 5, 2026
6c63eae
Merge remote-tracking branch 'origin/main' into idl
kaze-cow Aug 12, 2026
eb45059
sync idl and add a couple more tests to cover everything
kaze-cow Aug 12, 2026
541bcee
Update programs/settlement/tests/idl.rs
kaze-cow Aug 20, 2026
4d04660
Update programs/settlement/tests/idl.rs
kaze-cow Aug 20, 2026
bae4326
various fixes from feedback
kaze-cow Aug 20, 2026
4b8e58a
Merge branch 'idl' of github.com:cowprotocol/solana-programs into idl
kaze-cow Aug 20, 2026
b5b0090
refactor idl tests into a folder with relevant code isolated
kaze-cow Aug 20, 2026
3190d0e
switch to an enum to make it more clear what a type is in the idl
kaze-cow Aug 20, 2026
7a78d05
Merge remote-tracking branch 'origin/main' into idl
kaze-cow Aug 20, 2026
7005093
update to the latest on the idl side
kaze-cow Aug 20, 2026
ba596f8
add test verifying the idl version matches cargo pkg
kaze-cow Aug 20, 2026
f4cf043
improve confirm_idl_match params naming
kaze-cow Aug 20, 2026
1f13365
Merge branch 'main' into idl
kaze-cow Aug 24, 2026
af8cfd3
add more idl checks, when it was easy enough
kaze-cow Aug 24, 2026
f733e64
Merge branch 'idl' of github.com:cowprotocol/solana-programs into idl
kaze-cow Aug 24, 2026
0ae07e2
rethink how the testing structure works
kaze-cow Aug 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
198 changes: 195 additions & 3 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,15 @@ solana-program-pack = "3"
solana-rpc-client = "4"
derive_more = { version = "1", features = ["deref"] }
hex-literal = "1"
jsonschema = "0.30"
litesvm = "0.15"
litesvm-token = "0.15"
num_enum = "0.7"
pinocchio = "0.11"
pinocchio-system = "0.6"
pinocchio-token = "0.6"
proptest = "1"
serde_json = { version = "1", features = ["preserve_order"] }
cow-settlement-client = { path = "client", version = "0.2.0" }
cow-settlement-interface = { path = "interface", version = "0.2.0" }
solana-account-view = "2"
Expand All @@ -57,6 +59,7 @@ solana-system-interface = "3"
spl-associated-token-account-interface = "2"
spl-token = "9"
spl-token-interface = "3"
syn = { version = "2", features = ["full"] }

[workspace.metadata.cli]
# Used to help solana-verify identify the correct build image.
Expand Down
3 changes: 3 additions & 0 deletions interface/src/data/intent.rs
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ pub enum OrderKind {
Buy = 1,
}

/// Canonical order intent. Also the exact bytes hashed (SHA-256) to produce the order UID used in the order PDA's seeds,
/// and the exact wire format of create_order's `intent` argument. Field order and encoding here are load-bearing: they
/// must match this program's Rust definition exactly.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this comment was added because it probably should have existed in the first place, and not having it triggers an error in the IDL tests.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fine to add a comment, but this one is wrong, this is a struct, it doesn't store bytes, and its (Rust) encoding totally isn't the bytes hashed to produce the order UID. If anything, this is EncodedOrderIntent.

#[derive(Clone, Debug, Eq, PartialEq, Default)]
pub struct OrderIntent {
/// Account authorized to create and invalidate this order and whose
Expand Down
Loading