syntax = "proto3";

option csharp_namespace = "AElf.ABI.CSharp";

message Field
{
    string Type = 1;
    string Name = 2;
}

message Type
{
    string Name = 1;
    repeated Field Fields = 2;
}

message Event
{
    string Name = 1;
    repeated Field Indexed = 2;
    repeated Field NonIndexed = 3;
}

message Method
{
    string Name = 1;
    repeated Field Params = 2;
    string ReturnType = 3;
    bool IsView = 4;
    bool IsAsync = 5;
}

message Module
{
    string Name = 1;
    repeated Method Methods = 2;
    repeated Event Events = 3;
    repeated Type Types = 4;
}
