syntax = "proto3";

package types;

//以太坊账户信息
// 	 privkey : 账户地址对应的私钥
//	 addr :账户地址
message Account4Relayer {
    bytes privkey    = 1;
    string addr      = 2;
}

message ValidatorAddr4EthRelayer {
    string chain33Validator  = 1;
}

message Txhashes {
    repeated string txhash = 1;
}

message ReqChangePasswd {
    string oldPassphase = 1;
    string newPassphase = 2;
}

message ReqSetPasswd {
    string Passphase = 1;
}

message Account4Show {
    string privkey    = 1;
    string addr      = 2;
}

message assetType {
    string chain         = 1;
    string issueContract = 2;
    string symbol        = 3;
}

message EthBridgeClaim {
    int64 ethereumChainID = 1;
    string bridgeBrankAddr = 2;
    int64 nonce = 3;
    string tokenAddr = 4;
    string symbol        = 5;
    string ethereumSender = 6;
    string chain33Receiver = 7;
    string amount = 9;
    int32 claimType = 10;
    string chainName = 11;
    int64 decimal = 12;
}

message ImportKeyReq {
    string privateKey = 1;
}

message RelayerRunStatus {
    int32 status = 1;
    string details = 2;
}

message NewProphecyClaim {
    uint32 claimType = 1;
    string chain33Sender = 2;
    string tokenAddr = 3;
    string symbol = 4;
    string ethReceiver = 5;
    string  amount = 6;
    string txHash = 7;
}

message BalanceAddr  {
    string owner      = 1;
    string tokenAddr  = 2;
}

message MintToken {
    string owner      = 1;
    string tokenAddr  = 2;
    string amount      = 3;
}

message ApproveAllowance {
    string ownerKey   = 1;
    string tokenAddr  = 2;
    string amount      = 3;
}

message LockEthErc20 {
    string ownerKey        = 1;
    string tokenAddr       = 2;
    string amount           = 3;
    //将lock住的资产跨链转移到chain33的该账户名下
    string chain33Receiver = 4;
}

message ReplyAddr {
    bool isOK       =1;
    string addr     =2;
}

message ReplyBalance {
    bool isOK       =1;
    string balance  =2;
}

message Burn {
    string ownerKey   = 1;
    string tokenAddr  = 2;
    string amount      = 3;
    string chain33Receiver = 4;
}

message StaticsRequest {
    string owner   = 1;
    string tokenAddr  = 2;
}

message StaticsAll {
}

message StaticsSingle {
}

message StaticsLockResponse {
    StaticsLock all = 1;
    StaticsLockSingle single  = 2;
}

message StaticsResponse {
}

message StaticsLock {
    string balance              = 1;
}

message StaticsDeposit {
    string supply              = 1;
}

message StaticsLockSingle {
    int64 totalLockedAccumated = 1;
    repeated int64 locked = 2;
}

message TransferToken {
    string tokenAddr = 1;
    string fromKey = 2;
    string toAddr = 3;
    string amount = 4;
}

message Uint64 {
    uint64 data = 1;
}

message TokenStatics {
    string tokenAddr = 1;
}

message EventLogIndex {
    uint64 height = 1;
    uint32 index = 2;
}

message EthTxStatus {
    string status = 1;
    string txhash = 2;
}