I am trying to create a custom struct called Student in a contract. Where do I declare or define the struct? I tried to define it in the abi file, but the file was over written when I compile the contract.

struct Student { uint id; string content; bool present; }

1 Answer 1


In traditional development defining structs depends a bit on the architecture of the software and certain conventions but I'll neglet this in this post.

To give you a simple eosio-sepcific answer:

  1. You don't declare structs in the Abi yourself, the eosio.cdt generates the Abi for you and includes the types that are needed to be included. (There are some special cases where it makes sense to manipulate the generated abi but you shouldn't care about that)
  2. You typically declare and define custom structs in one of your header-files (in your case you probably only have a single one).

Simply do:

    struct student_t { 
        uint id; 
        string content; 
        bool present; 

somewhere at the top of your contractname.hpp (within or outside of the contract-class).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.