Skip to content

Commit 9169ca3

Browse files
authored
feat: add batch update specific discriminator (#1579)
1 parent 2c5952c commit 9169ca3

File tree

3 files changed

+17
-9
lines changed

3 files changed

+17
-9
lines changed

program-libs/account-checks/src/discriminator.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
pub const ANCHOR_DISCRIMINATOR_LEN: usize = 8;
22

3-
43
pub trait Discriminator<const T: usize> {
54
const DISCRIMINATOR: [u8; T];
65
fn discriminator() -> [u8; T] {

program-libs/batched-merkle-tree/src/event.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
use crate::{BorshDeserialize, BorshSerialize};
22

3-
pub const BATCH_EVENT_DISCRIMINATOR: [u8; 8] = *b"BatchEvt";
3+
pub const BATCH_APPEND_EVENT_DISCRIMINATOR: u16 = 1;
4+
pub const BATCH_NULLIFY_EVENT_DISCRIMINATOR: u16 = 2;
5+
pub const BATCH_ADDRESS_APPEND_EVENT_DISCRIMINATOR: u16 = 3;
46

57
#[repr(C)]
68
#[derive(BorshDeserialize, BorshSerialize, Debug, PartialEq)]
79
pub struct BatchAppendEvent {
8-
pub discriminator: [u8; 8],
10+
pub discriminator: u16,
911
pub tree_type: u64,
1012
pub merkle_tree_pubkey: [u8; 32],
1113
pub batch_index: u64,

program-libs/batched-merkle-tree/src/merkle_tree.rs

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@ use crate::{
3434
},
3535
errors::BatchedMerkleTreeError,
3636
event::{
37-
BatchAddressAppendEvent, BatchAppendEvent, BatchNullifyEvent, BATCH_EVENT_DISCRIMINATOR,
37+
BatchAddressAppendEvent, BatchAppendEvent, BatchNullifyEvent,
38+
BATCH_ADDRESS_APPEND_EVENT_DISCRIMINATOR, BATCH_APPEND_EVENT_DISCRIMINATOR,
39+
BATCH_NULLIFY_EVENT_DISCRIMINATOR,
3840
},
3941
merkle_tree_metadata::BatchedMerkleTreeMetadata,
4042
queue::{
@@ -431,7 +433,7 @@ impl<'a> BatchedMerkleTreeAccount<'a> {
431433
}
432434
// 6. Return the batch append event.
433435
Ok(BatchAppendEvent {
434-
discriminator: BATCH_EVENT_DISCRIMINATOR,
436+
discriminator: BATCH_APPEND_EVENT_DISCRIMINATOR,
435437
tree_type: self.tree_type,
436438
merkle_tree_pubkey: self.pubkey.to_bytes(),
437439
output_queue_pubkey: Some(queue_account.pubkey().to_bytes()),
@@ -550,10 +552,15 @@ impl<'a> BatchedMerkleTreeAccount<'a> {
550552
// Needs to be executed post mark_as_inserted_in_merkle_tree.
551553
self.zero_out_previous_batch_bloom_filter()?;
552554
}
555+
let discriminator = if QueueType::from(QUEUE_TYPE) == QueueType::BatchedInput {
556+
BATCH_NULLIFY_EVENT_DISCRIMINATOR
557+
} else {
558+
BATCH_ADDRESS_APPEND_EVENT_DISCRIMINATOR
559+
};
553560

554561
// 6. Return the batch nullify/address append event.
555562
Ok(BatchNullifyEvent {
556-
discriminator: BATCH_EVENT_DISCRIMINATOR,
563+
discriminator,
557564
tree_type: self.tree_type,
558565
merkle_tree_pubkey: self.pubkey.to_bytes(),
559566
batch_index: pending_batch_index as u64,
@@ -975,7 +982,7 @@ pub fn assert_nullify_event(
975982
.unwrap();
976983
let ref_event = BatchNullifyEvent {
977984
merkle_tree_pubkey: mt_pubkey.to_bytes(),
978-
discriminator: BATCH_EVENT_DISCRIMINATOR,
985+
discriminator: BATCH_NULLIFY_EVENT_DISCRIMINATOR,
979986
tree_type: old_account.tree_type,
980987
output_queue_pubkey: None,
981988
batch_index,
@@ -1006,7 +1013,7 @@ pub fn assert_batch_append_event_event(
10061013
.unwrap();
10071014
let ref_event = BatchAppendEvent {
10081015
merkle_tree_pubkey: mt_pubkey.to_bytes(),
1009-
discriminator: BATCH_EVENT_DISCRIMINATOR,
1016+
discriminator: BATCH_APPEND_EVENT_DISCRIMINATOR,
10101017
tree_type: old_account.tree_type,
10111018
output_queue_pubkey: Some(old_output_queue_account.pubkey().to_bytes()),
10121019
batch_index,
@@ -1036,7 +1043,7 @@ pub fn assert_batch_adress_event(
10361043
.unwrap();
10371044
let ref_event = BatchAppendEvent {
10381045
merkle_tree_pubkey: mt_pubkey.to_bytes(),
1039-
discriminator: BATCH_EVENT_DISCRIMINATOR,
1046+
discriminator: BATCH_ADDRESS_APPEND_EVENT_DISCRIMINATOR,
10401047
tree_type: old_account.tree_type,
10411048
output_queue_pubkey: None,
10421049
batch_index,

0 commit comments

Comments
 (0)