# How to call a function of Ethereum contract from a secret contract of Enigma?

**URL:** <https://forum.scrt.network/t/how-to-call-a-function-of-ethereum-contract-from-a-secret-contract-of-enigma/1561>\
**Category:** Uncategorized\
**Created:** [April 28, 2020, 9:05am UTC](https://forum.scrt.network/t/how-to-call-a-function-of-ethereum-contract-from-a-secret-contract-of-enigma/1561 "2020-04-28T09:05:17Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![WystanW](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.scrt.network/wystanw/32/510_2.png) [@WystanW](https://forum.scrt.network/u/WystanW)\
**Post date:** [April 28, 2020, 9:05am UTC](https://forum.scrt.network/t/how-to-call-a-function-of-ethereum-contract-from-a-secret-contract-of-enigma/1561/1 "2020-04-28T09:05:17Z")

</div>

Is there any examples of how to write code that callable only by Enigma contract on Ethereum blockchain in Solidity? I found this before

```
modifier onlyEnigma() {
require(msg.sender == address(enigma));
_;
  }

```

But this is a 2018 version of Enigma protocol.  
I have 2 questions:

1. How to write a Solidity function callable only by enigma?
2. How to write a Rust callback function that calls arbitrary functions of smart contract deployed on Ethereum.

I just need some classic examples
