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'))
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
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)
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)
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)
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__":
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))
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')))