pragma solidity ˆ0.4.19; contract Registry { mapping (bytes32 => address) public isDeployed; function deploy(bytes code, address []owners) private returns (address) { bytes32 cfAddress = getCounterfactualAddress (code , owners); assembly { newContract := create (0 , add(code , 0x20) , mload (code)) } isDeployed[cfAddress] = newContract; return newContract; } function resolve(bytes32 cfAddress) public returns (address) { return isDeployed[cfAddress] } function proxyCall(address registry, bytes32 cfAddress, bytes data) public { address to = Registry(registry).resolve(cfAddress) ; require (to.call(data)); } function proxyDelegatecall(address registry, bytes32 cfAddress, bytes data) public { address to = Registry(registry).resolve(cfAddress); require (to.delegatecall(data)); } }
0.4.18