From c036d8e2de0170fbaad54310f5cf6c7edddb1af5 Mon Sep 17 00:00:00 2001 From: Venu Kailasa Date: Tue, 30 Mar 2021 14:59:55 -0500 Subject: [PATCH 1/7] Adding eosio structure attribute -- WIP (not tested) --- .../eosiolib/contracts/eosio/contract.hpp | 1 + tools/include/eosio/abi.hpp | 7 +++ tools/include/eosio/abigen.hpp | 52 ++++++++++++++++++- 3 files changed, 58 insertions(+), 2 deletions(-) diff --git a/libraries/eosiolib/contracts/eosio/contract.hpp b/libraries/eosiolib/contracts/eosio/contract.hpp index d60d47241c..3505aa0f91 100644 --- a/libraries/eosiolib/contracts/eosio/contract.hpp +++ b/libraries/eosiolib/contracts/eosio/contract.hpp @@ -18,6 +18,7 @@ #define CONTRACT class [[eosio::contract]] #define ACTION [[eosio::action]] void #define TABLE struct [[eosio::table]] +#define STRUCTURE struct [[eosio::structure]] namespace eosio { diff --git a/tools/include/eosio/abi.hpp b/tools/include/eosio/abi.hpp index b2813f4322..506402726e 100644 --- a/tools/include/eosio/abi.hpp +++ b/tools/include/eosio/abi.hpp @@ -39,6 +39,12 @@ struct abi_table { bool operator<(const abi_table& t) const { return name < t.name; } }; +struct abi_structure { + std::string name; + std::string type; + bool operator<(const abi_structure& s) const { return name < s.name; } +}; + struct abi_kv_index { std::string name; std::string type; @@ -82,6 +88,7 @@ struct abi { std::set typedefs; std::set actions; std::set tables; + std::set structures; std::set kv_tables; std::set variants; std::vector ricardian_clauses; diff --git a/tools/include/eosio/abigen.hpp b/tools/include/eosio/abigen.hpp index e27ac94a19..aacbc528b0 100644 --- a/tools/include/eosio/abigen.hpp +++ b/tools/include/eosio/abigen.hpp @@ -257,6 +257,31 @@ namespace eosio { namespace cdt { _abi.tables.insert(t); } + void add_structure( const clang::CXXRecordDecl* decl ) { + structures.insert(decl); + abi_structure t; + t.type = decl->getNameAsString(); + auto structure_name = decl->getEosioStructureAttr()->getName(); + if (!structure_name.empty()) { + validate_name( structure_name.str(), [&](auto s) { CDT_ERROR("abigen_error", decl->getLocation(), s); } ); + t.name = structure_name.str(); + } + else { + t.name = t.type; + } + cstructures.insert(t); + } + + void add_structure( uint64_t name, const clang::CXXRecordDecl* decl ) { + if ( !decl->isEosioStructure() ) + return; + + abi_structure t; + t.type = decl->getNameAsString(); + t.name = name_to_string(name); + _abi.structures.insert(t); + } + void add_kv_map(const clang::ClassTemplateSpecializationDecl* decl) { abi_kv_table akt; const auto& first_arg = decl->getTemplateArgs()[0]; @@ -470,6 +495,13 @@ namespace eosio { namespace cdt { return o; } + ojson structure_to_json( const abi_structure& s ) { + ojson o; + o["name"] = s.name; + o["type"] = s.type; + return o; + } + std::pair kv_table_to_json( const abi_kv_table& t ) { ojson o; o["type"] = t.type; @@ -516,7 +548,7 @@ namespace eosio { namespace cdt { set_of_tables.insert(t); } - return _abi.structs.empty() && _abi.typedefs.empty() && _abi.actions.empty() && set_of_tables.empty() && _abi.ricardian_clauses.empty() && _abi.variants.empty(); + return _abi.structs.empty() && _abi.typedefs.empty() && _abi.actions.empty() && set_of_tables.empty() && _abi.structures.empty() && _abi.ricardian_clauses.empty() && _abi.variants.empty(); } ojson to_json() { @@ -585,6 +617,10 @@ namespace eosio { namespace cdt { if (as.name == _translate_type(t.type)) return true; } + for ( auto s : _abi.structures ) { + if (as.name == _translate_type(s.type)) + return true; + } for ( const auto t : _abi.kv_tables ) { if (as.name == _translate_type(t.type)) return true; @@ -619,6 +655,9 @@ namespace eosio { namespace cdt { for ( auto t : _abi.tables ) if ( t.type == td.new_type_name ) return true; + for ( auto s : _abi.structures ) + if ( s.type == td.new_type_name ) + return true; for ( auto a : _abi.actions ) if ( a.type == td.new_type_name ) return true; @@ -650,6 +689,10 @@ namespace eosio { namespace cdt { for ( auto t : set_of_tables ) { o["tables"].push_back(table_to_json( t )); } + o["structures"] = ojson::array(); + for ( auto s : _abi.structures ) { + o["structures"].push_back(structure_to_json( s )); + } o["kv_tables"] = ojson::object(); for ( const auto& t : _abi.kv_tables ) { auto kv_table = kv_table_to_json(t); @@ -677,6 +720,8 @@ namespace eosio { namespace cdt { abi _abi; std::set tables; std::set ctables; + std::set structures; + std::set cstructures; std::map rcs; std::set evaluated; @@ -750,12 +795,15 @@ namespace eosio { namespace cdt { ag.add_contracts(parse_contracts()); has_added_clauses = true; } - if ((decl->isEosioAction() || decl->isEosioTable()) && ag.is_eosio_contract(decl, ag.get_contract_name())) { + if ((decl->isEosioAction() || decl->isEosioTable() || decl->isEosioStructure()) + && ag.is_eosio_contract(decl, ag.get_contract_name())) { ag.add_struct(decl); if (decl->isEosioAction()) ag.add_action(decl); if (decl->isEosioTable()) ag.add_table(decl); + if (decl->isEosioStructure()) + ag.add_structure(decl); for (auto field : decl->fields()) { ag.add_type( field->getType() ); } From 36d0f2ef80f446f73cb185c18ff54c4dd4673f0f Mon Sep 17 00:00:00 2001 From: Venu Kailasa Date: Thu, 8 Apr 2021 14:16:25 -0500 Subject: [PATCH 2/7] Updating llvm submodule with clang changes --- eosio_llvm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eosio_llvm b/eosio_llvm index 423a4ac7a7..82d049e1d4 160000 --- a/eosio_llvm +++ b/eosio_llvm @@ -1 +1 @@ -Subproject commit 423a4ac7a7074e139c4f4c2f786d6b71d1b0965e +Subproject commit 82d049e1d469b32a070307b966e9fdf328e3842c From 872d8ccced5679160df3faf3429d0004aa6d6b1a Mon Sep 17 00:00:00 2001 From: Venu Kailasa Date: Fri, 9 Apr 2021 13:13:59 -0500 Subject: [PATCH 3/7] Adding unit test for eosio::structure attribute --- .../toolchain/abigen-pass/structure_test.abi | 43 ++++++++++++++++++ .../toolchain/abigen-pass/structure_test.cpp | 18 ++++++++ .../toolchain/abigen-pass/structure_test.wasm | Bin 0 -> 34373 bytes 3 files changed, 61 insertions(+) create mode 100644 tests/toolchain/abigen-pass/structure_test.abi create mode 100644 tests/toolchain/abigen-pass/structure_test.cpp create mode 100755 tests/toolchain/abigen-pass/structure_test.wasm diff --git a/tests/toolchain/abigen-pass/structure_test.abi b/tests/toolchain/abigen-pass/structure_test.abi new file mode 100644 index 0000000000..160c78dff6 --- /dev/null +++ b/tests/toolchain/abigen-pass/structure_test.abi @@ -0,0 +1,43 @@ +{ + "____comment": "This file was generated with eosio-abigen. DO NOT EDIT ", + "version": "eosio::abi/1.2", + "types": [], + "structs": [ + { + "name": "fee_payer", + "base": "", + "fields": [ + { + "name": "payer", + "type": "name" + }, + { + "name": "quantity", + "type": "uint64" + } + ] + }, + { + "name": "printfeepyr", + "base": "", + "fields": [ + { + "name": "pyr", + "type": "fee_payer" + } + ] + } + ], + "actions": [ + { + "name": "printfeepyr", + "type": "printfeepyr", + "ricardian_contract": "" + } + ], + "tables": [], + "kv_tables": {}, + "ricardian_clauses": [], + "variants": [], + "action_results": [] +} \ No newline at end of file diff --git a/tests/toolchain/abigen-pass/structure_test.cpp b/tests/toolchain/abigen-pass/structure_test.cpp new file mode 100644 index 0000000000..15d3ca535a --- /dev/null +++ b/tests/toolchain/abigen-pass/structure_test.cpp @@ -0,0 +1,18 @@ +#include + +using namespace eosio; + +struct [[eosio::structure]] fee_payer { + name payer; + uint64_t quantity; +}; + +class [[eosio::contract]] structure_test : public eosio::contract { +public: + using contract::contract; + + [[eosio::action]] + void printfeepyr(fee_payer pyr) { + print(pyr.payer, pyr.quantity); + } +}; diff --git a/tests/toolchain/abigen-pass/structure_test.wasm b/tests/toolchain/abigen-pass/structure_test.wasm new file mode 100755 index 0000000000000000000000000000000000000000..1cb6c6891fd87251fbcf771c85d8853b19c46c41 GIT binary patch literal 34373 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 literal 0 HcmV?d00001 From b13c77e352f336f38e50d613cf148fd2bfb57773 Mon Sep 17 00:00:00 2001 From: Venu Kailasa Date: Fri, 9 Apr 2021 13:25:51 -0500 Subject: [PATCH 4/7] Updating unit test with set method --- .../toolchain/abigen-pass/structure_test.abi | 15 +++++++++++++++ .../toolchain/abigen-pass/structure_test.cpp | 6 ++++++ .../toolchain/abigen-pass/structure_test.wasm | Bin 34373 -> 34586 bytes 3 files changed, 21 insertions(+) diff --git a/tests/toolchain/abigen-pass/structure_test.abi b/tests/toolchain/abigen-pass/structure_test.abi index 160c78dff6..6952660093 100644 --- a/tests/toolchain/abigen-pass/structure_test.abi +++ b/tests/toolchain/abigen-pass/structure_test.abi @@ -26,6 +26,16 @@ "type": "fee_payer" } ] + }, + { + "name": "setfeepyr", + "base": "", + "fields": [ + { + "name": "pyr", + "type": "fee_payer" + } + ] } ], "actions": [ @@ -33,6 +43,11 @@ "name": "printfeepyr", "type": "printfeepyr", "ricardian_contract": "" + }, + { + "name": "setfeepyr", + "type": "setfeepyr", + "ricardian_contract": "" } ], "tables": [], diff --git a/tests/toolchain/abigen-pass/structure_test.cpp b/tests/toolchain/abigen-pass/structure_test.cpp index 15d3ca535a..64d6c184a7 100644 --- a/tests/toolchain/abigen-pass/structure_test.cpp +++ b/tests/toolchain/abigen-pass/structure_test.cpp @@ -11,6 +11,12 @@ class [[eosio::contract]] structure_test : public eosio::contract { public: using contract::contract; + [[eosio::action]] + void setfeepyr(fee_payer pyr) { + pyr.payer = "respyr"_n; + pyr.quantity = 10; + } + [[eosio::action]] void printfeepyr(fee_payer pyr) { print(pyr.payer, pyr.quantity); diff --git a/tests/toolchain/abigen-pass/structure_test.wasm b/tests/toolchain/abigen-pass/structure_test.wasm index 1cb6c6891fd87251fbcf771c85d8853b19c46c41..657143a5fc8daea957b7b2a44654bbc8a233113e 100755 GIT binary patch delta 103 zcmX@w!!)apX@d+iQ+(WHIp)~ORm}GKlU^~#u`mcIb5CVtP+$*R~fqKws(pEE0M=3r4OX5Gce$XY+yuzVwnqd=C*W{q-L FegOFa9W4L= delta 81 zcmbQ$$8@xZX@d+iQ(Ww1Ip)~OHOzK;`(7}{vM>lJbJsB_FbGr#$SE)=Fb1+XI5pha jclFBD^Y7NyD=-21AYp;3$^V&^HY>3x7H|GvF3k@B@x>X1 From 3ae8c8452adac53584441d153fcdcb0adedc3c33 Mon Sep 17 00:00:00 2001 From: Venu Kailasa Date: Tue, 13 Apr 2021 09:51:17 -0500 Subject: [PATCH 5/7] Adding structure_test.json --- tests/toolchain/abigen-pass/structure_test.json | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 tests/toolchain/abigen-pass/structure_test.json diff --git a/tests/toolchain/abigen-pass/structure_test.json b/tests/toolchain/abigen-pass/structure_test.json new file mode 100644 index 0000000000..6d99272cd2 --- /dev/null +++ b/tests/toolchain/abigen-pass/structure_test.json @@ -0,0 +1,9 @@ +{ + "tests": [ + { + "expected": { + "abi-file": "structure_test.abi" + } + } + ] +} From 9bae28bae66a6688343626831f5f2cca272a1772 Mon Sep 17 00:00:00 2001 From: Venu Kailasa Date: Thu, 15 Apr 2021 08:58:04 -0500 Subject: [PATCH 6/7] Adding another action to structure test, and deleting wasm file --- .../toolchain/abigen-pass/structure_test.abi | 17 +++++++++++++- .../toolchain/abigen-pass/structure_test.cpp | 21 +++++++++++++----- .../toolchain/abigen-pass/structure_test.wasm | Bin 34586 -> 0 bytes 3 files changed, 31 insertions(+), 7 deletions(-) delete mode 100755 tests/toolchain/abigen-pass/structure_test.wasm diff --git a/tests/toolchain/abigen-pass/structure_test.abi b/tests/toolchain/abigen-pass/structure_test.abi index 6952660093..bac11228d5 100644 --- a/tests/toolchain/abigen-pass/structure_test.abi +++ b/tests/toolchain/abigen-pass/structure_test.abi @@ -17,6 +17,11 @@ } ] }, + { + "name": "getpayer", + "base": "", + "fields": [] + }, { "name": "printfeepyr", "base": "", @@ -39,6 +44,11 @@ } ], "actions": [ + { + "name": "getpayer", + "type": "getpayer", + "ricardian_contract": "" + }, { "name": "printfeepyr", "type": "printfeepyr", @@ -54,5 +64,10 @@ "kv_tables": {}, "ricardian_clauses": [], "variants": [], - "action_results": [] + "action_results": [ + { + "name": "getpayer", + "result_type": "fee_payer" + } + ] } \ No newline at end of file diff --git a/tests/toolchain/abigen-pass/structure_test.cpp b/tests/toolchain/abigen-pass/structure_test.cpp index 64d6c184a7..2404d5807a 100644 --- a/tests/toolchain/abigen-pass/structure_test.cpp +++ b/tests/toolchain/abigen-pass/structure_test.cpp @@ -2,17 +2,26 @@ using namespace eosio; -struct [[eosio::structure]] fee_payer { - name payer; - uint64_t quantity; -}; - class [[eosio::contract]] structure_test : public eosio::contract { public: using contract::contract; + struct [[eosio::structure]] fee_payer { + name payer; + uint64_t quantity; + }; + + [[eosio::action]] + fee_payer getpayer() { + fee_payer pyr; + pyr.payer = _self; + pyr.quantity = 1000; + + return pyr; + } + [[eosio::action]] - void setfeepyr(fee_payer pyr) { + void setfeepyr(fee_payer& pyr) { pyr.payer = "respyr"_n; pyr.quantity = 10; } diff --git a/tests/toolchain/abigen-pass/structure_test.wasm b/tests/toolchain/abigen-pass/structure_test.wasm deleted file mode 100755 index 657143a5fc8daea957b7b2a44654bbc8a233113e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34586 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 Date: Tue, 20 Apr 2021 11:01:30 -0500 Subject: [PATCH 7/7] Removing ABI generation of structures section avoiding duplication --- tools/include/eosio/abi.hpp | 7 ----- tools/include/eosio/abigen.hpp | 52 ++-------------------------------- 2 files changed, 2 insertions(+), 57 deletions(-) diff --git a/tools/include/eosio/abi.hpp b/tools/include/eosio/abi.hpp index 506402726e..b2813f4322 100644 --- a/tools/include/eosio/abi.hpp +++ b/tools/include/eosio/abi.hpp @@ -39,12 +39,6 @@ struct abi_table { bool operator<(const abi_table& t) const { return name < t.name; } }; -struct abi_structure { - std::string name; - std::string type; - bool operator<(const abi_structure& s) const { return name < s.name; } -}; - struct abi_kv_index { std::string name; std::string type; @@ -88,7 +82,6 @@ struct abi { std::set typedefs; std::set actions; std::set tables; - std::set structures; std::set kv_tables; std::set variants; std::vector ricardian_clauses; diff --git a/tools/include/eosio/abigen.hpp b/tools/include/eosio/abigen.hpp index aacbc528b0..e27ac94a19 100644 --- a/tools/include/eosio/abigen.hpp +++ b/tools/include/eosio/abigen.hpp @@ -257,31 +257,6 @@ namespace eosio { namespace cdt { _abi.tables.insert(t); } - void add_structure( const clang::CXXRecordDecl* decl ) { - structures.insert(decl); - abi_structure t; - t.type = decl->getNameAsString(); - auto structure_name = decl->getEosioStructureAttr()->getName(); - if (!structure_name.empty()) { - validate_name( structure_name.str(), [&](auto s) { CDT_ERROR("abigen_error", decl->getLocation(), s); } ); - t.name = structure_name.str(); - } - else { - t.name = t.type; - } - cstructures.insert(t); - } - - void add_structure( uint64_t name, const clang::CXXRecordDecl* decl ) { - if ( !decl->isEosioStructure() ) - return; - - abi_structure t; - t.type = decl->getNameAsString(); - t.name = name_to_string(name); - _abi.structures.insert(t); - } - void add_kv_map(const clang::ClassTemplateSpecializationDecl* decl) { abi_kv_table akt; const auto& first_arg = decl->getTemplateArgs()[0]; @@ -495,13 +470,6 @@ namespace eosio { namespace cdt { return o; } - ojson structure_to_json( const abi_structure& s ) { - ojson o; - o["name"] = s.name; - o["type"] = s.type; - return o; - } - std::pair kv_table_to_json( const abi_kv_table& t ) { ojson o; o["type"] = t.type; @@ -548,7 +516,7 @@ namespace eosio { namespace cdt { set_of_tables.insert(t); } - return _abi.structs.empty() && _abi.typedefs.empty() && _abi.actions.empty() && set_of_tables.empty() && _abi.structures.empty() && _abi.ricardian_clauses.empty() && _abi.variants.empty(); + return _abi.structs.empty() && _abi.typedefs.empty() && _abi.actions.empty() && set_of_tables.empty() && _abi.ricardian_clauses.empty() && _abi.variants.empty(); } ojson to_json() { @@ -617,10 +585,6 @@ namespace eosio { namespace cdt { if (as.name == _translate_type(t.type)) return true; } - for ( auto s : _abi.structures ) { - if (as.name == _translate_type(s.type)) - return true; - } for ( const auto t : _abi.kv_tables ) { if (as.name == _translate_type(t.type)) return true; @@ -655,9 +619,6 @@ namespace eosio { namespace cdt { for ( auto t : _abi.tables ) if ( t.type == td.new_type_name ) return true; - for ( auto s : _abi.structures ) - if ( s.type == td.new_type_name ) - return true; for ( auto a : _abi.actions ) if ( a.type == td.new_type_name ) return true; @@ -689,10 +650,6 @@ namespace eosio { namespace cdt { for ( auto t : set_of_tables ) { o["tables"].push_back(table_to_json( t )); } - o["structures"] = ojson::array(); - for ( auto s : _abi.structures ) { - o["structures"].push_back(structure_to_json( s )); - } o["kv_tables"] = ojson::object(); for ( const auto& t : _abi.kv_tables ) { auto kv_table = kv_table_to_json(t); @@ -720,8 +677,6 @@ namespace eosio { namespace cdt { abi _abi; std::set tables; std::set ctables; - std::set structures; - std::set cstructures; std::map rcs; std::set evaluated; @@ -795,15 +750,12 @@ namespace eosio { namespace cdt { ag.add_contracts(parse_contracts()); has_added_clauses = true; } - if ((decl->isEosioAction() || decl->isEosioTable() || decl->isEosioStructure()) - && ag.is_eosio_contract(decl, ag.get_contract_name())) { + if ((decl->isEosioAction() || decl->isEosioTable()) && ag.is_eosio_contract(decl, ag.get_contract_name())) { ag.add_struct(decl); if (decl->isEosioAction()) ag.add_action(decl); if (decl->isEosioTable()) ag.add_table(decl); - if (decl->isEosioStructure()) - ag.add_structure(decl); for (auto field : decl->fields()) { ag.add_type( field->getType() ); }