Skip to content

Commit 74f0d71

Browse files
authored
feat: support for wormhole shim (#179)
* feat: support for wormhole shim * fix: removed `authority` account from `init_transfer_sol` call * chore: made `get_proof_for_event` public Relayer need this method to check that eth light client block number is greater than in tx hash to submit `claim_fee`
1 parent d4691e7 commit 74f0d71

File tree

7 files changed

+501
-159
lines changed

7 files changed

+501
-159
lines changed

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bridge-cli/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "bridge-cli"
3-
version = "0.3.6"
3+
version = "0.3.7"
44
edition = "2021"
55
repository = "https://github.com/Near-One/bridge-sdk-rs"
66

bridge-cli/src/defaults.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ pub const BNB_WORMHOLE_ADDRESS_MAINNET: &str = "0x98f3c9e6E3fAce36bAAd05FE09d375
2929
pub const SOLANA_RPC_MAINNET: &str = "https://api.mainnet-beta.solana.com";
3030
pub const SOLANA_BRIDGE_ADDRESS_MAINNET: &str = "dahPEoZGXfyV58JqqH85okdHmpN8U2q8owgPUXSCPxe";
3131
pub const SOLANA_WORMHOLE_ADDRESS_MAINNET: &str = "worm2ZoG2kUd4vFXhvjh93UUH596ayRfgQ2MgjNMTth";
32+
pub const SOLANA_WORMHOLE_POST_MESSAGE_SHIM_PROGRAM_ID_MAINNET: &str =
33+
"EtZMZM22ViKMo4r5y4Anovs3wKQ2owUmDpjygnMMcdEX";
34+
pub const SOLANA_WORMHOLE_POST_MESSAGE_SHIM_EVENT_AUTHORITY_MAINNET: &str =
35+
"HQS31aApX3DDkuXgSpV9XyDUNtFgQ31pUn5BNWHG2PSp";
3236

3337
pub const WORMHOLE_API_MAINNET: &str = "https://api.wormholescan.io";
3438
pub const BTC_ENDPOINT_MAINNET: &str = "https://bitcoin-rpc.publicnode.com";
@@ -67,6 +71,10 @@ pub const BNB_WORMHOLE_ADDRESS_TESTNET: &str = "0x68605AD7b15c732a30b1BbC62BE8F2
6771
pub const SOLANA_RPC_TESTNET: &str = "https://api.devnet.solana.com";
6872
pub const SOLANA_BRIDGE_ADDRESS_TESTNET: &str = "862HdJV59Vp83PbcubUnvuXc4EAXP8CDDs6LTxFpunTe";
6973
pub const SOLANA_WORMHOLE_ADDRESS_TESTNET: &str = "3u8hJUVTA4jH1wYAyUur7FFZVQ8H635K3tSHHF4ssjQ5";
74+
pub const SOLANA_WORMHOLE_POST_MESSAGE_SHIM_PROGRAM_ID_TESTNET: &str =
75+
"EtZMZM22ViKMo4r5y4Anovs3wKQ2owUmDpjygnMMcdEX";
76+
pub const SOLANA_WORMHOLE_POST_MESSAGE_SHIM_EVENT_AUTHORITY_TESTNET: &str =
77+
"HQS31aApX3DDkuXgSpV9XyDUNtFgQ31pUn5BNWHG2PSp";
7078

7179
pub const WORMHOLE_API_TESTNET: &str = "https://api.testnet.wormholescan.io";
7280
pub const BTC_ENDPOINT_TESTNET: &str = "https://bitcoin-testnet-rpc.publicnode.com";
@@ -105,6 +113,10 @@ pub const BNB_WORMHOLE_ADDRESS_DEVNET: &str = "0x68605AD7b15c732a30b1BbC62BE8F2A
105113
pub const SOLANA_RPC_DEVNET: &str = "https://api.devnet.solana.com";
106114
pub const SOLANA_BRIDGE_ADDRESS_DEVNET: &str = "Gy1XPwYZURfBzHiGAxnw3SYC33SfqsEpGSS5zeBge28p";
107115
pub const SOLANA_WORMHOLE_ADDRESS_DEVNET: &str = "3u8hJUVTA4jH1wYAyUur7FFZVQ8H635K3tSHHF4ssjQ5";
116+
pub const SOLANA_WORMHOLE_POST_MESSAGE_SHIM_PROGRAM_ID_DEVNET: &str =
117+
"EtZMZM22ViKMo4r5y4Anovs3wKQ2owUmDpjygnMMcdEX";
118+
pub const SOLANA_WORMHOLE_POST_MESSAGE_SHIM_EVENT_AUTHORITY_DEVNET: &str =
119+
"HQS31aApX3DDkuXgSpV9XyDUNtFgQ31pUn5BNWHG2PSp";
108120

109121
pub const WORMHOLE_API_DEVNET: &str = "https://api.testnet.wormholescan.io";
110122
pub const BTC_ENDPOINT_DEVNET: &str = "https://bitcoin-testnet-rpc.publicnode.com";

bridge-cli/src/main.rs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,10 @@ struct CliConfig {
7070
#[arg(long)]
7171
solana_wormhole_address: Option<String>,
7272
#[arg(long)]
73+
solana_wormhole_post_message_shim_program_id: Option<String>,
74+
#[arg(long)]
75+
solana_wormhole_post_message_shim_event_authority: Option<String>,
76+
#[arg(long)]
7377
solana_keypair: Option<String>,
7478

7579
#[arg(long)]
@@ -133,6 +137,12 @@ impl CliConfig {
133137
solana_wormhole_address: self
134138
.solana_wormhole_address
135139
.or(other.solana_wormhole_address),
140+
solana_wormhole_post_message_shim_program_id: self
141+
.solana_wormhole_post_message_shim_program_id
142+
.or(other.solana_wormhole_post_message_shim_program_id),
143+
solana_wormhole_post_message_shim_event_authority: self
144+
.solana_wormhole_post_message_shim_event_authority
145+
.or(other.solana_wormhole_post_message_shim_event_authority),
136146
solana_keypair: self.solana_keypair.or(other.solana_keypair),
137147

138148
wormhole_api: self.wormhole_api.or(other.wormhole_api),
@@ -188,6 +198,14 @@ fn env_config() -> CliConfig {
188198
solana_rpc: env::var("SOLANA_RPC").ok(),
189199
solana_bridge_address: env::var("SOLANA_BRIDGE_ADDRESS").ok(),
190200
solana_wormhole_address: env::var("SOLANA_WORMHOLE_ADDRESS").ok(),
201+
solana_wormhole_post_message_shim_program_id: env::var(
202+
"SOLANA_WORMHOLE_POST_MESSAGE_SHIM_PROGRAM_ID",
203+
)
204+
.ok(),
205+
solana_wormhole_post_message_shim_event_authority: env::var(
206+
"SOLANA_WORMHOLE_POST_MESSAGE_SHIM_EVENT_AUTHORITY",
207+
)
208+
.ok(),
191209
solana_keypair: env::var("SOLANA_KEYPAIR").ok(),
192210

193211
wormhole_api: env::var("WORMHOLE_API").ok(),
@@ -245,6 +263,12 @@ fn default_config(network: Network) -> CliConfig {
245263
solana_rpc: Some(defaults::SOLANA_RPC_MAINNET.to_owned()),
246264
solana_bridge_address: Some(defaults::SOLANA_BRIDGE_ADDRESS_MAINNET.to_owned()),
247265
solana_wormhole_address: Some(defaults::SOLANA_WORMHOLE_ADDRESS_MAINNET.to_owned()),
266+
solana_wormhole_post_message_shim_program_id: Some(
267+
defaults::SOLANA_WORMHOLE_POST_MESSAGE_SHIM_PROGRAM_ID_MAINNET.to_owned(),
268+
),
269+
solana_wormhole_post_message_shim_event_authority: Some(
270+
defaults::SOLANA_WORMHOLE_POST_MESSAGE_SHIM_EVENT_AUTHORITY_MAINNET.to_owned(),
271+
),
248272
solana_keypair: None,
249273

250274
wormhole_api: Some(defaults::WORMHOLE_API_MAINNET.to_owned()),
@@ -296,6 +320,12 @@ fn default_config(network: Network) -> CliConfig {
296320
solana_rpc: Some(defaults::SOLANA_RPC_TESTNET.to_owned()),
297321
solana_bridge_address: Some(defaults::SOLANA_BRIDGE_ADDRESS_TESTNET.to_owned()),
298322
solana_wormhole_address: Some(defaults::SOLANA_WORMHOLE_ADDRESS_TESTNET.to_owned()),
323+
solana_wormhole_post_message_shim_program_id: Some(
324+
defaults::SOLANA_WORMHOLE_POST_MESSAGE_SHIM_PROGRAM_ID_TESTNET.to_owned(),
325+
),
326+
solana_wormhole_post_message_shim_event_authority: Some(
327+
defaults::SOLANA_WORMHOLE_POST_MESSAGE_SHIM_EVENT_AUTHORITY_TESTNET.to_owned(),
328+
),
299329
solana_keypair: None,
300330

301331
wormhole_api: Some(defaults::WORMHOLE_API_TESTNET.to_owned()),
@@ -347,6 +377,12 @@ fn default_config(network: Network) -> CliConfig {
347377
solana_rpc: Some(defaults::SOLANA_RPC_DEVNET.to_owned()),
348378
solana_bridge_address: Some(defaults::SOLANA_BRIDGE_ADDRESS_DEVNET.to_owned()),
349379
solana_wormhole_address: Some(defaults::SOLANA_WORMHOLE_ADDRESS_DEVNET.to_owned()),
380+
solana_wormhole_post_message_shim_program_id: Some(
381+
defaults::SOLANA_WORMHOLE_POST_MESSAGE_SHIM_PROGRAM_ID_DEVNET.to_owned(),
382+
),
383+
solana_wormhole_post_message_shim_event_authority: Some(
384+
defaults::SOLANA_WORMHOLE_POST_MESSAGE_SHIM_EVENT_AUTHORITY_DEVNET.to_owned(),
385+
),
350386
solana_keypair: None,
351387

352388
wormhole_api: Some(defaults::WORMHOLE_API_DEVNET.to_owned()),

bridge-cli/src/omni_connector_command.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -863,6 +863,16 @@ fn omni_connector(network: Network, cli_config: CliConfig) -> OmniConnector {
863863
.solana_wormhole_address
864864
.map(|addr| addr.parse().unwrap()),
865865
)
866+
.wormhole_post_message_shim_program_id(
867+
combined_config
868+
.solana_wormhole_post_message_shim_program_id
869+
.map(|addr| addr.parse().unwrap()),
870+
)
871+
.wormhole_post_message_shim_event_authority(
872+
combined_config
873+
.solana_wormhole_post_message_shim_event_authority
874+
.map(|addr| addr.parse().unwrap()),
875+
)
866876
.keypair(
867877
combined_config
868878
.solana_keypair

0 commit comments

Comments
 (0)