From 57ee3619836b1409b0184be958246827966c11e2 Mon Sep 17 00:00:00 2001 From: Michal Nazarewicz Date: Fri, 25 Oct 2024 02:12:52 +0200 Subject: [PATCH] use pubkey!; turned out to be a bit more complicated --- Cargo.lock | 1 + solana/solana-ibc/programs/solana-ibc/Cargo.toml | 5 +++++ solana/solana-ibc/programs/solana-ibc/src/lib.rs | 4 ++-- solana/solana-ibc/programs/solana-ibc/src/transfer/mod.rs | 7 ++----- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8084abd5..790e3a0a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5724,6 +5724,7 @@ dependencies = [ "serde", "serde_json", "solana-allocator", + "solana-program 1.17.31", "solana-signature-verifier", "solana-trie", "solana-write-account", diff --git a/solana/solana-ibc/programs/solana-ibc/Cargo.toml b/solana/solana-ibc/programs/solana-ibc/Cargo.toml index 63771bae..e0251617 100644 --- a/solana/solana-ibc/programs/solana-ibc/Cargo.toml +++ b/solana/solana-ibc/programs/solana-ibc/Cargo.toml @@ -35,6 +35,11 @@ primitive-types.workspace = true prost.workspace = true serde.workspace = true serde_json.workspace = true +# We normally access solana_program via anchor_lang but to support +# pubkey! macro we need to have solana_program as direct dependency. +# TODO(mina86): Remove this once we upgrade Anchor to version with its +# own pubkey! macro. +solana-program.workspace = true spl-associated-token-account.workspace = true spl-token.workspace = true strum.workspace = true diff --git a/solana/solana-ibc/programs/solana-ibc/src/lib.rs b/solana/solana-ibc/programs/solana-ibc/src/lib.rs index ba832a09..a110f788 100644 --- a/solana/solana-ibc/programs/solana-ibc/src/lib.rs +++ b/solana/solana-ibc/programs/solana-ibc/src/lib.rs @@ -35,8 +35,8 @@ pub const WSOL_ADDRESS: &str = "So11111111111111111111111111111111111111112"; pub const MINIMUM_FEE_ACCOUNT_BALANCE: u64 = solana_program::native_token::LAMPORTS_PER_SOL; -pub const BRIDGE_ESCROW_PROGRAM_ID: &str = - "AhfoGVmS19tvkEG2hBuZJ1D6qYEjyFmXZ1qPoFD6H4Mj"; +pub const BRIDGE_ESCROW_PROGRAM_ID: Pubkey = + solana_program::pubkey!("AhfoGVmS19tvkEG2hBuZJ1D6qYEjyFmXZ1qPoFD6H4Mj"); pub const HOOK_TOKEN_ADDRESS: &str = "0x36dd1bfe89d409f869fabbe72c3cf72ea8b460f6"; diff --git a/solana/solana-ibc/programs/solana-ibc/src/transfer/mod.rs b/solana/solana-ibc/programs/solana-ibc/src/transfer/mod.rs index 10b353a5..de1d0535 100644 --- a/solana/solana-ibc/programs/solana-ibc/src/transfer/mod.rs +++ b/solana/solana-ibc/programs/solana-ibc/src/transfer/mod.rs @@ -1,5 +1,5 @@ use std::result::Result; -use std::str::{self, FromStr}; +use std::str; use anchor_lang::prelude::*; use serde::{Deserialize, Serialize}; @@ -215,9 +215,6 @@ impl ibc::Module for IbcStorage<'_, '_> { instruction_data.extend_from_slice(intent_id.as_bytes()); instruction_data.extend_from_slice(memo.as_bytes()); - let bridge_escrow_program_id = - Pubkey::from_str(BRIDGE_ESCROW_PROGRAM_ID).unwrap(); - let account_metas = accounts .iter() .map(|account| AccountMeta { @@ -227,7 +224,7 @@ impl ibc::Module for IbcStorage<'_, '_> { }) .collect::>(); let instruction = Instruction::new_with_bytes( - bridge_escrow_program_id, + BRIDGE_ESCROW_PROGRAM_ID, &instruction_data, account_metas, );