code: func CallCodeSim(reader acmstate.Reader, tip bcm.BlockchainInfo, fromAddress, address crypto.Address, code, data []byte,
  	logger *logging.Logger) (*exec.TxExecution, error) {
  
  	// Attach code to target account (overwriting target)
  	cache := acmstate.NewCache(reader)
  	err := cache.UpdateAccount(&acm.Account{
  		Address: address,
  		Code:    code,
  	})
  
  	if err != nil {
  		return nil, err
  	}
  	return CallSim(cache, tip, fromAddress, address, data, logger)
  }
docs: // Run the given code on an isolated and unpersisted state
  // Cannot be used to create new contracts.