AddressResolverand query for B and C at transaction time. Then, during a release, the AddressResolver is updated with the latest B and C contract. Thus this ensures that contract A always has the latest B and C contracts.
mapping(bytes32 => address)
areAddressesImported(bytes32 names, address destinations) view returns (bool)
getSynth(bytes32 key) view returns (address)
requireAndGetAddress(bytes32 name, string reason) view returns (address)
importAddresses(bytes32 names, address destinations)
rebuildCaches(contract MixinResolver destinations)
AddressImported(bytes32 name, address destination)