Skip to content

Commit 99363f9

Browse files
authored
[TKN-714] add unit tests to validate anchor account discriminators (#1094)
1 parent 5d59eef commit 99363f9

File tree

13 files changed

+218
-1
lines changed

13 files changed

+218
-1
lines changed

.changeset/fruity-impalas-sit.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@orca-so/whirlpools-program": patch
3+
---
4+
5+
Add unit tests to validate account discriminators

programs/whirlpool/src/state/adaptive_fee_tier.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,25 @@ impl AdaptiveFeeTier {
149149
}
150150
}
151151

152+
#[cfg(test)]
153+
mod discriminator_tests {
154+
use anchor_lang::Discriminator;
155+
156+
use super::*;
157+
158+
#[test]
159+
fn test_discriminator() {
160+
let discriminator = AdaptiveFeeTier::discriminator();
161+
// The discriminator is determined by the struct name and not depending on the program id.
162+
// $ echo -n account:AdaptiveFeeTier | sha256sum | cut -c 1-16
163+
// 931090742f92952e
164+
assert_eq!(
165+
discriminator,
166+
[0x93, 0x10, 0x90, 0x74, 0x2f, 0x92, 0x95, 0x2e]
167+
);
168+
}
169+
}
170+
152171
#[cfg(test)]
153172
mod data_layout_tests {
154173
use anchor_lang::Discriminator;

programs/whirlpool/src/state/config.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,25 @@ pub enum ConfigFeatureFlag {
9999
TokenBadge(bool),
100100
}
101101

102+
#[cfg(test)]
103+
mod discriminator_tests {
104+
use anchor_lang::Discriminator;
105+
106+
use super::*;
107+
108+
#[test]
109+
fn test_discriminator() {
110+
let discriminator = WhirlpoolsConfig::discriminator();
111+
// The discriminator is determined by the struct name and not depending on the program id.
112+
// $ echo -n account:WhirlpoolsConfig | sha256sum | cut -c 1-16
113+
// 9d1431e0d957c1fe
114+
assert_eq!(
115+
discriminator,
116+
[0x9d, 0x14, 0x31, 0xe0, 0xd9, 0x57, 0xc1, 0xfe]
117+
);
118+
}
119+
}
120+
102121
#[cfg(test)]
103122
mod data_layout_tests {
104123
use anchor_lang::Discriminator;

programs/whirlpool/src/state/config_extension.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,25 @@ mod whirlpools_config_extension_initialize_tests {
6161
}
6262
}
6363

64+
#[cfg(test)]
65+
mod discriminator_tests {
66+
use anchor_lang::Discriminator;
67+
68+
use super::*;
69+
70+
#[test]
71+
fn test_discriminator() {
72+
let discriminator = WhirlpoolsConfigExtension::discriminator();
73+
// The discriminator is determined by the struct name and not depending on the program id.
74+
// $ echo -n account:WhirlpoolsConfigExtension | sha256sum | cut -c 1-16
75+
// 0263d7a3f01a993a
76+
assert_eq!(
77+
discriminator,
78+
[0x02, 0x63, 0xd7, 0xa3, 0xf0, 0x1a, 0x99, 0x3a]
79+
);
80+
}
81+
}
82+
6483
#[cfg(test)]
6584
mod whirlpools_config_extension_update_tests {
6685
use super::*;

programs/whirlpool/src/state/dynamic_tick_array.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -949,7 +949,10 @@ mod discriminator_tests {
949949
// The discriminator is determined by the struct name and not depending on the program id.
950950
// $ echo -n account:DynamicTickArray | sha256sum | cut -c 1-16
951951
// 11d8f68ee1c7da38
952-
assert_eq!(discriminator, [17, 216, 246, 142, 225, 199, 218, 56]);
952+
assert_eq!(
953+
discriminator,
954+
[0x11, 0xd8, 0xf6, 0x8e, 0xe1, 0xc7, 0xda, 0x38]
955+
);
953956
}
954957
}
955958

programs/whirlpool/src/state/fee_tier.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,25 @@ impl FeeTier {
3838
}
3939
}
4040

41+
#[cfg(test)]
42+
mod discriminator_tests {
43+
use anchor_lang::Discriminator;
44+
45+
use super::*;
46+
47+
#[test]
48+
fn test_discriminator() {
49+
let discriminator = FeeTier::discriminator();
50+
// The discriminator is determined by the struct name and not depending on the program id.
51+
// $ echo -n account:FeeTier | sha256sum | cut -c 1-16
52+
// 384b9f4c8e44be69
53+
assert_eq!(
54+
discriminator,
55+
[0x38, 0x4b, 0x9f, 0x4c, 0x8e, 0x44, 0xbe, 0x69]
56+
);
57+
}
58+
}
59+
4160
#[cfg(test)]
4261
mod data_layout_tests {
4362
use anchor_lang::Discriminator;

programs/whirlpool/src/state/fixed_tick_array.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,25 @@ mod array_update_tests {
253253
}
254254
}
255255

256+
#[cfg(test)]
257+
mod discriminator_tests {
258+
use anchor_lang::Discriminator;
259+
260+
use super::*;
261+
262+
#[test]
263+
fn test_discriminator() {
264+
let discriminator = TickArray::discriminator();
265+
// The discriminator is determined by the struct name and not depending on the program id.
266+
// $ echo -n account:TickArray | sha256sum | cut -c 1-16
267+
// 4561bdbe6e0742bb
268+
assert_eq!(
269+
discriminator,
270+
[0x45, 0x61, 0xbd, 0xbe, 0x6e, 0x07, 0x42, 0xbb]
271+
);
272+
}
273+
}
274+
256275
#[cfg(test)]
257276
mod data_layout_tests {
258277
use crate::state::NUM_REWARDS;

programs/whirlpool/src/state/lock_config.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,25 @@ mod lock_config_initialize_tests {
8585
}
8686
}
8787

88+
#[cfg(test)]
89+
mod discriminator_tests {
90+
use anchor_lang::Discriminator;
91+
92+
use super::*;
93+
94+
#[test]
95+
fn test_discriminator() {
96+
let discriminator = LockConfig::discriminator();
97+
// The discriminator is determined by the struct name and not depending on the program id.
98+
// $ echo -n account:LockConfig | sha256sum | cut -c 1-16
99+
// 6a2fee9f7c0ca0c0
100+
assert_eq!(
101+
discriminator,
102+
[0x6a, 0x2f, 0xee, 0x9f, 0x7c, 0x0c, 0xa0, 0xc0]
103+
);
104+
}
105+
}
106+
88107
#[cfg(test)]
89108
mod data_layout_tests {
90109
use anchor_lang::Discriminator;

programs/whirlpool/src/state/oracle.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -480,6 +480,25 @@ impl<'info> OracleAccessor<'info> {
480480
}
481481
}
482482

483+
#[cfg(test)]
484+
mod discriminator_tests {
485+
use anchor_lang::Discriminator;
486+
487+
use super::*;
488+
489+
#[test]
490+
fn test_discriminator() {
491+
let discriminator = Oracle::discriminator();
492+
// The discriminator is determined by the struct name and not depending on the program id.
493+
// $ echo -n account:Oracle | sha256sum | cut -c 1-16
494+
// 8bc283b38cb3e5f4
495+
assert_eq!(
496+
discriminator,
497+
[0x8b, 0xc2, 0x83, 0xb3, 0x8c, 0xb3, 0xe5, 0xf4]
498+
);
499+
}
500+
}
501+
483502
#[cfg(test)]
484503
mod data_layout_tests {
485504
use super::*;

programs/whirlpool/src/state/position.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -332,6 +332,25 @@ pub mod position_builder {
332332
}
333333
}
334334

335+
#[cfg(test)]
336+
mod discriminator_tests {
337+
use anchor_lang::Discriminator;
338+
339+
use super::*;
340+
341+
#[test]
342+
fn test_discriminator() {
343+
let discriminator = Position::discriminator();
344+
// The discriminator is determined by the struct name and not depending on the program id.
345+
// $ echo -n account:Position | sha256sum | cut -c 1-16
346+
// aabc8fe47a40f7d0
347+
assert_eq!(
348+
discriminator,
349+
[0xaa, 0xbc, 0x8f, 0xe4, 0x7a, 0x40, 0xf7, 0xd0]
350+
);
351+
}
352+
}
353+
335354
#[cfg(test)]
336355
mod data_layout_tests {
337356
use anchor_lang::Discriminator;

0 commit comments

Comments
 (0)