Skip to content

Commit 5340405

Browse files
Bengt Lofgrena5-pickle
authored andcommitted
working tests
1 parent ff4f766 commit 5340405

File tree

7 files changed

+92
-8
lines changed

7 files changed

+92
-8
lines changed

solana/modules/matching-engine-testing/tests/shimful/shims_execute_order.rs

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -302,3 +302,85 @@ fn create_execute_order_shim_accounts<'ix>(
302302
clock: clock_id, // 31
303303
}
304304
}
305+
306+
pub struct CctpAccounts {
307+
pub mint: Pubkey,
308+
pub token_messenger: Pubkey,
309+
pub token_messenger_minter_sender_authority: Pubkey,
310+
pub token_messenger_minter_event_authority: Pubkey,
311+
pub message_transmitter_config: Pubkey,
312+
pub token_minter: Pubkey,
313+
pub local_token: Pubkey,
314+
pub remote_token_messenger: Pubkey,
315+
pub token_messenger_minter_program: Pubkey,
316+
pub message_transmitter_program: Pubkey,
317+
}
318+
319+
impl Into<CctpDepositForBurn> for CctpAccounts {
320+
fn into(self) -> CctpDepositForBurn {
321+
CctpDepositForBurn {
322+
mint: self.mint,
323+
local_token: self.local_token,
324+
token_messenger_minter_sender_authority: self.token_messenger_minter_sender_authority,
325+
message_transmitter_config: self.message_transmitter_config,
326+
token_messenger: self.token_messenger,
327+
remote_token_messenger: self.remote_token_messenger,
328+
token_minter: self.token_minter,
329+
token_messenger_minter_event_authority: self.token_messenger_minter_event_authority,
330+
message_transmitter_program: self.message_transmitter_program,
331+
token_messenger_minter_program: self.token_messenger_minter_program,
332+
}
333+
}
334+
}
335+
336+
pub fn create_cctp_accounts(
337+
current_state: &TestingEngineState,
338+
testing_context: &TestingContext,
339+
) -> CctpAccounts {
340+
let transfer_direction = current_state.base().transfer_direction;
341+
let fixture_accounts = testing_context.get_fixture_accounts().unwrap();
342+
let remote_token_messenger = match transfer_direction {
343+
TransferDirection::FromEthereumToArbitrum => {
344+
fixture_accounts.arbitrum_remote_token_messenger
345+
}
346+
TransferDirection::FromArbitrumToEthereum => {
347+
fixture_accounts.ethereum_remote_token_messenger
348+
}
349+
_ => panic!("Unsupported transfer direction"),
350+
};
351+
let token_messenger_minter_sender_authority =
352+
Pubkey::find_program_address(&[b"sender_authority"], &TOKEN_MESSENGER_MINTER_PROGRAM_ID).0;
353+
let message_transmitter_config =
354+
Pubkey::find_program_address(&[b"message_transmitter"], &MESSAGE_TRANSMITTER_PROGRAM_ID).0;
355+
let token_messenger =
356+
Pubkey::find_program_address(&[b"token_messenger"], &TOKEN_MESSENGER_MINTER_PROGRAM_ID).0;
357+
let token_minter =
358+
Pubkey::find_program_address(&[b"token_minter"], &TOKEN_MESSENGER_MINTER_PROGRAM_ID).0;
359+
let local_token = Pubkey::find_program_address(
360+
&[b"local_token", &USDC_MINT.to_bytes()],
361+
&TOKEN_MESSENGER_MINTER_PROGRAM_ID,
362+
)
363+
.0;
364+
let token_messenger_minter_event_authority =
365+
Pubkey::find_program_address(&[EVENT_AUTHORITY_SEED], &TOKEN_MESSENGER_MINTER_PROGRAM_ID).0;
366+
CctpAccounts {
367+
mint: utils::constants::USDC_MINT,
368+
token_messenger,
369+
token_messenger_minter_sender_authority,
370+
token_messenger_minter_event_authority,
371+
message_transmitter_config,
372+
token_minter,
373+
local_token,
374+
remote_token_messenger,
375+
token_messenger_minter_program: TOKEN_MESSENGER_MINTER_PROGRAM_ID,
376+
message_transmitter_program: MESSAGE_TRANSMITTER_PROGRAM_ID,
377+
}
378+
}
379+
380+
pub fn create_cctp_deposit_for_burn(
381+
current_state: &TestingEngineState,
382+
testing_context: &TestingContext,
383+
) -> CctpDepositForBurn {
384+
let cctp_accounts = create_cctp_accounts(current_state, testing_context);
385+
cctp_accounts.into()
386+
}

solana/modules/matching-engine-testing/tests/shimful/shims_prepare_order_response.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ pub async fn prepare_order_response_cctp_shimful(
140140
prepared_custody_token: accounts.prepared_custody_token,
141141
base_fee_token: accounts.base_fee_token,
142142
actor_enum: config.actor_enum,
143+
prepared_by: payer_signer.pubkey(),
143144
};
144145
TestingEngineState::OrderPrepared {
145146
base: current_state.base().clone(),

solana/modules/matching-engine-testing/tests/shimful/shims_settle_auction_none_cctp.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ pub async fn settle_auction_none_shimful(
6161
return current_state.auction_state().clone();
6262
}
6363

64-
AuctionState::Settled
64+
AuctionState::Settled(None)
6565
}
6666

6767
struct SettleAuctionNoneCctpShimAccountsOwned {

solana/modules/matching-engine-testing/tests/shimless/settle_auction.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ pub async fn settle_auction_complete(
107107
base: current_state.base().clone(),
108108
initialized: current_state.initialized().unwrap().clone(),
109109
router_endpoints: current_state.router_endpoints().unwrap().clone(),
110-
auction_state: AuctionState::Settled(Box::new(active_auction.clone())),
110+
auction_state: AuctionState::Settled(Some(Box::new(active_auction.clone()))),
111111
fast_market_order: current_state.fast_market_order().cloned(),
112112
order_prepared: current_state.order_prepared().unwrap().clone(),
113113
auction_accounts: current_state.auction_accounts().cloned(),

solana/modules/matching-engine-testing/tests/shimless/settle_auction_none_cctp.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ pub async fn settle_auction_none_shimless(
6363
return current_state.auction_state().clone();
6464
}
6565

66-
AuctionState::Settled
66+
AuctionState::Settled(None)
6767
}
6868

6969
async fn create_settle_auction_none_cctp_shimless_accounts(

solana/modules/matching-engine-testing/tests/utils/auction.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ pub struct AuctionAccounts {
4747
pub enum AuctionState {
4848
Active(Box<ActiveAuctionState>),
4949
Paused(Box<ActiveAuctionState>),
50-
Settled(Box<ActiveAuctionState>),
50+
Settled(Option<Box<ActiveAuctionState>>),
5151
Inactive,
5252
}
5353

@@ -57,7 +57,8 @@ impl AuctionState {
5757
AuctionState::Active(auction) => Some(auction),
5858
AuctionState::Paused(auction) => Some(auction),
5959
AuctionState::Inactive => None,
60-
AuctionState::Settled(auction) => Some(auction),
60+
AuctionState::Settled(Some(auction)) => Some(auction),
61+
AuctionState::Settled(None) => None,
6162
}
6263
}
6364

solana/programs/matching-engine/src/fallback/processor/settle_auction_none_cctp.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -185,9 +185,9 @@ pub fn process(accounts: &[AccountInfo], data: &SettleAuctionNoneCctpShimData) -
185185
let closed_prepared_order_response_infos = &accounts[7..=9];
186186

187187
let closed_prepared_order_response_info = &closed_prepared_order_response_infos[0];
188-
let mut prepared_order_response = PreparedOrderResponse::try_deserialize(
188+
let mut prepared_order_response = Box::new(PreparedOrderResponse::try_deserialize(
189189
&mut &closed_prepared_order_response_info.data.borrow_mut()[..],
190-
)?;
190+
)?);
191191
let prepared_order_response_pda = Pubkey::create_program_address(
192192
&[
193193
PreparedOrderResponse::SEED_PREFIX,
@@ -273,7 +273,7 @@ pub fn process(accounts: &[AccountInfo], data: &SettleAuctionNoneCctpShimData) -
273273
&ID,
274274
auction_signer_seeds,
275275
)?;
276-
let mut auction = prepared_order_response.new_auction_placeholder(data.auction_bump);
276+
let mut auction = Box::new(prepared_order_response.new_auction_placeholder(data.auction_bump));
277277

278278
let SettledNone {
279279
user_amount,

0 commit comments

Comments
 (0)