Skip to content

Commit

Permalink
refactor(vft-gateway): Remove unnecessary eth_contract_address (#190)
Browse files Browse the repository at this point in the history
  • Loading branch information
gshep authored Oct 31, 2024
1 parent fb3c016 commit 131ff83
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 27 deletions.
18 changes: 1 addition & 17 deletions gear-programs/vft-gateway/app/src/services/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,6 @@ pub struct VftGatewayData {
vara_to_eth_token_id: HashMap<ActorId, H160>,
eth_to_vara_token_id: HashMap<H160, ActorId>,
eth_client: ActorId,
eth_contract_address: Option<H160>,
}

#[derive(Debug, Decode, Encode, TypeInfo)]
Expand Down Expand Up @@ -138,14 +137,6 @@ where
self.data_mut().eth_client = eth_client_new;
}

pub fn update_eth_contract_address(&mut self, eth_contract_address_new: Option<H160>) {
if self.data().admin != self.exec_context.actor_id() {
panic!("Not admin")
}

self.data_mut().eth_contract_address = eth_contract_address_new;
}

pub fn map_vara_to_eth_address(&mut self, vara_token_id: ActorId, eth_token_id: H160) {
if self.data().admin != self.exec_context.actor_id() {
panic!("Not admin")
Expand Down Expand Up @@ -251,10 +242,7 @@ where
let eth_token_id = H160::from(event.token.0 .0);
let vara_token_id = self.get_vara_token_id(&eth_token_id).ok()?;

self.eth_contract_address()
.map(|eth_contract_address| eth_contract_address == address)
.unwrap_or(false)
.then_some((vara_token_id, event))
(self.receiver_contract_address() == address).then_some((vara_token_id, event))
})
.ok_or(Error::NotSupportedEvent)?;

Expand Down Expand Up @@ -433,10 +421,6 @@ where
pub fn eth_client(&self) -> ActorId {
self.data().eth_client
}

fn eth_contract_address(&self) -> Option<H160> {
self.data().eth_contract_address
}
}

impl<T> VftGateway<T>
Expand Down
14 changes: 4 additions & 10 deletions gear-programs/vft-gateway/tests/gtest.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ const ADMIN_ID: u64 = 1000;
const TOKEN_ID: u64 = 200;
const ETH_CLIENT_ID: u64 = 500;
const BRIDGE_BUILTIN_ID: u64 = 300;
const RECEIVER_CONTRACT_ADDRESS: H160 = H160([2u8; 20]);

#[derive(Encode, Decode, Clone, Debug, PartialEq, Eq)]
pub enum Response {
Expand Down Expand Up @@ -113,7 +114,7 @@ async fn setup_for_test_with_mocks(
// Gateway
let gateway_code_id = remoting.system().submit_code(vft_gateway::WASM_BINARY);
let init_config = InitConfig {
receiver_contract_address: [1; 20].into(),
receiver_contract_address: RECEIVER_CONTRACT_ADDRESS,
gear_bridge_builtin: BRIDGE_BUILTIN_ID.into(),
eth_client: ETH_CLIENT_ID.into(),
config: Config {
Expand Down Expand Up @@ -506,28 +507,21 @@ async fn test_mint_tokens_from_eth_client() {
let eth_token_id = H160::default();
let receiver: ActorId = 10_000.into();
let amount = U256::from(10_000_000_000_u64);
let eth_contract_address = H160::from([1u8; 20]);

VftGatewayC::new(remoting.clone())
.map_vara_to_eth_address(vft_program_id, eth_token_id)
.send_recv(gateway_program_id)
.await
.unwrap();

VftGatewayC::new(remoting.clone())
.update_eth_contract_address(Some(eth_contract_address))
.send_recv(gateway_program_id)
.await
.unwrap();

VftC::new(remoting.clone())
.grant_minter_role(gateway_program_id)
.send_recv(vft_program_id)
.await
.unwrap();

let event = ERC20_TREASURY::Deposit {
from: [2u8; 20].into(),
from: [3u8; 20].into(),
to: receiver.into_bytes().into(),
token: eth_token_id.0.into(),
amount: {
Expand All @@ -542,7 +536,7 @@ async fn test_mint_tokens_from_eth_client() {
status: true.into(),
cumulative_gas_used: 100_000u128,
logs: vec![alloy_primitives::Log {
address: eth_contract_address.0.into(),
address: RECEIVER_CONTRACT_ADDRESS.0.into(),
data: Into::into(&event),
}],
});
Expand Down

0 comments on commit 131ff83

Please sign in to comment.