From 62f5cb198695ee2cf6bd963511675c481df21982 Mon Sep 17 00:00:00 2001 From: Reisen Date: Thu, 1 Jul 2021 07:20:03 +0000 Subject: [PATCH] Do message payment within same instruction Change-Id: Id1e3ac10bcdc7e91c649f5e75caf8a98e27be0c6 --- solana/bridge/program/src/api/post_message.rs | 7 ++++--- solana/bridge/program/tests/common.rs | 11 +++++++++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/solana/bridge/program/src/api/post_message.rs b/solana/bridge/program/src/api/post_message.rs index 18a9f4d5..c91ee37a 100644 --- a/solana/bridge/program/src/api/post_message.rs +++ b/solana/bridge/program/src/api/post_message.rs @@ -64,9 +64,10 @@ impl<'b> InstructionContext<'b> for PostMessage<'b> { #[derive(BorshDeserialize, BorshSerialize, Default)] pub struct PostMessageData { - /// unique nonce for this message + /// Unique nonce for this message pub nonce: u32, - /// message payload + + /// Message payload pub payload: Vec, } @@ -84,7 +85,7 @@ pub fn post_message( payload: data.payload.clone(), }; - trace!("Verifying Message: {}, {}", accs.emitter.key, data.nonce,); + trace!("Verifying Message: {}, {}", accs.emitter.key, data.nonce); accs.message .verify_derivation(ctx.program_id, &msg_derivation)?; diff --git a/solana/bridge/program/tests/common.rs b/solana/bridge/program/tests/common.rs index b51097a3..88948ee8 100644 --- a/solana/bridge/program/tests/common.rs +++ b/solana/bridge/program/tests/common.rs @@ -152,14 +152,21 @@ mod helpers { ) -> Pubkey { // Transfer money into the fee collector as it needs a balance/must exist. let fee_collector = FeeCollector::<'_>::key(None, program); - transfer(client, payer, &fee_collector, 10_000); // Capture the resulting message, later functions will need this. let (message_key, instruction) = instructions::post_message(*program, payer.pubkey(), emitter.pubkey(), nonce, data) .unwrap(); - execute(client, payer, &[payer, emitter], &[instruction]); + execute( + client, + payer, + &[payer, emitter], + &[ + system_instruction::transfer(&payer.pubkey(), &fee_collector, 10_000), + instruction, + ], + ); message_key }