There seem to be at least two ways of setting the address of an external contract:
- At deploy/constructor time:
function contractName(address _otherContractAddress)
- A setter function that can be called once the contract is deployed:
function setExternalAddress(address _otherContractAddress)
What are other ways of doing this and/or is there a canonical way of doing so? I am leaning towards the second solution above because it is more flexible post-deploy and the deploy process will be simpler.