Is it possible to create a smart contract which triggerring will be delayed until a special transaction issued by a specific user appears in the chain? If it is possible can data from this transaction be used as an input for the contract?
1 Answer
Yes. Smart Contracts can make calls
to other contracts to check if a prerequisite of the requested transaction is satisfied.
Refer to interactions between contracts. https://dappsforbeginners.wordpress.com/tutorials/interactions-between-contracts/
Update: I understand, the question is seeking more input that I previously provided. I'll add more clarification. Assuming you have control on only one contract (A) that needs to watch for a trigger transaction on a contract (B) which is beyond your control. If you have control of both contracts, you simply trigger a transaction on (A) through your transaction to (B) as mentioned above.
Contracts cannot trigger by themselves, and need an EOA (Externally Owner Account) to start a transaction. In such a case you will need have an Oracle - an external service that will look for the trigger transaction on (B) and push a transaction to (A) on event. (A) can still do a check on state of (B) to make sure that the Oracle isn't gone rouge.