3

This is not a duplicate question, as the alarm contract only allows function calls to be made in the future, over a period of at least 10+ blocks...

The current thinking is to just use the alarm clock contract, however, this only allows for a minimum future contract function call of at least 10+ blocks in the future, I need to do it in e.g. 3.

What is the current thinking to invoke a contract function e.g 3 blocks in the future.

Is there anyway to do this, that does not rely on client-side invocation 3 blocks down the track?

I cannot rely on client invocation, I need a definitive, stable, guaranteed way to invoke a function on a smart contract 3 blocks from the time (block) a client had first invoked the contract.

4

Unfortunately, you cannot do this.

  • you need "client invocation" to initiate any kind of transaction in ethereum
  • there is no guarantee whatsoever that your transaction will be mined at a specific time - it is up to the miner to decide whether to include your transaction or not
2

The fundamental problem with waiting only three blocks for invocation (and the reason I imagine the alarm clock doesn't support it) is that the Ethereum blockchain is very much subject to reorganization at a three block depth. Remember, our block time being only fifteen seconds means we need to wait for more confirmations than a Bitcoin transaction for the same degree of security. Less than 10 minutes, but more than six confirmations.

You could write your own alarm clock contract that supports n-block invocation, but because the alarm contract relies on incentivizing users to send transactions on your behalf, they may choose not to if there is a high risk that their work will go unrewarded. And it very well might not at a three-block depth.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.