From 36f0516822c873248a1acf0c66c6c34f15dfbbfa Mon Sep 17 00:00:00 2001 From: Wang Zhi Date: Thu, 8 Aug 2019 15:01:49 +0800 Subject: [PATCH] add hddlock contract --- contracts/CMakeLists.txt | 1 + contracts/hddlock/CMakeLists.txt | 8 ++++++ contracts/hddlock/hddlock.abi | 42 ++++++++++++++++++++++++++++++++ contracts/hddlock/hddlock.cpp | 26 ++++++++++++++++++++ contracts/hddlock/hddlock.hpp | 33 +++++++++++++++++++++++++ 5 files changed, 110 insertions(+) create mode 100644 contracts/hddlock/CMakeLists.txt create mode 100644 contracts/hddlock/hddlock.abi create mode 100644 contracts/hddlock/hddlock.cpp create mode 100644 contracts/hddlock/hddlock.hpp diff --git a/contracts/CMakeLists.txt b/contracts/CMakeLists.txt index 3c7cc495e..33b5759c5 100644 --- a/contracts/CMakeLists.txt +++ b/contracts/CMakeLists.txt @@ -32,6 +32,7 @@ add_subdirectory(payloadless) add_subdirectory(integration_test) add_subdirectory(hddpool) add_subdirectory(hdddeposit) +add_subdirectory(hddlock) file(GLOB SKELETONS RELATIVE ${CMAKE_SOURCE_DIR}/contracts "skeleton/*") diff --git a/contracts/hddlock/CMakeLists.txt b/contracts/hddlock/CMakeLists.txt new file mode 100644 index 000000000..b730c8d33 --- /dev/null +++ b/contracts/hddlock/CMakeLists.txt @@ -0,0 +1,8 @@ +file(GLOB ABI_FILES "*.abi") +configure_file("${ABI_FILES}" "${CMAKE_CURRENT_BINARY_DIR}" COPYONLY) + +add_wast_executable(TARGET hddlock + INCLUDE_FOLDERS ${STANDARD_INCLUDE_FOLDERS} + LIBRARIES libc++ libc eosiolib + DESTINATION_FOLDER ${CMAKE_CURRENT_BINARY_DIR} +) diff --git a/contracts/hddlock/hddlock.abi b/contracts/hddlock/hddlock.abi new file mode 100644 index 000000000..6da2f75d0 --- /dev/null +++ b/contracts/hddlock/hddlock.abi @@ -0,0 +1,42 @@ +{ + "version": "eosio::abi/1.0", + "types": [{ + "new_type_name": "account_name", + "type": "name" + }], + "structs": [ + { + "name": "init", + "base": "", + "fields": [ + ] + }, + { + "name": "addrule", + "base": "", + "fields": [ + {"name":"id", "type":"uint64"}, + {"name":"times", "type":"uint64[]"}, + {"name":"percentage", "type":"uint8[]"}, + {"name":"desc", "type":"string"} + ] + } + + ], + "actions": [ + { + "name": "init", + "type": "init", + "ricardian_contract": "" + }, + { + "name": "addrule", + "type": "addrule", + "ricardian_contract": "" + } + ], + "tables": [ + ], + "ricardian_clauses": [], + "variants": [] +} \ No newline at end of file diff --git a/contracts/hddlock/hddlock.cpp b/contracts/hddlock/hddlock.cpp new file mode 100644 index 000000000..92cf90d4f --- /dev/null +++ b/contracts/hddlock/hddlock.cpp @@ -0,0 +1,26 @@ +#include "hddlock.hpp" +#include +#include +#include +#include +#include +#include +#include +//#include +//#include + +using namespace eosio; + +void hddlock::init() { + +} + +void hddlock::addrule(uint64_t id, std::vector& times, std::vector& percentage, std::string& desc) { + + eosio_assert(times.size() >= 2, "invalidate size of times array"); + eosio_assert(times.size() == percentage.size(), "times and percentage in different size."); + +} + + +EOSIO_ABI( hddlock, (init)(addrule)) diff --git a/contracts/hddlock/hddlock.hpp b/contracts/hddlock/hddlock.hpp new file mode 100644 index 000000000..f18621aef --- /dev/null +++ b/contracts/hddlock/hddlock.hpp @@ -0,0 +1,33 @@ +#include +#include +#include +#include + + +using eosio::name; +using eosio::asset; +using eosio::multi_index; +using eosio::indexed_by; +using eosio::const_mem_fun; + + +class hddlock : public eosio::contract { + + public: + using contract::contract; + + void init(); + void addrule(uint64_t id, std::vector& times, std::vector& percentage, std::string& desc); + + + private: + + struct lockrule { + uint64_t ruleid; + uint64_t primary_key()const { return ruleid; } + }; + typedef multi_index lockrule_table; + +}; + + -- GitLab