def test_compileSolidity(): from pyethapp.jsonrpc import Compilers, data_encoder import ethereum._solidity s = ethereum._solidity.get_solidity() if s == None: pytest.xfail("solidity not installed, not tested") else: c = Compilers() bc = s.compile(solidity_code) abi = s.mk_full_signature(solidity_code) A = dict(test=dict(code=data_encoder(bc), info=dict( source=solidity_code, language='Solidity', languageVersion='0', compilerVersion='0', abiDefinition=abi, userDoc=dict(methods=dict()), developerDoc=dict(methods=dict()), ))) B = c.compileSolidity(solidity_code) assert A.keys() == B.keys() At = A['test'] Bt = B['test'] assert At['code'] == Bt['code'] for k, Av in At['info'].items(): if k == 'compilerVersion': continue assert Av == Bt['info'][k]
def test_compileSolidity(): from pyethapp.jsonrpc import Compilers, data_encoder import ethereum._solidity s = ethereum._solidity.get_solidity() if s == None: pytest.xfail("solidity not installed, not tested") else: c = Compilers() bc = s.compile(solidity_code) abi = s.mk_full_signature(solidity_code) A = dict( test=dict( code=data_encoder(bc), info=dict( source=solidity_code, language="Solidity", languageVersion="0", compilerVersion="0", abiDefinition=abi, userDoc=dict(methods=dict()), developerDoc=dict(methods=dict()), ), ) ) B = c.compileSolidity(solidity_code) assert A.keys() == B.keys() At = A["test"] Bt = B["test"] assert At["code"] == Bt["code"] for k, Av in At["info"].items(): if k == "compilerVersion": continue assert Av == Bt["info"][k]
def test_compileSolidity_2(): result = Compilers().compileSolidity(solidity_code) assert set(result.keys()) == {'test'} assert set(result['test'].keys()) == {'info', 'code'} assert set(result['test']['info']) == { 'language', 'languageVersion', 'abiDefinition', 'source', 'compilerVersion', 'developerDoc', 'userDoc' }
def test_compile_solidity(): with open(path.join(path.dirname(__file__), 'contracts', 'multiply.sol')) as handler: solidity_code = handler.read() solidity = ethereum.tools._solidity.get_solidity() # pylint: disable=protected-access abi = solidity.mk_full_signature(solidity_code) code = data_encoder(solidity.compile(solidity_code)) info = { 'abiDefinition': abi, 'compilerVersion': '0', 'developerDoc': { 'methods': None, }, 'language': 'Solidity', 'languageVersion': '0', 'source': solidity_code, 'userDoc': { 'methods': None, }, } test_result = { 'test': { 'code': code, 'info': info, } } compiler_result = Compilers().compileSolidity(solidity_code) assert set(compiler_result.keys()) == { 'test', } assert set(compiler_result['test'].keys()) == { 'info', 'code', } assert set(compiler_result['test']['info']) == { 'abiDefinition', 'compilerVersion', 'developerDoc', 'language', 'languageVersion', 'source', 'userDoc', } assert test_result['test']['code'] == compiler_result['test']['code'] compiler_info = dict(compiler_result['test']['info']) compiler_info.pop('compilerVersion') info.pop('compilerVersion') assert compiler_info['abiDefinition'] == info['abiDefinition']
def test_compileSolidity_2(): result = Compilers().compileSolidity(solidity_code) assert set(result.keys()) == {"test"} assert set(result["test"].keys()) == {"info", "code"} assert set(result["test"]["info"]) == { "language", "languageVersion", "abiDefinition", "source", "compilerVersion", "developerDoc", "userDoc", }
def test_compileSolidity(): from pyethapp.jsonrpc import Compilers, data_encoder import ethereum._solidity s = ethereum._solidity.get_solidity() c = Compilers() assert 'solidity' in c.getCompilers() bc = s.compile(solidity_code) abi = s.mk_full_signature(solidity_code) r = dict(code=data_encoder(bc), info=dict(source=solidity_code, language='Solidity', languageVersion='0', compilerVersion='0', abiDefinition=abi, userDoc=dict(methods=dict()), developerDoc=dict(methods=dict()), ) ) assert r == c.compileSolidity(solidity_code)
def test_compileSolidity(): from pyethapp.jsonrpc import Compilers, data_encoder import ethereum._solidity s = ethereum._solidity.get_solidity() if s == None: pytest.xfail("solidity not installed, not tested") else: c = Compilers() bc = s.compile(solidity_code) abi = s.mk_full_signature(solidity_code) r = dict(code=data_encoder(bc), info=dict(source=solidity_code, language='Solidity', languageVersion='0', compilerVersion='0', abiDefinition=abi, userDoc=dict(methods=dict()), developerDoc=dict(methods=dict()), ) ) assert r == c.compileSolidity(solidity_code)
def test_compileSolidity(): from pyethapp.jsonrpc import Compilers, data_encoder import ethereum._solidity s = ethereum._solidity.get_solidity() if s == None: pytest.xfail("solidity not installed, not tested") else: c = Compilers() bc = s.compile(solidity_code) abi = s.mk_full_signature(solidity_code) r = dict(code=data_encoder(bc), info=dict( source=solidity_code, language='Solidity', languageVersion='0', compilerVersion='0', abiDefinition=abi, userDoc=dict(methods=dict()), developerDoc=dict(methods=dict()), )) assert r == c.compileSolidity(solidity_code)
abiDefinition=abi, userDoc=dict(methods=dict()), developerDoc=dict(methods=dict()), ))) B = c.compileSolidity(solidity_code) assert A.keys() == B.keys() At = A['test'] Bt = B['test'] assert At['code'] == Bt['code'] for k, Av in At['info'].items(): if k == 'compilerVersion': continue assert Av == Bt['info'][k] @pytest.mark.skipif('solidity' not in Compilers().compilers, reason="solidity compiler not available") def test_compileSolidity_2(): result = Compilers().compileSolidity(solidity_code) assert set(result.keys()) == {'test'} assert set(result['test'].keys()) == {'info', 'code'} assert set(result['test']['info']) == { 'language', 'languageVersion', 'abiDefinition', 'source', 'compilerVersion', 'developerDoc', 'userDoc' } @pytest.fixture def test_app(request, tmpdir): class TestApp(EthApp): def start(self):
from pyethapp.app import EthApp from pyethapp.config import update_config_with_defaults, get_default_config from pyethapp.db_service import DBService from pyethapp.eth_service import ChainService from pyethapp.jsonrpc import Compilers, JSONRPCServer, quantity_encoder, address_encoder, data_decoder, \ data_encoder, default_gasprice, default_startgas from pyethapp.rpc_client import JSONRPCClient from pyethapp.profiles import PROFILES from pyethapp.pow_service import PoWService from pyethapp.rpc_client import ContractProxy from pyethapp.utils import to_comparable_logs ethereum.tools.keys.PBKDF2_CONSTANTS['c'] = 100 # faster key derivation log = get_logger('test.jsonrpc') # pylint: disable=invalid-name configure_logging(':trace') SOLIDITY_AVAILABLE = 'solidity' in Compilers().compilers # EVM code corresponding to the following solidity code: # # contract LogTest { # event Log(); # # function () { # Log(); # } # } # # (compiled with online Solidity compiler at https://chriseth.github.io/browser-solidity/ version # 0.1.1-34172c3b/RelWithDebInfo-Emscripten/clang/int) LOG_EVM = decode_hex( '606060405260448060116000396000f30060606040523615600d57600d565b60425b7f5e7df75d54'