syntax = "proto3"; package service; option java_package = "proto.keyManager"; option java_outer_classname = "keyManagerProto"; option go_package = "../service"; message CreateMnemonicRequest { string name = 1; // 商户名字,名字全局唯一,每个商户只能生成一个助记词 int64 mnemonicType = 2; // 0 or 1, 0代表12个助记词,1代表24个助记词 } message CreateMnemonicResponse { string code = 1; // 响应码, 成功是200 string msg = 2; // 响应描述信息 } message CreateKeyRequest { string name = 1; // 商户名字,如果该商户未创建助记词,则返回错误 string network = 2; // 链网络名称,"eth" 或 "tron" int64 index = 3; // 派生账户使用的index,如果该index已被使用,则返回错误 } message GetIndexRequest { string network = 1; // 链网络名称,"eth" 或 "tron" string address = 2; // 查询该地址对应的商户名字和index } message GetAddressRequest { string name = 1; // 商户名字,如果该商户未创建助记词,则返回错误 string network = 2; // 链网络名称,"eth" 或 "tron" int64 index = 3; // 派生账户使用的index } message KeyResponse { string code = 1; // 响应码, 成功是200 string msg = 2; // 响应描述信息 string network = 3; // 链网络名称,"eth" 或 "tron" string name = 4; // 商户名字 int64 index = 5; // 派生账户使用的index string address = 6; // 地址 } message SignRequest { string network = 1; // 链网络名称,"eth" 或 "tron" string sender = 2; // 签名地址 string tx = 3; // 编码的交易,先将eth/tron交易Marshal为字符数组,再编码为hex字符串 } message SignResponse { string code = 1; // 响应码, 成功是200 string msg = 2; // 响应描述信息 string network = 3; // 链网络名称,"eth" 或 "tron" string sender = 4; // 签名地址 string signedTx = 5; // 编码的已签名交易,先将eth/tron已签名交易Marshal为字符数组,再编码为hex字符串 } service KeyManager { rpc CreateMnemonic(CreateMnemonicRequest) returns(CreateMnemonicResponse) {} rpc CreateKey(CreateKeyRequest) returns(KeyResponse) {} rpc GetIndex(GetIndexRequest) returns(KeyResponse) {} rpc GetAddress(GetAddressRequest) returns(KeyResponse) {} rpc Sign(SignRequest) returns(SignResponse) {} }