Example #1
0
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('-s', '--source', help="Solidity source code")
    parser.add_argument('-f', '--file', help="solidity file name with full path. Like ~/examplefolder/test.solc")
    parser.add_argument('-p', '--procedure', help="Solidity function name.")
    parsed = parser.parse_args()

    compile_path = Path("../output/compiled")
    if not compile_path.is_dir():
        command = 'mkdir -p ../output/compiled'.split()
        for line in run_command(command):
            print(line)

    if parsed.source:
        solidity_source = parsed.source
        output = compile_standard({
            'language': 'Solidity',
            'sources': {'standard.sol': {'content': solidity_source}}
        })
        print "abi save to output / compiled / abi file"
         save_abi (findDict (output ['contracts'], 'abi'))
         print "bincode save to output / compiled / bytecode"
        save_bincode(str(findDict(output, 'object')))

        save_functions(findDict(output, 'methodIdentifiers'))
Example #2
0
def _log_topics(receipt):
    result_list = []
    logs = findDict(receipt, 'logs')
    for log in logs:
        topics = findDict(log, 'topics')
        result_list = list(set(result_list + topics))

    return result_list
Example #3
0
def main():
    compile_path = Path("../output/transaction")
    if not compile_path.is_dir():
        command = 'mkdir -p ../output/transaction'.split()
        for line in run_command(command):
            logger.debug(line)

    opts = parse_arguments()
    tx_hash = opts.tx if opts.tx else get_transaction_hash()

    while True:
        receipt = get_receipt_by(tx_hash)
        if receipt is not None:
            print(simplejson.dumps(receipt, indent=2))
            topics = _log_topics(receipt)
            save_topcis(topics)

            contract_address = findDict(receipt, 'contractAddress')
            save_contract_address(contract_address)

            break
        elif not opts.forever:
            break
        else:
            time.sleep(3)
Example #4
0
def main():
    compile_path = Path("../output/transaction")
    if not compile_path.is_dir():
        command = 'mkdir -p ../output/transaction'.split()
        for line in run_command(command):
            print(line)

    tx_hash = parse_arguments()
    if tx_hash is None:
        tx_hash = get_transaction_hash()

    receipt = get_receipt_by(remove_hex_0x(tx_hash))
    print(str(receipt))
    print("保存topics到../output/transaction/topics")
    topics = _log_topics(receipt)
    save_topcis(topics)

    contract_address = findDict(receipt, 'contractAddress')
    save_contract_address(contract_address)
Example #5
0
def main():
    compile_path = Path("../output/transaction")
    if not compile_path.is_dir():
        command = 'mkdir -p ../output/transaction'.split()
        for line in run_command(command):
            print(line)

    params = parse_arguments()
    if params is None:
        params = get_deploy_code()
        resp = send_transaction(params)
    elif isinstance(params, list) and len(params) > 1:
        resp = send_txs(params)
    else:
        resp = send_transaction(params)

    print("transaction hash 保存到../output/transaction/hash")
    if resp is not None:
        tx_hash = findDict(resp, 'hash')
        save_transaction_hash(tx_hash)
Example #6
0
        save_functions(findDict(output, 'methodIdentifiers'))
    elif parsed.file:
        # TODO: Error Handling File Format Checks
        print parsed.file
        paths = solidity_file_dirname(parsed.file)
        origin_path = os.getcwd()
        if paths is not None:
            filename, basepath, fullpath = paths
            os.chdir(basepath)
            output = compile_standard({
                'language': 'Solidity',
                'sources': {filename: {'urls': [fullpath]}},
            }, allow_paths=basepath)
            os.chdir(origin_path)
            print "abi save to output / compiled / abi file"
            save_abi(findDict(output['contracts'], 'abi'))
            print "bincode save to output / compiled / bytecode"
            save_bincode(str(findDict(output, 'object')))

            save_functions(findDict(output, 'methodIdentifiers'))
    elif parsed.procedure:
        key = parsed.procedure
        functions = read_functions()
        if functions is None or functions == "":
            print "Compile Solidity source first."
        else:
            data = findDict(functions, key)
            print add_hex_0x(data)


if __name__ == "__main__":
Example #7
0
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('-s', '--source', help="Solidity source code")
    parser.add_argument(
        '-f',
        '--file',
        help="solidity file name with full path. Like ~/examplefolder/test.solc"
    )
    parser.add_argument('-p', '--procedure', help="Solidity function name.")
    parsed = parser.parse_args()

    compile_path = Path("../output/compiled")
    if not compile_path.is_dir():
        command = 'mkdir -p ../output/compiled'.split()
        for line in run_command(command):
            print(line)

    if parsed.source:
        solidity_source = parsed.source
        output = compile_standard({
            'language': 'Solidity',
            'sources': {
                'standard.sol': {
                    'content': solidity_source
                }
            }
        })
        print("contract bytecode stored in 'output/compiled/bytecode'")
        save_abi(findDict(output['contracts'], 'abi'))
        print("function signature stored in 'output/compiled/functions'")
        save_functions(findDict(output, 'methodIdentifiers'))

        bytecode = compile_source(parsed.source)
        print("contract bytecode stored in 'output/compiled/bytecode'")
        save_bincode(str(findDict(bytecode, 'bin')))
        print(str(findDict(bytecode, 'bin')))

    elif parsed.file:
        # TODO: 错误处理 文件格式检查
        print(parsed.file)
        paths = solidity_file_dirname(parsed.file)
        origin_path = os.getcwd()
        if paths is not None:
            filename, basepath, fullpath = paths
            os.chdir(basepath)
            output = compile_standard(
                {
                    'language': 'Solidity',
                    'sources': {
                        filename: {
                            'urls': [fullpath]
                        }
                    },
                },
                allow_paths=basepath)

            os.chdir(origin_path)
            print("contract abi stored in 'output/compiled/abi'")
            save_abi(findDict(output['contracts'], 'abi'))
            print("function signature stored in 'output/compiled/functions'")
            save_functions(findDict(output, 'methodIdentifiers'))

            bytecode = compile_files([parsed.file])
            print("contract bytecode stored in 'output/compiled/bytecode'")
            save_bincode(str(findDict(bytecode, 'bin')))
            print(str(findDict(bytecode, 'bin')))

    elif parsed.procedure:
        key = parsed.procedure
        functions = read_functions()
        if functions is None or functions == "":
            print("Compile Solidity source first.")
        else:
            data = findDict(functions, key)
            print(add_hex_0x(data))
Example #8
0
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('-s', '--source', help="Solidity source code")
    parser.add_argument('-f', '--file', help="path name of solidity file")
    parsed = parser.parse_args()
    print("|-------------------------------|")
    print(parsed)
    print("|-------------------------------|")

    compile_path = Path("./output/compiled")
    if not compile_path.is_dir():
        command = 'mkdir -p ./output/compiled'.split()
        for line in run_command(command):
            print(line)

    if parsed.source:
        solidity_source = parsed.source
        output = compile_standard({
            'language': 'Solidity',
            'sources': {
                'standard.sol': {
                    'content': solidity_source
                }
            }
        })

        print("contract bytecode stored in 'output/compiled/bytecode'")
        save_abi(findDict(output['contracts'], 'abi'))
        print("function signature stored in 'output/compiled/functions'")
        save_functions(findDict(output, 'methodIdentifiers'))
        # save_output(output)

        bytecode = compile_source(parsed.source)
        print("contract bytecode stored in 'output/compiled/bytecode'")
        save_bincode(str(findDict(bytecode, 'bin')))
        save_output(bytecode)
        print(str(findDict(bytecode, 'bin')))

    elif parsed.file:

        print(parsed.file)
        paths = solidity_file_dirname(parsed.file)
        origin_path = os.getcwd()
        if paths is not None:
            filename, basepath, fullpath = paths
            # dir: solidity
            os.chdir(basepath)
            output = compile_standard(
                {
                    'language': 'Solidity',
                    'sources': {
                        filename: {
                            'urls': [fullpath]
                        }
                    },
                },
                allow_paths=basepath)

            # dir: contractool
            os.chdir(origin_path)
            save_output(output)
            print("contract abi stored in 'output/compiled/abi'")
            save_abi(findDict(output['contracts'], 'abi'))

            bytecode = compile_files([parsed.file])
            print('------', bytecode)
            print("contract bytecode stored in 'output/compiled/bytecode'")
            save_bincode(str(findDict(bytecode, 'bin')))

            print("function signature stored in 'output/compiled/functions'")
            save_functions(findDict(output, 'methodIdentifiers'))
            print(str(findDict(bytecode, 'bin')))