Smart contract code: DSProxy
A user can execute functions through this proxy by passing in the bytecode for the target contract as well as the calldata for the function they want to call.
cache - address of contract that caches the bytecode of target contracts called by the proxy
execute - execute a function in the context of the proxy
setCache - set a new