3

If it is allowed to specify contract parameters within the contract reference transaction, it should be possible to adapt the HelloWorld example contract to send a message to an account specified in the reference transaction.

For example, when I send a trigger transaction from account A to the contract runner account B, the contract responses with a message to Account C (where account C is specified in the reference transaction).

What if there is another reference transaction that specifies an account D? How can I be sure that the response will be sent to account C? Is there a parameter for the trigger transaction to reference a specific contract reference transaction?

2

The trigger transaction only specifies the contract reference name. This contract reference name is unique per account. It is possible for a different contract runner to use different contract runner account with different contract reference names. Which means that the same trigger transaction can trigger different runners to load and run a different version of a contract from the blockchain or even a completely different contract depending on the reference.

Having said that, a trigger transaction most likely will set its recipient to a specific account, triggered contracts should first check if they are the recipient of the trigger transaction and ignore it if they are not.

There could be variations on this, for example a contract can choose to process a trigger transaction for which its contract runner account is not the recipient. Perhaps the contract runner account has set specific account properties on a group of accounts it would like to consider when they are a recipients of a trigger transaction.

Having said that, in most cases I expect that only one contract runner will process a trigger transaction and the rest will ignore it.

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.