syntax = "proto3";
package service;

option java_package = "proto.walletServer";
option java_outer_classname = "walletServerProto";

option go_package = "../service";

message TransferRequest {
    string id = 1; // 转账id，供业务层识别
    string network = 2; // 链网络名称，"eth" 或 "tron"
    string coin = 3; // 转账的币种，eth / trx / usdt / usdc
    string from = 4; // 转账的发起地址
    string to = 5; // 代币的接收地址
    // amount单位是实际精度，
    // 如：eth的精度是18，转账金额为: "12.345678"，传递的参数amount为: "12345678000000000000"
    // trx/usdt/usdc精度是6，转账余额为: "1.21"，传递的参数amount为: "1210000"
    string amount = 6; // 转账的金额
}

message TransferResponse {
    TransferRequest req = 1; // 转账请求详情
    string code = 2;  // 响应码, 成功是200
    string msg = 3;   // 响应描述信息
    string txHash = 4; // 交易发到链上的交易hash，业务层应该检测该hash的是否上链，上链才代表着转账成功
}

service WalletServer {
    rpc Transfer(TransferRequest) returns(TransferResponse) {}
}