diff --git a/.gitignore b/.gitignore index b93c791a044..e7c97dfee63 100644 --- a/.gitignore +++ b/.gitignore @@ -1,86 +1,50 @@ -*.a -*.sw* -*.dylib -*.ll -*.bc -*.wast -*.wast.hpp -*.s -*.dot -*.abi.hpp -*.cmake +# general *.ninja +*.py[co] +*.sw[op] +.DS_Store +/.ccache/ +/.idea/ +/.vscode +/tags \#* \.#* -CMakeCache.txt -CMakeFiles -cmake_install.cmake -cmake-build-debug/ -cmake-build-release/ -Makefile -compile_commands.json -moc_* -*.moc -.ccache - -genesis.json -hardfork.hpp - -libraries/utilities/git_revision.cpp -libraries/egenesis/egenesis_brief.cpp -libraries/egenesis/egenesis_full.cpp -libraries/egenesis/embed_genesis -libraries/types/type_generator -libraries/types/types_test -libraries/fc/test/crypto/test_cypher_suites -libraries/testing/chain_tester - - -libraries/wallet/Doxyfile -libraries/wallet/api_documentation.cpp -libraries/wallet/doxygen - -libraries/wasm-jit/Source/Programs/Assemble -libraries/wasm-jit/Source/Programs/Disassemble -libraries/wasm-jit/Source/Programs/Test -libraries/wasm-jit/Source/Programs/wavm - -programs/cleos/cleos -programs/js_operation_serializer/js_operation_serializer -programs/data-dir -programs/eosio-abigen/eosio-abigen -programs/cleos/config.hpp -programs/eosio-applesedemo/eosio-applesedemo -programs/eosio-launcher/config.hpp -programs/eosio-launcher/eosio-launcher -programs/keosd/keosd -programs/nodeos/config.hpp -programs/nodeos/nodeos - -scripts/tn_init.sh - -tests/plugin_test -unittests/unit_test -doxygen -daobet.doxygen - -wallet.json -witness_node_data_dir - -*.wallet - -*.pyc -*.pyo - -build/* -build-debug/* - -etc/eosio/node_* -var/lib/node_* -.vscode -.idea/ +# project-specific +*.abi.hpp +*.dylib *.iws -.DS_Store - -.vagrant +*.ll +*.wallet +*.wast +*.wast.hpp +/build/ +/build-debug/ + +/doxygen +/daobet.doxygen + +/genesis.json + +/libraries/fc/test/crypto/test_cypher_suites +/libraries/testing/chain_tester +/libraries/types/type_generator +/libraries/types/types_test +/libraries/utilities/git_revision.cpp +/libraries/wallet/Doxyfile +/libraries/wallet/api_documentation.cpp +/libraries/wallet/doxygen +/libraries/wasm-jit/Source/Programs/Assemble +/libraries/wasm-jit/Source/Programs/Disassemble +/libraries/wasm-jit/Source/Programs/Test +/libraries/wasm-jit/Source/Programs/wavm + +/programs/daobet-cli/config.hpp +/programs/daobet-launcher/config.hpp +/programs/daobet-node/config.hpp +/programs/daobet-wallet/config.hpp + +/scripts/tn_init.sh + +/tests/plugin_test +/unittests/unit_test diff --git a/CMakeLists.txt b/CMakeLists.txt index 6c87348089d..1e190b7493d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,41 +1,41 @@ -cmake_minimum_required( VERSION 3.5 ) +cmake_minimum_required(VERSION 3.5) -set( PROJECT "daobet" ) -project( ${PROJECT} ) +set(PROJECT "daobet") +project(${PROJECT}) enable_testing() find_program(CCACHE_FOUND ccache) if(CCACHE_FOUND) - message(WARNING "CCACHE FOUND") - set(CMAKE_CXX_COMPILER_LAUNCHER ccache) - set(CMAKE_C_COMPILER_LAUNCHER ccache) -endif(CCACHE_FOUND) + message(WARNING "CCACHE FOUND") + set(CMAKE_CXX_COMPILER_LAUNCHER ccache) + set(CMAKE_C_COMPILER_LAUNCHER ccache) +endif() -if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) message(WARNING "CMAKE_INSTALL_PREFIX is set to default path of ${CMAKE_INSTALL_PREFIX}, resetting to ${CMAKE_INSTALL_PREFIX}/${PROJECT}") - set(CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/${PROJECT}") -elseif ("${CMAKE_INSTALL_PREFIX}" STREQUAL "/usr/local") - message(WARNING "CMAKE_INSTALL_PREFIX is explicitly set to /usr/local. This is not recommended.") + set(CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/${PROJECT}") +elseif("${CMAKE_INSTALL_PREFIX}" STREQUAL "/usr/local") + message(WARNING "CMAKE_INSTALL_PREFIX is explicitly set to /usr/local. This is not recommended.") endif() list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/libraries/fc/CMakeModules") list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules") -if (UNIX AND APPLE) - list(APPEND CMAKE_PREFIX_PATH "/usr/local/opt/llvm@4" "/usr/local/opt/gettext") +if(UNIX AND APPLE) + list(APPEND CMAKE_PREFIX_PATH "/usr/local/opt/llvm@4" "/usr/local/opt/gettext") endif() -include( GNUInstallDirs ) -include( VersionMacros ) -include( SetupTargetMacros ) -include( InstallDirectoryPermissions ) -include( MASSigning ) +include(GNUInstallDirs) +include(VersionMacros) +include(SetupTargetMacros) +include(InstallDirectoryPermissions) +include(MASSigning) -set( BLOCKCHAIN_NAME "EOSIO" ) -set( CMAKE_CXX_STANDARD 14 ) -set( CMAKE_CXX_EXTENSIONS ON ) -set( CXX_STANDARD_REQUIRED ON) +set(BLOCKCHAIN_NAME "EOSIO") +set(CMAKE_CXX_STANDARD 14) +set(CMAKE_CXX_EXTENSIONS ON) +set(CXX_STANDARD_REQUIRED ON) execute_process(COMMAND git describe --tags OUTPUT_VARIABLE GIT_TAG_RAW @@ -71,19 +71,19 @@ set( INSTALLER_APP_ID "68ad7005-8eee-49c9-95ce-9eed97e5b347" ) # http://stackoverflow.com/a/18369825 if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") - if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 6.0) - message(FATAL_ERROR "GCC version must be at least 6.0!") - endif() - if ("${CMAKE_GENERATOR}" STREQUAL "Ninja") - add_compile_options(-fdiagnostics-color=always) - endif() -elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang") - if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.0) - message(FATAL_ERROR "Clang version must be at least 4.0!") - endif() - if ("${CMAKE_GENERATOR}" STREQUAL "Ninja") - add_compile_options(-fcolor-diagnostics) - endif() + if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 6.0) + message(FATAL_ERROR "GCC version must be at least 6.0!") + endif() + if("${CMAKE_GENERATOR}" STREQUAL "Ninja") + add_compile_options(-fdiagnostics-color=always) + endif() +elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang") + if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.0) + message(FATAL_ERROR "Clang version must be at least 4.0!") + endif() + if("${CMAKE_GENERATOR}" STREQUAL "Ninja") + add_compile_options(-fcolor-diagnostics) + endif() endif() set(CMAKE_EXPORT_COMPILE_COMMANDS "ON") @@ -91,19 +91,19 @@ set(BUILD_DOXYGEN FALSE CACHE BOOL "Build doxygen documentation on every make") set(BUILD_MONGO_DB_PLUGIN FALSE CACHE BOOL "Build mongo database plugin") # add defaults for openssl -if ("${OPENSSL_ROOT_DIR}" STREQUAL "") - if (NOT "$ENV{OPENSSL_ROOT_DIR}" STREQUAL "") - set(OPENSSL_ROOT_DIR $ENV{OPENSSL_ROOT_DIR}) - set(OPENSSL_INCLUDE_DIR ${OPENSSL_ROOT_DIR}/include) - elseif (APPLE) - set(OPENSSL_ROOT_DIR "/usr/local/opt/openssl") - set(OPENSSL_INCLUDE_DIR "/usr/local/opt/openssl/include") - elseif(UNIX AND NOT APPLE) - set(OPENSSL_ROOT_DIR "/usr/include/openssl") - set(OPENSSL_INCLUDE_DIR "/usr/include/openssl/include") - else() - message(FATAL_ERROR "openssl not found and don't know where to look, please specify OPENSSL_ROOT_DIR") - endif() +if("${OPENSSL_ROOT_DIR}" STREQUAL "") + if(NOT "$ENV{OPENSSL_ROOT_DIR}" STREQUAL "") + set(OPENSSL_ROOT_DIR $ENV{OPENSSL_ROOT_DIR}) + set(OPENSSL_INCLUDE_DIR ${OPENSSL_ROOT_DIR}/include) + elseif(APPLE) + set(OPENSSL_ROOT_DIR "/usr/local/opt/openssl") + set(OPENSSL_INCLUDE_DIR "/usr/local/opt/openssl/include") + elseif(UNIX AND NOT APPLE) + set(OPENSSL_ROOT_DIR "/usr/include/openssl") + set(OPENSSL_INCLUDE_DIR "/usr/include/openssl/include") + else() + message(FATAL_ERROR "openssl not found and don't know where to look, please specify OPENSSL_ROOT_DIR") + endif() endif() if(UNIX) @@ -119,23 +119,23 @@ else() set(no_whole_archive_flag "--no-whole-archive") endif() -SET( Boost_USE_STATIC_LIBS ON CACHE STRING "ON or OFF" ) -IF( WIN32 ) - SET(BOOST_ROOT $ENV{BOOST_ROOT}) +set(Boost_USE_STATIC_LIBS ON CACHE STRING "ON or OFF") +if(WIN32) + set(BOOST_ROOT $ENV{BOOST_ROOT}) set(Boost_USE_MULTITHREADED ON) set(BOOST_ALL_DYN_LINK OFF) # force dynamic linking for all libraries -ENDIF(WIN32) -FIND_PACKAGE(Boost 1.67 REQUIRED COMPONENTS - date_time - filesystem - system - program_options - chrono - unit_test_framework - iostreams) +endif() +find_package(Boost 1.67 REQUIRED COMPONENTS + date_time + filesystem + system + program_options + chrono + unit_test_framework + iostreams) # Some new stdlibc++s will #error on ; a problem for boost pre-1.69 -if( APPLE AND UNIX ) +if(APPLE AND UNIX) add_definitions(-DBOOST_ASIO_DISABLE_STD_EXPERIMENTAL_STRING_VIEW) endif() @@ -143,114 +143,116 @@ set(THREADS_PREFER_PTHREAD_FLAG 1) find_package(Threads) link_libraries(Threads::Threads) -if( WIN32 ) - - message( STATUS "Configuring EOSIO on WIN32") - set( DB_VERSION 60 ) - set( BDB_STATIC_LIBS 1 ) +if(WIN32) - set( ZLIB_LIBRARIES "" ) - SET( DEFAULT_EXECUTABLE_INSTALL_DIR bin/ ) + message(STATUS "Configuring EOSIO on WIN32") + set(DB_VERSION 60) + set(BDB_STATIC_LIBS 1) - set(CRYPTO_LIB) + set(ZLIB_LIBRARIES "") + set(DEFAULT_EXECUTABLE_INSTALL_DIR bin/) - #looks like this flag can have different default on some machines. - SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /SAFESEH:NO") - SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SAFESEH:NO") + set(CRYPTO_LIB) - # Probably cmake has a bug and vcxproj generated for executable in Debug conf. has disabled debug info - set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} /DEBUG") + #looks like this flag can have different default on some machines. + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /SAFESEH:NO") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SAFESEH:NO") - # On windows tcl should be installed to the directory pointed by setenv.bat script - SET(TCL_INCLUDE_PATH $ENV{TCL_ROOT}/include) - MESSAGE(STATUS "tcl INCLUDE PATH: ${TCL_INCLUDE_PATH}") + # Probably cmake has a bug and vcxproj generated for executable in Debug conf. has disabled debug info + set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} /DEBUG") - FIND_PACKAGE(TCL) - MESSAGE(STATUS "tcl_library: ${TCL_LIBRARY}") + # On windows tcl should be installed to the directory pointed by setenv.bat script + set(TCL_INCLUDE_PATH $ENV{TCL_ROOT}/include) + MESSAGE(STATUS "tcl INCLUDE PATH: ${TCL_INCLUDE_PATH}") - SET(TCL_LIBS "optimized;${TCL_LIBRARY};debug;") - get_filename_component(TCL_LIB_PATH "${TCL_LIBRARY}" PATH) - get_filename_component(TCL_LIB_NAME "${TCL_LIBRARY}" NAME_WE) - get_filename_component(TCL_LIB_EXT "${TCL_LIBRARY}" EXT) + FIND_PACKAGE(TCL) + MESSAGE(STATUS "tcl_library: ${TCL_LIBRARY}") - SET(TCL_LIBS "${TCL_LIBS}${TCL_LIB_PATH}/${TCL_LIB_NAME}g${TCL_LIB_EXT}") - SET(TCL_LIBRARY ${TCL_LIBS}) + set(TCL_LIBS "optimized;${TCL_LIBRARY};debug;") + get_filename_component(TCL_LIB_PATH "${TCL_LIBRARY}" PATH) + get_filename_component(TCL_LIB_NAME "${TCL_LIBRARY}" NAME_WE) + get_filename_component(TCL_LIB_EXT "${TCL_LIBRARY}" EXT) -else( WIN32 ) # Apple AND Linux + set(TCL_LIBS "${TCL_LIBS}${TCL_LIB_PATH}/${TCL_LIB_NAME}g${TCL_LIB_EXT}") + set(TCL_LIBRARY ${TCL_LIBS}) - if( APPLE ) - # Apple Specific Options Here - message( STATUS "Configuring EOSIO on OS X" ) - set( CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -Wall -Wno-deprecated-declarations" ) - else( APPLE ) - # Linux Specific Options Here - message( STATUS "Configuring EOSIO on Linux" ) - set( CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -Wall" ) - if ( FULL_STATIC_BUILD ) - set( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libstdc++ -static-libgcc") - endif ( FULL_STATIC_BUILD ) +else() # Apple AND Linux - if( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" ) - if( CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 4.0.0 OR CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.0.0 ) - set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-invalid-partial-specialization" ) - endif() - endif() - endif( APPLE ) + if(APPLE) + # Apple Specific Options Here + message(STATUS "Configuring EOSIO on OS X") + set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -Wall -Wno-deprecated-declarations") + else() + # Linux Specific Options Here + message(STATUS "Configuring EOSIO on Linux") + set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -Wall") + if(FULL_STATIC_BUILD) + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libstdc++ -static-libgcc") + endif(FULL_STATIC_BUILD) + + if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + if(CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 4.0.0 OR CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.0.0) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-invalid-partial-specialization") + endif() + endif() + endif() - if( "${CMAKE_GENERATOR}" STREQUAL "Ninja" ) - if( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" ) - set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fcolor-diagnostics" ) - endif() + if("${CMAKE_GENERATOR}" STREQUAL "Ninja") + if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fcolor-diagnostics") endif() + endif() - # based on http://www.delorie.com/gnu/docs/gdb/gdb_70.html - # uncomment this line to tell GDB about macros (slows compile times) - # set( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -gdwarf-2 -g3" ) + # based on http://www.delorie.com/gnu/docs/gdb/gdb_70.html + # uncomment this line to tell GDB about macros (slows compile times) + # set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -gdwarf-2 -g3") -endif( WIN32 ) +endif() set(ENABLE_COVERAGE_TESTING FALSE CACHE BOOL "Build EOSIO for code coverage analysis") if(ENABLE_COVERAGE_TESTING) - SET(CMAKE_CXX_FLAGS "--coverage ${CMAKE_CXX_FLAGS}") - find_program( LCOV_PATH lcov ) - find_program( LLVMCOV_PATH llvm-cov ) - find_program( GENHTML_PATH NAMES genhtml) + set(CMAKE_CXX_FLAGS "--coverage ${CMAKE_CXX_FLAGS}") + find_program(LCOV_PATH lcov) + find_program(LLVMCOV_PATH llvm-cov) + find_program(GENHTML_PATH NAMES genhtml) endif() -if (ENABLE_TX_SPONSORSHIP) - add_definitions( -DENABLE_TX_SPONSORSHIP) +if(ENABLE_TX_SPONSORSHIP) + add_definitions(-DENABLE_TX_SPONSORSHIP) endif() include(utils) +### -if ("${CORE_SYMBOL_NAME}" STREQUAL "") - set( CORE_SYMBOL_NAME "SYS" ) +if("${CORE_SYMBOL_NAME}" STREQUAL "") + set(CORE_SYMBOL_NAME "BET") endif() string(TOUPPER ${CORE_SYMBOL_NAME} CORE_SYMBOL_NAME) string(LENGTH ${CORE_SYMBOL_NAME} CORE_SYMBOL_NAME_LENGTH) -if (CORE_SYMBOL_NAME_LENGTH GREATER 7) +if(CORE_SYMBOL_NAME_LENGTH GREATER 7) message(FATAL_ERROR "CORE_SYMBOL_NAME length must be between 1 and 7 characters") endif() +message(STATUS "Using '${CORE_SYMBOL_NAME}' as CORE symbol name") -message( STATUS "Using '${CORE_SYMBOL_NAME}' as CORE symbol name" ) +### -if ("${EOSIO_ROOT_KEY}" STREQUAL "") - set(EOSIO_ROOT_KEY "EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV") +if("${EOSIO_ROOT_KEY}" STREQUAL "") + set(EOSIO_ROOT_KEY "EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV") endif() -message( STATUS "Using '${EOSIO_ROOT_KEY}' as public key for 'eosio' account" ) +message(STATUS "Using '${EOSIO_ROOT_KEY}' as public key for 'eosio' account") -add_subdirectory( libraries ) -add_subdirectory( plugins ) -add_subdirectory( programs ) -add_subdirectory( scripts ) -add_subdirectory( unittests ) -add_subdirectory( tests ) -add_subdirectory( tools ) -add_subdirectory( debian ) -add_subdirectory( simulator ) +add_subdirectory(libraries) +add_subdirectory(plugins) +add_subdirectory(programs) +add_subdirectory(scripts) +add_subdirectory(unittests) +add_subdirectory(tests) +add_subdirectory(tools) +add_subdirectory(debian) +add_subdirectory(simulator) install_directory_permissions(DIRECTORY ${CMAKE_INSTALL_FULL_SYSCONFDIR}/${PROJECT}) @@ -287,13 +289,13 @@ configure_file(${CMAKE_SOURCE_DIR}/libraries/fc/src/network/LICENSE.go configure_file(${CMAKE_SOURCE_DIR}/libraries/yubihsm/LICENSE ${CMAKE_BINARY_DIR}/licenses/${PROJECT}/LICENSE.yubihsm COPYONLY) -install(FILES LICENSE DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/licenses/${PROJECT}/ COMPONENT base) -install(FILES libraries/wabt/LICENSE DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/licenses/${PROJECT}/ RENAME LICENSE.wabt COMPONENT base) -install(FILES libraries/softfloat/COPYING.txt DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/licenses/${PROJECT}/ RENAME LICENSE.softfloat COMPONENT base) -install(FILES libraries/wasm-jit/LICENSE DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/licenses/${PROJECT}/ RENAME LICENSE.wavm COMPONENT base) +install(FILES LICENSE DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/licenses/${PROJECT}/ COMPONENT base) +install(FILES libraries/wabt/LICENSE DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/licenses/${PROJECT}/ RENAME LICENSE.wabt COMPONENT base) +install(FILES libraries/softfloat/COPYING.txt DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/licenses/${PROJECT}/ RENAME LICENSE.softfloat COMPONENT base) +install(FILES libraries/wasm-jit/LICENSE DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/licenses/${PROJECT}/ RENAME LICENSE.wavm COMPONENT base) install(FILES libraries/fc/secp256k1/upstream/COPYING DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/licenses/${PROJECT}/ RENAME LICENSE.secp256k1 COMPONENT base) -install(FILES libraries/fc/src/network/LICENSE.go DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/licenses/${PROJECT}/ COMPONENT base) -install(FILES libraries/yubihsm/LICENSE DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/licenses/${PROJECT}/ RENAME LICENSE.yubihsm COMPONENT base) +install(FILES libraries/fc/src/network/LICENSE.go DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/licenses/${PROJECT}/ COMPONENT base) +install(FILES libraries/yubihsm/LICENSE DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/licenses/${PROJECT}/ RENAME LICENSE.yubihsm COMPONENT base) add_custom_target(base-install COMMAND "${CMAKE_COMMAND}" --build "${CMAKE_BINARY_DIR}" diff --git a/Docker/dev/Dockerfile b/Docker/dev/Dockerfile index c928dca5c02..6f4078e1ff5 100644 --- a/Docker/dev/Dockerfile +++ b/Docker/dev/Dockerfile @@ -1,6 +1,6 @@ ARG registry FROM ${registry}/haya:latest-builder as builder -ARG symbol=SYS +ARG symbol=BET ADD . daobet WORKDIR daobet diff --git a/scripts/daobet_build.sh b/scripts/daobet_build.sh index ad862f87eed..0eef3601578 100755 --- a/scripts/daobet_build.sh +++ b/scripts/daobet_build.sh @@ -35,7 +35,7 @@ CMAKE_BUILD_TYPE=Release export DISK_MIN=20 DOXYGEN=false ENABLE_COVERAGE_TESTING=false -CORE_SYMBOL_NAME="SYS" +CORE_SYMBOL_NAME="BET" START_MAKE=true TIME_BEGIN=$( date -u +%s ) diff --git a/testnet.template b/testnet.template index 8c910da7bd6..42cdef2e534 100644 --- a/testnet.template +++ b/testnet.template @@ -1,13 +1,17 @@ #!/bin/bash +set -eu + +readonly core_symbol=BET + # set up a wallet just for holding the key used during blockchain ignition -bioshost=$BIOS_HOSTNAME +bioshost=${BIOS_HOSTNAME:-} if [ -z "$bioshost" ]; then bioshost=localhost fi -biosport=$BIOS_HTTP_PORT +biosport=${BIOS_HTTP_PORT:-} if [ -z "$biosport" ]; then biosport=9776 fi @@ -33,7 +37,7 @@ fi mkdir $wddir step=1 -echo Initializing ignition sequence at $(date) | tee $logfile +echo "Initializing ignition sequence at $(date)" | tee $logfile echo "http-server-address = $wdaddr" > $wddir/config.ini @@ -44,9 +48,9 @@ sleep 1 ecmd () { echo ===== Start: $step ============ >> $logfile - echo executing: daobet-cli --wallet-url $wdurl --url http://$bioshost:$biosport $* | tee -a $logfile - echo ----------------------- >> $logfile + set -x programs/daobet-cli/daobet-cli --wallet-url $wdurl --url http://$bioshost:$biosport $* >> $logfile 2>&1 + set +x echo ==== End: $step ============== >> $logfile step=$(($step + 1)) } @@ -56,7 +60,16 @@ wcmd () { } cacmd () { - programs/daobet-cli/daobet-cli --wallet-url $wdurl --url http://$bioshost:$biosport system newaccount --transfer --stake-net "10000000.0000 SYS" --stake-cpu "10000000.0000 SYS" --stake-vote "1.0000 SYS" --buy-ram "10000000.0000 SYS" eosio $* >> $logfile 2>&1 + programs/daobet-cli/daobet-cli \ + --wallet-url $wdurl \ + --url http://$bioshost:$biosport \ + system newaccount \ + --transfer \ + --stake-net "10000000.0000 $core_symbol" \ + --stake-cpu "10000000.0000 $core_symbol" \ + --stake-vote "1.0000 $core_symbol" \ + --buy-ram "10000000.0000 $core_symbol" eosio $* \ + >> $logfile 2>&1 ecmd system regproducer $1 $2 ecmd system voteproducer prods $1 $1 } @@ -98,17 +111,32 @@ ecmd set contract eosio.token unittests/contracts/eosio.token eosio.token.wasm e ecmd set contract eosio.msig unittests/contracts/eosio.msig eosio.msig.wasm eosio.msig.abi ecmd set contract eosio.wrap unittests/contracts/eosio.wrap eosio.wrap.wasm eosio.wrap.abi -echo ===== Start: $step ============ >> $logfile -echo executing: daobet-cli --wallet-url $wdurl --url http://$bioshost:$biosport push action eosio.token create '[ "eosio", "10000000000.0000 SYS" ]' -p eosio.token | tee -a $logfile -echo executing: daobet-cli --wallet-url $wdurl --url http://$bioshost:$biosport push action eosio.token issue '[ "eosio", "1000000000.0000 SYS", "memo" ]' -p eosio | tee -a $logfile -echo ----------------------- >> $logfile -programs/daobet-cli/daobet-cli --wallet-url $wdurl --url http://$bioshost:$biosport push action eosio.token create '[ "eosio", "10000000000.0000 SYS" ]' -p eosio.token >> $logfile 2>&1 -programs/daobet-cli/daobet-cli --wallet-url $wdurl --url http://$bioshost:$biosport push action eosio.token issue '[ "eosio", "1000000000.0000 SYS", "memo" ]' -p eosio >> $logfile 2>&1 +echo "===== Start: $step ============" >> $logfile +set -x +programs/daobet-cli/daobet-cli \ + --wallet-url $wdurl \ + --url http://$bioshost:$biosport \ + push action eosio.token create "[ \"eosio\", \"10000000000.0000 $core_symbol\" ]" \ + -p eosio.token \ + >> $logfile 2>&1 + +programs/daobet-cli/daobet-cli \ + --wallet-url $wdurl \ + --url http://$bioshost:$biosport \ + push action eosio.token issue "[ \"eosio\", \"1000000000.0000 $core_symbol\", \"memo\" ]" \ + -p eosio \ + >> $logfile 2>&1 +set +x echo ==== End: $step ============== >> $logfile step=$(($step + 1)) ecmd set contract eosio unittests/contracts/eosio.system eosio.system.wasm eosio.system.abi -programs/daobet-cli/daobet-cli --wallet-url $wdurl --url http://$bioshost:$biosport push action eosio init '[0, "4,SYS"]' -p eosio >> $logfile 2>&1 +programs/daobet-cli/daobet-cli \ + --wallet-url $wdurl \ + --url http://$bioshost:$biosport \ + push action eosio init "[0, \"4,$core_symbol\"]" \ + -p eosio \ + >> $logfile 2>&1 # Manual deployers, add a series of lines below this block that looks like: # cacmd $PRODNAME[0] $OWNERKEY[0] $ACTIVEKEY[0] diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 58ef93a8b2b..0f285ec5015 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,28 +1,38 @@ - -find_package( Gperftools QUIET ) -if( GPERFTOOLS_FOUND ) - message( STATUS "Found gperftools; compiling tests with TCMalloc") - list( APPEND PLATFORM_SPECIFIC_LIBS tcmalloc ) +find_package(Gperftools QUIET) +if(GPERFTOOLS_FOUND) + message(STATUS "Found gperftools; compiling tests with TCMalloc") + list(APPEND PLATFORM_SPECIFIC_LIBS tcmalloc) endif() find_package(LLVM 4.0 REQUIRED CONFIG) link_directories(${LLVM_LIBRARY_DIR}) -set( CMAKE_CXX_STANDARD 14 ) - -include_directories("${CMAKE_SOURCE_DIR}/plugins/wallet_plugin/include") - -file(GLOB UNIT_TESTS "*.cpp") - -add_executable( plugin_test ${UNIT_TESTS} ) -target_link_libraries( plugin_test eosio_testing eosio_chain chainbase chain_plugin wallet_plugin fc ${PLATFORM_SPECIFIC_LIBS} ) +set(CMAKE_CXX_STANDARD 14) + +add_executable(plugin_test + chain_plugin_tests.cpp + get_table_tests.cpp + main.cpp + wallet_tests.cpp +) + +target_link_libraries(plugin_test + chain_plugin + chainbase + eosio_chain + eosio_testing + fc + wallet_plugin + ${PLATFORM_SPECIFIC_LIBS}) + +target_include_directories(plugin_test PUBLIC + ${CMAKE_BINARY_DIR}/unittests/include + ${CMAKE_SOURCE_DIR}/plugins/chain_plugin/include + ${CMAKE_SOURCE_DIR}/plugins/net_plugin/include + ${CMAKE_SOURCE_DIR}/plugins/wallet_plugin/include +) -target_include_directories( plugin_test PUBLIC - ${CMAKE_SOURCE_DIR}/plugins/net_plugin/include - ${CMAKE_SOURCE_DIR}/plugins/chain_plugin/include - ${CMAKE_BINARY_DIR}/unittests/include/ ) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/core_symbol.py.in ${CMAKE_CURRENT_BINARY_DIR}/core_symbol.py) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/testUtils.py ${CMAKE_CURRENT_BINARY_DIR}/testUtils.py COPYONLY) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/WalletMgr.py ${CMAKE_CURRENT_BINARY_DIR}/WalletMgr.py COPYONLY) @@ -143,11 +153,11 @@ if(ENABLE_COVERAGE_TESTING) WORKING_DIRECTORY ${PROJECT_BINARY_DIR} COMMENT "Resetting code coverage counters to zero. Processing code coverage counters and generating report." - ) + ) # Show info where to find the report add_custom_command(TARGET ${Coverage_NAME} POST_BUILD COMMAND ; COMMENT "Open ./${Coverage_NAME}/index.html in your browser to view the coverage report." - ) + ) endif() diff --git a/tests/core_symbol.py b/tests/core_symbol.py deleted file mode 100644 index f49ad90eb26..00000000000 --- a/tests/core_symbol.py +++ /dev/null @@ -1 +0,0 @@ -CORE_SYMBOL='SYS' diff --git a/tests/core_symbol.py.in b/tests/core_symbol.py.in index f7966dc3bed..5d4405da5c4 100644 --- a/tests/core_symbol.py.in +++ b/tests/core_symbol.py.in @@ -1 +1 @@ -CORE_SYMBOL='${CORE_SYMBOL_NAME}' \ No newline at end of file +CORE_SYMBOL='${CORE_SYMBOL_NAME}' diff --git a/tests/get_table_tests.cpp b/tests/get_table_tests.cpp index 6abeb325913..5ac13c58645 100644 --- a/tests/get_table_tests.cpp +++ b/tests/get_table_tests.cpp @@ -55,14 +55,14 @@ BOOST_FIXTURE_TEST_CASE( get_scope_test, TESTER ) try { // create currency auto act = mutable_variant_object() ("issuer", "eosio") - ("maximum_supply", eosio::chain::asset::from_string("1000000000.0000 SYS")); + ("maximum_supply", eosio::chain::asset::from_string("1000000000.0000 " CORE_SYMBOL_NAME)); push_action(N(eosio.token), N(create), N(eosio.token), act ); // issue for (account_name a: accs) { push_action( N(eosio.token), N(issue), "eosio", mutable_variant_object() ("to", name(a) ) - ("quantity", eosio::chain::asset::from_string("999.0000 SYS") ) + ("quantity", eosio::chain::asset::from_string("999.0000 " CORE_SYMBOL_NAME) ) ("memo", "") ); } @@ -131,14 +131,14 @@ BOOST_FIXTURE_TEST_CASE( get_table_test, TESTER ) try { // create currency auto act = mutable_variant_object() ("issuer", "eosio") - ("maximum_supply", eosio::chain::asset::from_string("1000000000.0000 SYS")); + ("maximum_supply", eosio::chain::asset::from_string("1000000000.0000 " CORE_SYMBOL_NAME)); push_action(N(eosio.token), N(create), N(eosio.token), act ); // issue for (account_name a: accs) { push_action( N(eosio.token), N(issue), "eosio", mutable_variant_object() ("to", name(a) ) - ("quantity", eosio::chain::asset::from_string("10000.0000 SYS") ) + ("quantity", eosio::chain::asset::from_string("10000.0000 " CORE_SYMBOL_NAME) ) ("memo", "") ); } @@ -204,7 +204,7 @@ BOOST_FIXTURE_TEST_CASE( get_table_test, TESTER ) try { BOOST_REQUIRE_EQUAL("9999.0000 AAA", result.rows[0]["balance"].as_string()); BOOST_REQUIRE_EQUAL("8888.0000 BBB", result.rows[1]["balance"].as_string()); BOOST_REQUIRE_EQUAL("7777.0000 CCC", result.rows[2]["balance"].as_string()); - BOOST_REQUIRE_EQUAL("10000.0000 SYS", result.rows[3]["balance"].as_string()); + BOOST_REQUIRE_EQUAL("10000.0000 " CORE_SYMBOL_NAME, result.rows[3]["balance"].as_string()); } // get table: reverse ordered @@ -216,7 +216,7 @@ BOOST_FIXTURE_TEST_CASE( get_table_test, TESTER ) try { BOOST_REQUIRE_EQUAL("9999.0000 AAA", result.rows[3]["balance"].as_string()); BOOST_REQUIRE_EQUAL("8888.0000 BBB", result.rows[2]["balance"].as_string()); BOOST_REQUIRE_EQUAL("7777.0000 CCC", result.rows[1]["balance"].as_string()); - BOOST_REQUIRE_EQUAL("10000.0000 SYS", result.rows[0]["balance"].as_string()); + BOOST_REQUIRE_EQUAL("10000.0000 " CORE_SYMBOL_NAME, result.rows[0]["balance"].as_string()); } // get table: reverse ordered, with ram payer @@ -229,7 +229,7 @@ BOOST_FIXTURE_TEST_CASE( get_table_test, TESTER ) try { BOOST_REQUIRE_EQUAL("9999.0000 AAA", result.rows[3]["data"]["balance"].as_string()); BOOST_REQUIRE_EQUAL("8888.0000 BBB", result.rows[2]["data"]["balance"].as_string()); BOOST_REQUIRE_EQUAL("7777.0000 CCC", result.rows[1]["data"]["balance"].as_string()); - BOOST_REQUIRE_EQUAL("10000.0000 SYS", result.rows[0]["data"]["balance"].as_string()); + BOOST_REQUIRE_EQUAL("10000.0000 " CORE_SYMBOL_NAME, result.rows[0]["data"]["balance"].as_string()); BOOST_REQUIRE_EQUAL("eosio", result.rows[0]["payer"].as_string()); BOOST_REQUIRE_EQUAL("eosio", result.rows[1]["payer"].as_string()); BOOST_REQUIRE_EQUAL("eosio", result.rows[2]["payer"].as_string()); @@ -280,7 +280,7 @@ BOOST_FIXTURE_TEST_CASE( get_table_test, TESTER ) try { BOOST_REQUIRE_EQUAL(1u, result.rows.size()); BOOST_REQUIRE_EQUAL(true, result.more); if (result.rows.size() >= 1) { - BOOST_REQUIRE_EQUAL("10000.0000 SYS", result.rows[0]["balance"].as_string()); + BOOST_REQUIRE_EQUAL("10000.0000 " CORE_SYMBOL_NAME, result.rows[0]["balance"].as_string()); } // get table: normal case, with bound & limit @@ -326,14 +326,14 @@ BOOST_FIXTURE_TEST_CASE( get_table_by_seckey_test, TESTER ) try { // create currency auto act = mutable_variant_object() ("issuer", "eosio") - ("maximum_supply", eosio::chain::asset::from_string("1000000000.0000 SYS")); + ("maximum_supply", eosio::chain::asset::from_string("1000000000.0000 " CORE_SYMBOL_NAME)); push_action(N(eosio.token), N(create), N(eosio.token), act ); // issue for (account_name a: accs) { push_action( N(eosio.token), N(issue), "eosio", mutable_variant_object() ("to", name(a) ) - ("quantity", eosio::chain::asset::from_string("10000.0000 SYS") ) + ("quantity", eosio::chain::asset::from_string("10000.0000 " CORE_SYMBOL_NAME) ) ("memo", "") ); } @@ -356,10 +356,10 @@ BOOST_FIXTURE_TEST_CASE( get_table_by_seckey_test, TESTER ) try { ); }; - bidname(N(inita), N(com), eosio::chain::asset::from_string("10.0000 SYS")); - bidname(N(initb), N(org), eosio::chain::asset::from_string("11.0000 SYS")); - bidname(N(initc), N(io), eosio::chain::asset::from_string("12.0000 SYS")); - bidname(N(initd), N(html), eosio::chain::asset::from_string("14.0000 SYS")); + bidname(N(inita), N(com), eosio::chain::asset::from_string("10.0000 " CORE_SYMBOL_NAME)); + bidname(N(initb), N(org), eosio::chain::asset::from_string("11.0000 " CORE_SYMBOL_NAME)); + bidname(N(initc), N(io), eosio::chain::asset::from_string("12.0000 " CORE_SYMBOL_NAME)); + bidname(N(initd), N(html), eosio::chain::asset::from_string("14.0000 " CORE_SYMBOL_NAME)); produce_blocks(1); // get table: normal case diff --git a/tutorials/bios-boot-tutorial/bios-boot-tutorial.py b/tutorials/bios-boot-tutorial/bios-boot-tutorial.py index dea393a5168..45a51e8ad0a 100755 --- a/tutorials/bios-boot-tutorial/bios-boot-tutorial.py +++ b/tutorials/bios-boot-tutorial/bios-boot-tutorial.py @@ -296,7 +296,7 @@ def stepSetSystemContract(): sleep(1) run(args.cleos + 'push action eosio setpriv' + jsonArg(['eosio.msig', 1]) + '-p eosio@active') def stepInitSystemContract(): - run(args.cleos + 'push action eosio init' + jsonArg(['0', '4,SYS']) + '-p eosio@active') + run(args.cleos + 'push action eosio init' + jsonArg(['0', '4,BET']) + '-p eosio@active') sleep(1) def stepCreateStakedAccounts(): createStakedAccounts(0, len(accounts)) @@ -359,7 +359,7 @@ def stepLog(): parser.add_argument('--genesis', metavar='', help="Path to genesis.json", default="./genesis.json") parser.add_argument('--wallet-dir', metavar='', help="Path to wallet directory", default='./wallet/') parser.add_argument('--log-path', metavar='', help="Path to log file", default='./output.log') -parser.add_argument('--symbol', metavar='', help="The eosio.system symbol", default='SYS') +parser.add_argument('--symbol', metavar='', help="The eosio.system symbol", default='BET') parser.add_argument('--user-limit', metavar='', help="Max number of users. (0 = no limit)", type=int, default=3000) parser.add_argument('--max-user-keys', metavar='', help="Maximum user keys to import into wallet", type=int, default=10) parser.add_argument('--ram-funds', metavar='', help="How much funds for each user to spend on ram", type=float, default=0.1) diff --git a/unittests/abi_tests.cpp b/unittests/abi_tests.cpp index 7e6c84fb6f2..40cd796e2d6 100644 --- a/unittests/abi_tests.cpp +++ b/unittests/abi_tests.cpp @@ -548,9 +548,10 @@ BOOST_AUTO_TEST_CASE(general) { "publickey" : "EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV", "publickey_arr" : ["EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV","EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV","EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV"], - "asset" : "100.0000 SYS", - "asset_arr" : ["100.0000 SYS","100.0000 SYS"], - +)=====" +" \"asset\" : \"100.0000 " CORE_SYMBOL_NAME "\"," +" \"asset_arr\" : [\"100.0000 " CORE_SYMBOL_NAME "\",\"100.0000 " CORE_SYMBOL_NAME "\"]," +R"=====( "string" : "ola ke ase", "string_arr" : ["ola ke ase","ola ke desi"], "block_timestamp_type" : "2021-12-20T15", diff --git a/unittests/bootseq_tests.cpp b/unittests/bootseq_tests.cpp index a3df02b652c..fd33c716275 100644 --- a/unittests/bootseq_tests.cpp +++ b/unittests/bootseq_tests.cpp @@ -219,11 +219,11 @@ BOOST_FIXTURE_TEST_CASE( bootseq_test, bootseq_tester ) { BOOST_TEST(eosio_token_acc.privileged == true); - // Create SYS tokens in eosio.token, set its manager as eosio + // Create CORE_SYMBOL_NAME tokens in eosio.token, set its manager as eosio auto max_supply = core_from_string("10000000000.0000"); /// 1x larger than 1B initial tokens auto initial_supply = core_from_string("1000000000.0000"); /// 1x larger than 1B initial tokens create_currency(N(eosio.token), config::system_account_name, max_supply); - // Issue the genesis supply of 1 billion SYS tokens to eosio.system + // Issue the genesis supply of 1 billion CORE_SYMBOL_NAME tokens to eosio.system issue(N(eosio.token), config::system_account_name, config::system_account_name, initial_supply); auto actual = get_balance(config::system_account_name); diff --git a/unittests/contracts.hpp.in b/unittests/contracts.hpp.in index 8dd1f2b4dcf..14717067b2a 100644 --- a/unittests/contracts.hpp.in +++ b/unittests/contracts.hpp.in @@ -6,20 +6,14 @@ #include -#define CORE_SYM_NAME "${CORE_SYMBOL_NAME}" +// CORE_SYMBOL_NAME macro is passed from the build system #define CORE_SYM_PRECISION 4 #define _STRINGIZE1(x) #x #define _STRINGIZE2(x) _STRINGIZE1(x) -#define CORE_SYM_STR ( _STRINGIZE2(CORE_SYM_PRECISION) "," CORE_SYM_NAME ) -#define CORE_SYM ( ::eosio::chain::string_to_symbol_c( CORE_SYM_PRECISION, CORE_SYM_NAME ) ) - -struct core_sym { - static inline eosio::chain::asset from_string(const std::string& s) { - return eosio::chain::asset::from_string(s + " " CORE_SYM_NAME); - } -}; +#define CORE_SYM_STR ( _STRINGIZE2(CORE_SYM_PRECISION) "," CORE_SYMBOL_NAME ) +#define CORE_SYM ( ::eosio::chain::string_to_symbol_c( CORE_SYM_PRECISION, CORE_SYMBOL_NAME ) ) // CN -> contract C++ name, C -> contract name, D -> top level directory #define MAKE_READ_WASM_ABI(CN,C, D) \ diff --git a/unittests/currency_tests.cpp b/unittests/currency_tests.cpp index 0485d0a4681..a1d431b25b6 100644 --- a/unittests/currency_tests.cpp +++ b/unittests/currency_tests.cpp @@ -275,14 +275,14 @@ BOOST_FIXTURE_TEST_CASE(test_symbol, TESTER) try { } { - symbol sys(4, "SYS"); - BOOST_REQUIRE_EQUAL(SY(4,SYS), sys.value()); - BOOST_REQUIRE_EQUAL("4,SYS", sys.to_string()); - BOOST_REQUIRE_EQUAL("SYS", sys.name()); + symbol sys(4, CORE_SYMBOL_NAME); + BOOST_REQUIRE_EQUAL(::eosio::chain::string_to_symbol_c(4, CORE_SYMBOL_NAME), sys.value()); + BOOST_REQUIRE_EQUAL("4," CORE_SYMBOL_NAME, sys.to_string()); + BOOST_REQUIRE_EQUAL(CORE_SYMBOL_NAME, sys.name()); BOOST_REQUIRE_EQUAL(4, sys.decimals()); } - // default is "4,${CORE_SYMBOL_NAME}" + // default is ("4," CORE_SYMBOL_NAME) { symbol def; BOOST_REQUIRE_EQUAL(4, def.decimals());