def create_account(self, balance=<NUM_LIT:0>, address=None, code=None, name=None):
<EOL>if not self.count_running_states():<EOL><INDENT>raise NoAliveStates<EOL><DEDENT>if name is None:<EOL><INDENT>if code is None:<EOL><INDENT>name = self._get_uniq_name("<STR_LIT>")<EOL><DEDENT>else:<EOL><INDENT>name = self._get_uniq_name("<STR_LIT>")<EOL><DEDENT><DEDENT>if name in self._accounts:<EOL><INDENT>raise EthereumError("<STR_LIT>")<EOL><DEDENT>if not isinstance(balance, int):<EOL><INDENT>raise EthereumError("<STR_LIT>")<EOL><DEDENT>if isinstance(code, str):<EOL><INDENT>code = bytes(code, "<STR_LIT:utf-8>")<EOL><DEDENT>if code is not None and not isinstance(code, (bytes, Array)):<EOL><INDENT>raise EthereumError("<STR_LIT>")<EOL><DEDENT>if address is None:<EOL><INDENT>address = self.new_address()<EOL><DEDENT>if not isinstance(address, int):<EOL><INDENT>raise EthereumError("<STR_LIT>")<EOL><DEDENT>assert address is not None<EOL>if address in map(int, self.accounts.values()):<EOL><INDENT>raise EthereumError("<STR_LIT>")<EOL><DEDENT>for state in self.running_states:<EOL><INDENT>world = state.platform<EOL>if '<STR_LIT>' in state.context:<EOL><INDENT>raise EthereumError("<STR_LIT>")<EOL><DEDENT>if address in world.accounts:<EOL><INDENT>raise EthereumError("<STR_LIT>")<EOL><DEDENT>world.create_account(address, balance, code=code, storage=None)<EOL><DEDENT>self._accounts[name] = EVMAccount(address, manticore=self, name=name)<EOL>return self.accounts[name]<EOL>
Low level creates an account. This won't generate a transaction.

            :param balance: balance to be set on creation (optional)
            :type balance: int or BitVecVariable
            :param address: the address for the new account (optional)
            :type address: int
            :param code: the runtime code for the new account (None means normal account), str or bytes (optional)
            :param name: a global account name eg. for use as reference in the reports (optional)
            :return: an EVMAccount