Commit 3ef9413b authored by jiangpeng's avatar jiangpeng

privacy:support multiple asset in exec query

* update ShowAmountsOfUTXO and ShowUTXOs4SpecifiedAmount
parent fe44a8a1
syntax = "proto3"; syntax = "proto3";
package types; package types;
//CycleBoundaryInfo cycle边界信息 // CycleBoundaryInfo cycle边界信息
message CycleBoundaryInfo{ message CycleBoundaryInfo {
int64 cycle = 1; int64 cycle = 1;
int64 stopHeight = 2; int64 stopHeight = 2;
string stopHash = 3; string stopHash = 3;
} }
//SuperNode 超级节点信息 // SuperNode 超级节点信息
message SuperNode{ message SuperNode {
bytes address = 1; bytes address = 1;
bytes pubKey = 2; bytes pubKey = 2;
} }
//VoteItem 投票信息 // VoteItem 投票信息
message VoteItem { message VoteItem {
int32 votedNodeIndex = 1; //被投票的节点索引 int32 votedNodeIndex = 1; //被投票的节点索引
bytes votedNodeAddress = 2; //被投票的节点地址 bytes votedNodeAddress = 2; //被投票的节点地址
...@@ -34,7 +33,7 @@ message VoteItem { ...@@ -34,7 +33,7 @@ message VoteItem {
repeated SuperNode noVrfValidators = 14; repeated SuperNode noVrfValidators = 14;
} }
//DPosVote Dpos共识的节点投票,为达成共识用。 // DPosVote Dpos共识的节点投票,为达成共识用。
message DPosVote { message DPosVote {
VoteItem voteItem = 1; VoteItem voteItem = 1;
int64 voteTimestamp = 2; //发起投票的时间 int64 voteTimestamp = 2; //发起投票的时间
...@@ -43,23 +42,23 @@ message DPosVote { ...@@ -43,23 +42,23 @@ message DPosVote {
bytes signature = 5; //投票者签名 bytes signature = 5; //投票者签名
} }
//DPosVoteReply 投票响应。 // DPosVoteReply 投票响应。
message DPosVoteReply { message DPosVoteReply {
DPosVote vote = 1; DPosVote vote = 1;
} }
//DPosNotify Dpos委托节点出块周期结束时,通知其他节点进行高度确认及新节点投票。 // DPosNotify Dpos委托节点出块周期结束时,通知其他节点进行高度确认及新节点投票。
message DPosNotify { message DPosNotify {
VoteItem vote = 1; VoteItem vote = 1;
int64 heightStop = 2; //新节点负责出块的结束高度 int64 heightStop = 2; //新节点负责出块的结束高度
bytes hashStop = 3; //新节点负责出块的结束hash bytes hashStop = 3; //新节点负责出块的结束hash
int64 notifyTimestamp = 4; //发起通知的时间 int64 notifyTimestamp = 4; //发起通知的时间
int32 notifyNodeIndex = 5; //通知节点的索引 int32 notifyNodeIndex = 5; //通知节点的索引
bytes notifyNodeAddress= 6; //通知节点的地址 bytes notifyNodeAddress = 6; //通知节点的地址
bytes signature = 7; //通知节点的签名 bytes signature = 7; //通知节点的签名
} }
//DPosCBInfo Cycle boundary注册信息。 // DPosCBInfo Cycle boundary注册信息。
message DPosCBInfo { message DPosCBInfo {
int64 cycle = 1; int64 cycle = 1;
int64 stopHeight = 2; int64 stopHeight = 2;
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
syntax = "proto3"; syntax = "proto3";
//import "common.proto"; // import "common.proto";
import "board.proto"; import "board.proto";
import "project.proto"; import "project.proto";
import "rule.proto"; import "rule.proto";
......
...@@ -8,7 +8,6 @@ import "lcommon.proto"; ...@@ -8,7 +8,6 @@ import "lcommon.proto";
package types; package types;
message AutonomyProposalBoard { message AutonomyProposalBoard {
ProposalBoard propBoard = 1; ProposalBoard propBoard = 1;
// 投票该提案的规则 // 投票该提案的规则
......
...@@ -8,7 +8,6 @@ import "lcommon.proto"; ...@@ -8,7 +8,6 @@ import "lcommon.proto";
package types; package types;
message AutonomyProposalChange { message AutonomyProposalChange {
ProposalChange propChange = 1; ProposalChange propChange = 1;
// 投票该提案的规则 // 投票该提案的规则
......
...@@ -13,12 +13,12 @@ message Collateralize { ...@@ -13,12 +13,12 @@ message Collateralize {
int64 balance = 7; //放贷剩余金额(ccny) int64 balance = 7; //放贷剩余金额(ccny)
repeated BorrowRecord borrowRecords = 8; //借贷记录 repeated BorrowRecord borrowRecords = 8; //借贷记录
repeated BorrowRecord InvalidRecords = 9; //失效的借贷记录 repeated BorrowRecord InvalidRecords = 9; //失效的借贷记录
int32 status = 10;//当期借贷的状态,是否关闭 int32 status = 10; //当期借贷的状态,是否关闭
int64 latestLiquidationPrice = 11;//最高清算价格 int64 latestLiquidationPrice = 11; //最高清算价格
int64 period = 12;//借贷最大期限 int64 period = 12; //借贷最大期限
int64 latestExpireTime = 13;//最近超期时间 int64 latestExpireTime = 13; //最近超期时间
int64 collBalance = 14;//抵押bty int64 collBalance = 14; //抵押bty
int32 preStatus = 15;//上一个状态 int32 preStatus = 15; //上一个状态
} }
// 借出记录 // 借出记录
...@@ -32,17 +32,17 @@ message BorrowRecord { ...@@ -32,17 +32,17 @@ message BorrowRecord {
int32 status = 7; //抵押状态,是否被清算 int32 status = 7; //抵押状态,是否被清算
int64 liquidateTime = 8; //清算时间 int64 liquidateTime = 8; //清算时间
int64 expireTime = 9; //超时清算时间 int64 expireTime = 9; //超时清算时间
int32 preStatus = 10;//上一次抵押状态,用于告警恢复 int32 preStatus = 10; //上一次抵押状态,用于告警恢复
string recordId = 11;//借贷id,标识一次借出记录 string recordId = 11; //借贷id,标识一次借出记录
string collateralizeId = 12;//放贷id string collateralizeId = 12; //放贷id
} }
// 资产价格记录 // 资产价格记录
message AssetPriceRecord { message AssetPriceRecord {
int64 recordTime = 1; //价格记录时间 int64 recordTime = 1; //价格记录时间
int64 btyPrice = 2; //bty价格 int64 btyPrice = 2; // bty价格
int64 btcPrice = 3; //btc价格 int64 btcPrice = 3; // btc价格
int64 ethPrice = 4; //eth价格 int64 ethPrice = 4; // eth价格
} }
// action // action
...@@ -114,7 +114,7 @@ message ReceiptCollateralize { ...@@ -114,7 +114,7 @@ message ReceiptCollateralize {
string accountAddr = 3; string accountAddr = 3;
string recordId = 4; string recordId = 4;
int32 status = 5; int32 status = 5;
} }
// exec_local 放贷记录信息列表 // exec_local 放贷记录信息列表
message CollateralizeRecords { message CollateralizeRecords {
...@@ -128,7 +128,7 @@ message ReqCollateralizeInfo { ...@@ -128,7 +128,7 @@ message ReqCollateralizeInfo {
// 返回一期放贷信息 // 返回一期放贷信息
message RepCollateralizeCurrentInfo { message RepCollateralizeCurrentInfo {
int32 status = 1;//当期借贷的状态,是否关闭 int32 status = 1; //当期借贷的状态,是否关闭
int64 totalBalance = 2; //当期可借贷的总金额(ccny) int64 totalBalance = 2; //当期可借贷的总金额(ccny)
int64 debtCeiling = 3; //单用户可借出的限额(ccny) int64 debtCeiling = 3; //单用户可借出的限额(ccny)
int64 liquidationRatio = 4; //清算比例 int64 liquidationRatio = 4; //清算比例
...@@ -137,8 +137,8 @@ message RepCollateralizeCurrentInfo { ...@@ -137,8 +137,8 @@ message RepCollateralizeCurrentInfo {
int64 balance = 7; //剩余可借贷金额(ccny) int64 balance = 7; //剩余可借贷金额(ccny)
int64 period = 8; //合约期限 int64 period = 8; //合约期限
string collateralizeId = 9; //放贷ID string collateralizeId = 9; //放贷ID
int64 collBalance = 10;//抵押bty int64 collBalance = 10; //抵押bty
repeated BorrowRecord borrowRecords = 11;//借贷记录 repeated BorrowRecord borrowRecords = 11; //借贷记录
} }
// 根据ID列表查询多期放贷信息 // 根据ID列表查询多期放贷信息
......
...@@ -2,7 +2,7 @@ syntax = "proto3"; ...@@ -2,7 +2,7 @@ syntax = "proto3";
package types; package types;
//CandidatorInfo 候选节点信息 // CandidatorInfo 候选节点信息
message CandidatorInfo { message CandidatorInfo {
bytes pubkey = 1; //候选节点的公钥 bytes pubkey = 1; //候选节点的公钥
string address = 2; //后续节点的地址 string address = 2; //后续节点的地址
...@@ -19,8 +19,8 @@ message CandidatorInfo { ...@@ -19,8 +19,8 @@ message CandidatorInfo {
repeated DposVoter voters = 13; repeated DposVoter voters = 13;
} }
//DposVoter 投票者信息 // DposVoter 投票者信息
message DposVoter{ message DposVoter {
string fromAddr = 1; string fromAddr = 1;
bytes pubkey = 2; //候选节点的公钥 bytes pubkey = 2; //候选节点的公钥
int64 votes = 3; //投给候选节点的票数,不能超过锁在合约中的未使用票数 int64 votes = 3; //投给候选节点的票数,不能超过锁在合约中的未使用票数
...@@ -28,7 +28,7 @@ message DposVoter{ ...@@ -28,7 +28,7 @@ message DposVoter{
int64 time = 5; int64 time = 5;
} }
//Candidator 候选节点信息 // Candidator 候选节点信息
message Candidator { message Candidator {
bytes pubkey = 1; //候选节点的公钥 bytes pubkey = 1; //候选节点的公钥
string address = 2; //后续节点的地址 string address = 2; //后续节点的地址
...@@ -37,33 +37,33 @@ message Candidator { ...@@ -37,33 +37,33 @@ message Candidator {
int64 status = 5; //候选节点的状态,0:注册,1:当选,2:取消注册 int64 status = 5; //候选节点的状态,0:注册,1:当选,2:取消注册
} }
//DposCandidatorRegist 注册Dpos候选节点,必须抵押一定数量的币,比如:10000个币 // DposCandidatorRegist 注册Dpos候选节点,必须抵押一定数量的币,比如:10000个币
message DposCandidatorRegist{ message DposCandidatorRegist {
string pubkey = 1; //候选节点的公钥 string pubkey = 1; //候选节点的公钥
string address = 2; //候选节点的地址 string address = 2; //候选节点的地址
string IP = 3; //候选节点的共识IP地址 string IP = 3; //候选节点的共识IP地址
} }
//DposCandidatorCancelRegist 注销Dpos候选节点,解冻抵押的币 // DposCandidatorCancelRegist 注销Dpos候选节点,解冻抵押的币
message DposCandidatorCancelRegist{ message DposCandidatorCancelRegist {
string pubkey = 1; //候选节点的公钥 string pubkey = 1; //候选节点的公钥
string address = 2; //候选节点的地址 string address = 2; //候选节点的地址
} }
//DposVote 为Dpos候选节点投票 // DposVote 为Dpos候选节点投票
message DposVote{ message DposVote {
string fromAddr = 1; string fromAddr = 1;
string pubkey = 2; //候选节点的公钥 string pubkey = 2; //候选节点的公钥
int64 votes = 3; //投给候选节点的票数,不能超过锁在合约中的未使用票数 int64 votes = 3; //投给候选节点的票数,不能超过锁在合约中的未使用票数
} }
//DposCancelVote 撤销为Dpos候选节点投票 // DposCancelVote 撤销为Dpos候选节点投票
message DposCancelVote{ message DposCancelVote {
string pubkey = 1; //候选节点的公钥 string pubkey = 1; //候选节点的公钥
int64 index = 3; int64 index = 3;
} }
//DposVoteAction DposVote动作 // DposVoteAction DposVote动作
message DposVoteAction { message DposVoteAction {
oneof value { oneof value {
DposCandidatorRegist regist = 1; DposCandidatorRegist regist = 1;
...@@ -84,16 +84,14 @@ message DposVoteAction { ...@@ -84,16 +84,14 @@ message DposVoteAction {
int32 ty = 15; int32 ty = 15;
} }
//CandidatorQuery 候选节点查询 // CandidatorQuery 候选节点查询
message CandidatorQuery{ message CandidatorQuery {
repeated string pubkeys = 1; //候选节点公钥集合 repeated string pubkeys = 1; //候选节点公钥集合
int32 topN = 2; //topN int32 topN = 2; // topN
int32 ty = 3; //1:按公钥集合查询,2:按topN票数查询 int32 ty = 3; // 1:按公钥集合查询,2:按topN票数查询
} }
// JSONCandidator 候选节点Json格式信息
//JSONCandidator 候选节点Json格式信息
message JSONCandidator { message JSONCandidator {
string pubkey = 1; //候选节点的公钥 string pubkey = 1; //候选节点的公钥
string address = 2; //后续节点的地址 string address = 2; //后续节点的地址
...@@ -102,19 +100,19 @@ message JSONCandidator { ...@@ -102,19 +100,19 @@ message JSONCandidator {
int64 status = 5; //候选节点的状态,0:注册,1:当选,2:取消注册 int64 status = 5; //候选节点的状态,0:注册,1:当选,2:取消注册
} }
//CandidatorReply 候选节点查询响应 // CandidatorReply 候选节点查询响应
message CandidatorReply{ message CandidatorReply {
repeated JSONCandidator candidators = 1; //候选节点 repeated JSONCandidator candidators = 1; //候选节点
} }
//DposVoteQuery 投票查询 // DposVoteQuery 投票查询
message DposVoteQuery{ message DposVoteQuery {
repeated string pubkeys = 1; //候选节点的公钥,如果为空,则查询所有,否则,查询该地址给具体候选节点的投票 repeated string pubkeys = 1; //候选节点的公钥,如果为空,则查询所有,否则,查询该地址给具体候选节点的投票
string addr = 2; //要查询的地址 string addr = 2; //要查询的地址
} }
//JSONDposVoter Json格式的投票者信息 // JSONDposVoter Json格式的投票者信息
message JSONDposVoter{ message JSONDposVoter {
string fromAddr = 1; string fromAddr = 1;
string pubkey = 2; //候选节点的公钥 string pubkey = 2; //候选节点的公钥
int64 votes = 3; //投给候选节点的票数,不能超过锁在合约中的未使用票数 int64 votes = 3; //投给候选节点的票数,不能超过锁在合约中的未使用票数
...@@ -122,12 +120,12 @@ message JSONDposVoter{ ...@@ -122,12 +120,12 @@ message JSONDposVoter{
int64 time = 5; int64 time = 5;
} }
//DposVoteReply 投票查询响应 // DposVoteReply 投票查询响应
message DposVoteReply{ message DposVoteReply {
repeated JSONDposVoter votes = 1; //某地址对具体候选节点的投票情况 repeated JSONDposVoter votes = 1; //某地址对具体候选节点的投票情况
} }
//ReceiptCandicator 候选者收据信息 // ReceiptCandicator 候选者收据信息
message ReceiptCandicator { message ReceiptCandicator {
int64 Index = 1; int64 Index = 1;
bytes pubkey = 2; bytes pubkey = 2;
...@@ -142,51 +140,50 @@ message ReceiptCandicator { ...@@ -142,51 +140,50 @@ message ReceiptCandicator {
int64 time = 11; int64 time = 11;
} }
//DposVrfM VrfM信息 // DposVrfM VrfM信息
message DposVrfM{ message DposVrfM {
int64 Index = 1; int64 Index = 1;
bytes pubkey = 2; bytes pubkey = 2;
int64 cycle = 3; int64 cycle = 3;
int64 height = 4; int64 height = 4;
bytes m = 5; //vrf的输入 bytes m = 5; // vrf的输入
int64 time = 6; int64 time = 6;
int64 cycleStart = 7; int64 cycleStart = 7;
int64 cycleMiddle = 8; int64 cycleMiddle = 8;
int64 cycleStop = 9; int64 cycleStop = 9;
} }
//DposVrfRP VrfRP信息 // DposVrfRP VrfRP信息
message DposVrfRP{ message DposVrfRP {
int64 Index = 1; int64 Index = 1;
bytes pubkey = 2; bytes pubkey = 2;
int64 cycle = 3; int64 cycle = 3;
int64 height = 4; int64 height = 4;
bytes m = 5; //vrf的输入 bytes m = 5; // vrf的输入
bytes r = 6; //vrf的hash bytes r = 6; // vrf的hash
bytes p = 7; //vrf的hash的proof bytes p = 7; // vrf的hash的proof
int64 time = 8; int64 time = 8;
int64 cycleStart = 9; int64 cycleStart = 9;
int64 cycleMiddle = 10; int64 cycleMiddle = 10;
int64 cycleStop = 11; int64 cycleStop = 11;
} }
//DposVrfMRegist VrfM注册请求 // DposVrfMRegist VrfM注册请求
message DposVrfMRegist{ message DposVrfMRegist {
string pubkey = 1; string pubkey = 1;
int64 cycle = 2; int64 cycle = 2;
string m = 3; //vrf的输入 string m = 3; // vrf的输入
} }
//DposVrfRPRegist VrfRP注册请求 // DposVrfRPRegist VrfRP注册请求
message DposVrfRPRegist{ message DposVrfRPRegist {
string pubkey = 1; string pubkey = 1;
int64 cycle = 2; int64 cycle = 2;
string r = 3; //vrf的hash string r = 3; // vrf的hash
string p = 4; //vrf的hash的proof string p = 4; // vrf的hash的proof
} }
// ReceiptVrf vrf收据信息
//ReceiptVrf vrf收据信息
message ReceiptVrf { message ReceiptVrf {
int64 Index = 1; int64 Index = 1;
bytes pubkey = 2; bytes pubkey = 2;
...@@ -202,7 +199,7 @@ message ReceiptVrf { ...@@ -202,7 +199,7 @@ message ReceiptVrf {
int64 cycleStop = 12; int64 cycleStop = 12;
} }
//VrfInfo vrf信息 // VrfInfo vrf信息
message VrfInfo { message VrfInfo {
int64 Index = 1; int64 Index = 1;
bytes pubkey = 2; bytes pubkey = 2;
...@@ -214,15 +211,15 @@ message VrfInfo { ...@@ -214,15 +211,15 @@ message VrfInfo {
int64 time = 9; int64 time = 9;
} }
//DposVrfQuery vrf查询请求 // DposVrfQuery vrf查询请求
message DposVrfQuery{ message DposVrfQuery {
repeated string pubkeys = 1; repeated string pubkeys = 1;
int64 ty = 2; int64 ty = 2;
int64 timestamp = 3; int64 timestamp = 3;
int64 cycle = 4; int64 cycle = 4;
} }
//JSONVrfInfo json格式的vrf信息 // JSONVrfInfo json格式的vrf信息
message JSONVrfInfo { message JSONVrfInfo {
int64 Index = 1; int64 Index = 1;
string pubkey = 2; string pubkey = 2;
...@@ -234,12 +231,12 @@ message JSONVrfInfo { ...@@ -234,12 +231,12 @@ message JSONVrfInfo {
int64 time = 9; int64 time = 9;
} }
//DposVrfReply vrf查询响应 // DposVrfReply vrf查询响应
message DposVrfReply{ message DposVrfReply {
repeated JSONVrfInfo vrf = 1; repeated JSONVrfInfo vrf = 1;
} }
//DposCycleBoundaryInfo cycle边界信息 // DposCycleBoundaryInfo cycle边界信息
message DposCycleBoundaryInfo { message DposCycleBoundaryInfo {
int64 cycle = 1; int64 cycle = 1;
int64 stopHeight = 2; int64 stopHeight = 2;
...@@ -248,7 +245,7 @@ message DposCycleBoundaryInfo { ...@@ -248,7 +245,7 @@ message DposCycleBoundaryInfo {
bytes signature = 5; bytes signature = 5;
} }
//DposCBInfo cycle边界记录请求消息 // DposCBInfo cycle边界记录请求消息
message DposCBInfo { message DposCBInfo {
int64 cycle = 1; int64 cycle = 1;
int64 stopHeight = 2; int64 stopHeight = 2;
...@@ -257,7 +254,7 @@ message DposCBInfo { ...@@ -257,7 +254,7 @@ message DposCBInfo {
string signature = 5; string signature = 5;
} }
//DposCBQuery cycle边界记录查询请求 // DposCBQuery cycle边界记录查询请求
message DposCBQuery { message DposCBQuery {
int64 cycle = 1; int64 cycle = 1;
int64 stopHeight = 2; int64 stopHeight = 2;
...@@ -265,12 +262,12 @@ message DposCBQuery { ...@@ -265,12 +262,12 @@ message DposCBQuery {
int32 ty = 4; int32 ty = 4;
} }
//DposCBReply cycle边界记录查询响应 // DposCBReply cycle边界记录查询响应
message DposCBReply { message DposCBReply {
DposCBInfo cbInfo = 1; DposCBInfo cbInfo = 1;
} }
//ReceiptCB CycleBoundary收据信息 // ReceiptCB CycleBoundary收据信息
message ReceiptCB { message ReceiptCB {
int64 Index = 1; int64 Index = 1;
bytes pubkey = 2; bytes pubkey = 2;
...@@ -284,8 +281,8 @@ message ReceiptCB { ...@@ -284,8 +281,8 @@ message ReceiptCB {
DposCycleBoundaryInfo cbInfo = 10; DposCycleBoundaryInfo cbInfo = 10;
} }
//TopNCandidator topN候选者 // TopNCandidator topN候选者
message TopNCandidator{ message TopNCandidator {
repeated Candidator cands = 1; repeated Candidator cands = 1;
bytes hash = 2; bytes hash = 2;
int64 height = 3; int64 height = 3;
...@@ -293,30 +290,30 @@ message TopNCandidator{ ...@@ -293,30 +290,30 @@ message TopNCandidator{
bytes signature = 5; bytes signature = 5;
} }
//TopNCandidators topN候选者(复数) // TopNCandidators topN候选者(复数)
message TopNCandidators{ message TopNCandidators {
repeated TopNCandidator candsVotes = 1; repeated TopNCandidator candsVotes = 1;
int64 version = 2; int64 version = 2;
int64 status = 3; int64 status = 3;
repeated Candidator finalCands = 4; repeated Candidator finalCands = 4;
} }
//TopNCandidatorRegist topN候选者注册请求 // TopNCandidatorRegist topN候选者注册请求
message TopNCandidatorRegist{ message TopNCandidatorRegist {
TopNCandidator cand = 1; TopNCandidator cand = 1;
} }
//TopNCandidatorsQuery topN候选者查询请求 // TopNCandidatorsQuery topN候选者查询请求
message TopNCandidatorsQuery{ message TopNCandidatorsQuery {
int64 version = 1; int64 version = 1;
} }
//TopNCandidatorsReply topN候选者查询响应 // TopNCandidatorsReply topN候选者查询响应
message TopNCandidatorsReply{ message TopNCandidatorsReply {
TopNCandidators topN = 1; TopNCandidators topN = 1;
} }
//ReceiptTopN topN注册的收据信息 // ReceiptTopN topN注册的收据信息
message ReceiptTopN { message ReceiptTopN {
int64 Index = 1; int64 Index = 1;
bytes pubkey = 2; bytes pubkey = 2;
......
syntax = "proto3"; syntax = "proto3";
package types; package types;
message Exchange { message Exchange {}
}
message ExchangeAction { message ExchangeAction {
oneof value { oneof value {
...@@ -143,13 +142,10 @@ message OrderList { ...@@ -143,13 +142,10 @@ message OrderList {
string primaryKey = 2; string primaryKey = 2;
} }
// exchange执行票据日志
//exchange执行票据日志
message ReceiptExchange { message ReceiptExchange {
Order order = 1; Order order = 1;
repeated Order matchOrders = 2; repeated Order matchOrders = 2;
int64 index = 3; int64 index = 3;
} }
service exchange { service exchange {}
}
...@@ -4,7 +4,7 @@ import "transaction.proto"; ...@@ -4,7 +4,7 @@ import "transaction.proto";
package types; package types;
//GuessGame 竞猜游戏详情 // GuessGame 竞猜游戏详情
message GuessGame { message GuessGame {
string gameID = 1; //游戏ID string gameID = 1; //游戏ID
int32 status = 2; //游戏的状态:创建->投注->截止投注->开奖 int32 status = 2; //游戏的状态:创建->投注->截止投注->开奖
...@@ -34,13 +34,13 @@ message GuessGame { ...@@ -34,13 +34,13 @@ message GuessGame {
bool drivenByAdmin = 26; bool drivenByAdmin = 26;
} }
//GuessPlayer 竞猜玩家信息 // GuessPlayer 竞猜玩家信息
message GuessPlayer { message GuessPlayer {
string addr = 1; string addr = 1;
GuessBet bet = 2; GuessBet bet = 2;
} }
//GuessBet 竞猜下注信息 // GuessBet 竞猜下注信息
message GuessBet { message GuessBet {
string option = 1; string option = 1;
int64 betsNumber = 2; int64 betsNumber = 2;
...@@ -50,21 +50,21 @@ message GuessBet { ...@@ -50,21 +50,21 @@ message GuessBet {
int64 preIndex = 6; int64 preIndex = 6;
} }
//GuessBetStat 竞猜下注统计信息 // GuessBetStat 竞猜下注统计信息
message GuessBetStat { message GuessBetStat {
int64 totalBetTimes = 1; int64 totalBetTimes = 1;
int64 totalBetsNumber = 2; int64 totalBetsNumber = 2;
repeated GuessBetStatItem items = 3; repeated GuessBetStatItem items = 3;
} }
//GuessBetStat 竞猜下注子选项统计信息 // GuessBetStat 竞猜下注子选项统计信息
message GuessBetStatItem { message GuessBetStatItem {
string option = 1; string option = 1;
int64 betsNumber = 2; int64 betsNumber = 2;
int64 betsTimes = 3; int64 betsTimes = 3;
} }
//GuessGameAction 竞猜游戏动作 // GuessGameAction 竞猜游戏动作
message GuessGameAction { message GuessGameAction {
oneof value { oneof value {
GuessGameStart start = 1; GuessGameStart start = 1;
...@@ -77,13 +77,13 @@ message GuessGameAction { ...@@ -77,13 +77,13 @@ message GuessGameAction {
int32 ty = 7; int32 ty = 7;
} }
//GuessGameStart 游戏创建 // GuessGameStart 游戏创建
message GuessGameStart{ message GuessGameStart {
string topic = 1; string topic = 1;
string options = 2; string options = 2;
string category = 3; string category = 3;
int64 maxBetHeight = 4; int64 maxBetHeight = 4;
int64 maxBetsOneTime= 5; int64 maxBetsOneTime = 5;
int64 maxBetsNumber = 6; int64 maxBetsNumber = 6;
int64 devFeeFactor = 7; //开发者抽成比例 int64 devFeeFactor = 7; //开发者抽成比例
string devFeeAddr = 8; //开发者地址 string devFeeAddr = 8; //开发者地址
...@@ -93,36 +93,36 @@ message GuessGameStart{ ...@@ -93,36 +93,36 @@ message GuessGameStart{
bool drivenByAdmin = 12; bool drivenByAdmin = 12;
} }
//GuessGameBet 参与游戏下注 // GuessGameBet 参与游戏下注
message GuessGameBet{ message GuessGameBet {
string gameID = 1; string gameID = 1;
string option = 2; string option = 2;
int64 betsNum = 3; int64 betsNum = 3;
} }
//GuessGameStopBet 游戏停止下注 // GuessGameStopBet 游戏停止下注
message GuessGameStopBet{ message GuessGameStopBet {
string gameID = 1; string gameID = 1;
} }
//GuessGameAbort 游戏异常终止,退还下注 // GuessGameAbort 游戏异常终止,退还下注
message GuessGameAbort{ message GuessGameAbort {
string gameID = 1; string gameID = 1;
} }
//GuessGamePublish 游戏结果揭晓 // GuessGamePublish 游戏结果揭晓
message GuessGamePublish{ message GuessGamePublish {
string gameID = 1; string gameID = 1;
string result = 2; string result = 2;
} }
//GuessGameQuery 查询游戏结果 // GuessGameQuery 查询游戏结果
message GuessGameQuery{ message GuessGameQuery {
string gameID = 1; string gameID = 1;
uint32 ty = 2; uint32 ty = 2;
} }
//QueryGuessGameInfo 游戏信息查询消息 // QueryGuessGameInfo 游戏信息查询消息
message QueryGuessGameInfo { message QueryGuessGameInfo {
string gameID = 1; string gameID = 1;
string addr = 2; string addr = 2;
...@@ -133,22 +133,22 @@ message QueryGuessGameInfo { ...@@ -133,22 +133,22 @@ message QueryGuessGameInfo {
string primaryKey = 7; string primaryKey = 7;
} }
//ReplyGuessGameInfo 游戏信息查询响应消息 // ReplyGuessGameInfo 游戏信息查询响应消息
message ReplyGuessGameInfo { message ReplyGuessGameInfo {
GuessGame game = 1; GuessGame game = 1;
} }
//QueryGuessGameInfos 游戏信息列表查询消息 // QueryGuessGameInfos 游戏信息列表查询消息
message QueryGuessGameInfos { message QueryGuessGameInfos {
repeated string gameIDs = 1; repeated string gameIDs = 1;
} }
//ReplyGuessGameInfos 游戏信息列表查询响应消息 // ReplyGuessGameInfos 游戏信息列表查询响应消息
message ReplyGuessGameInfos { message ReplyGuessGameInfos {
repeated GuessGame games = 1; repeated GuessGame games = 1;
} }
//ReceiptGuessGame 竞猜游戏收据信息 // ReceiptGuessGame 竞猜游戏收据信息
message ReceiptGuessGame { message ReceiptGuessGame {
int64 startIndex = 1; int64 startIndex = 1;
string gameID = 2; string gameID = 2;
...@@ -166,7 +166,7 @@ message ReceiptGuessGame { ...@@ -166,7 +166,7 @@ message ReceiptGuessGame {
GuessGame game = 14; GuessGame game = 14;
} }
//UserBet 用户下注信息 // UserBet 用户下注信息
message UserBet { message UserBet {
int64 startIndex = 1; int64 startIndex = 1;
int64 index = 2; int64 index = 2;
...@@ -176,7 +176,7 @@ message UserBet { ...@@ -176,7 +176,7 @@ message UserBet {
int64 betsNumber = 6; int64 betsNumber = 6;
} }
//GuessStartTxReq 构造start交易的请求 // GuessStartTxReq 构造start交易的请求
message GuessStartTxReq { message GuessStartTxReq {
string topic = 1; string topic = 1;
string options = 2; string options = 2;
...@@ -193,7 +193,7 @@ message GuessStartTxReq { ...@@ -193,7 +193,7 @@ message GuessStartTxReq {
int64 fee = 13; int64 fee = 13;
} }
//GuessBetTxReq 构造bet交易的请求 // GuessBetTxReq 构造bet交易的请求
message GuessBetTxReq { message GuessBetTxReq {
string gameID = 1; string gameID = 1;
string option = 2; string option = 2;
...@@ -201,19 +201,19 @@ message GuessBetTxReq { ...@@ -201,19 +201,19 @@ message GuessBetTxReq {
int64 fee = 4; int64 fee = 4;
} }
//GuessStopBetTxReq 构造stopBet交易的请求 // GuessStopBetTxReq 构造stopBet交易的请求
message GuessStopBetTxReq { message GuessStopBetTxReq {
string gameID = 1; string gameID = 1;
int64 fee = 2; int64 fee = 2;
} }
//GuessAbortTxReq 构造abort交易的请求 // GuessAbortTxReq 构造abort交易的请求
message GuessAbortTxReq { message GuessAbortTxReq {
string gameID = 1; string gameID = 1;
int64 fee = 2; int64 fee = 2;
} }
//GuessPublishTxReq 构造publish交易的请求 // GuessPublishTxReq 构造publish交易的请求
message GuessPublishTxReq { message GuessPublishTxReq {
string gameID = 1; string gameID = 1;
string result = 2; string result = 2;
...@@ -232,7 +232,6 @@ message GuessGameRecords { ...@@ -232,7 +232,6 @@ message GuessGameRecords {
string primaryKey = 2; string primaryKey = 2;
} }
// service guess 为guess 对外提供服务的接口 // service guess 为guess 对外提供服务的接口
service guess { service guess {
//游戏开始 //游戏开始
......
...@@ -13,12 +13,12 @@ message Issuance { ...@@ -13,12 +13,12 @@ message Issuance {
repeated DebtRecord debtRecords = 7; //大户抵押记录 repeated DebtRecord debtRecords = 7; //大户抵押记录
repeated DebtRecord invalidRecords = 8; //大户抵押记录 repeated DebtRecord invalidRecords = 8; //大户抵押记录
int32 status = 9; //当期发行的状态,是否关闭 int32 status = 9; //当期发行的状态,是否关闭
int64 latestLiquidationPrice = 10;//最高清算价格 int64 latestLiquidationPrice = 10; //最高清算价格
int64 period = 11;//发行最大期限 int64 period = 11; //发行最大期限
int64 latestExpireTime = 12;//最近超期时间 int64 latestExpireTime = 12; //最近超期时间
int64 createTime = 13;//创建时间 int64 createTime = 13; //创建时间
int64 balance = 14;//剩余可发行ccny int64 balance = 14; //剩余可发行ccny
string issuerAddr = 15;//发行地址 string issuerAddr = 15; //发行地址
} }
// 抵押记录 // 抵押记录
...@@ -32,15 +32,15 @@ message DebtRecord { ...@@ -32,15 +32,15 @@ message DebtRecord {
int32 status = 7; //抵押状态,是否被清算 int32 status = 7; //抵押状态,是否被清算
int64 liquidateTime = 8; //清算时间 int64 liquidateTime = 8; //清算时间
int64 expireTime = 9; //超时清算时间 int64 expireTime = 9; //超时清算时间
int32 preStatus = 10;//上一次抵押状态,用于告警恢复 int32 preStatus = 10; //上一次抵押状态,用于告警恢复
string debtId = 11;//借贷id string debtId = 11; //借贷id
string issuId = 12;//发行id string issuId = 12; //发行id
} }
// 资产价格记录 // 资产价格记录
message IssuanceAssetPriceRecord { message IssuanceAssetPriceRecord {
int64 recordTime = 1; //价格记录时间 int64 recordTime = 1; //价格记录时间
int64 btyPrice = 2; //bty价格 int64 btyPrice = 2; // bty价格
} }
// action // action
...@@ -127,7 +127,7 @@ message RepIssuanceCurrentInfo { ...@@ -127,7 +127,7 @@ message RepIssuanceCurrentInfo {
int64 debtValue = 7; //产生的ccny数量 int64 debtValue = 7; //产生的ccny数量
int64 period = 8; //发行最大期限 int64 period = 8; //发行最大期限
string issuId = 9; //发行ID string issuId = 9; //发行ID
int64 createTime = 10;//创建时间 int64 createTime = 10; //创建时间
} }
// 根据ID列表查询多期发行信息 // 根据ID列表查询多期发行信息
......
...@@ -9,9 +9,9 @@ message Create { ...@@ -9,9 +9,9 @@ message Create {
// call action // call action
message Call { message Call {
string name = 1; //exec name string name = 1; // exec name
string funcname = 2; //call function name string funcname = 2; // call function name
string args = 3; //json args string args = 3; // json args
} }
message JsAction { message JsAction {
......
...@@ -25,7 +25,7 @@ message Lottery { ...@@ -25,7 +25,7 @@ message Lottery {
int64 drawBlockNum = 6; int64 drawBlockNum = 6;
int64 lastTransToPurState = 7; int64 lastTransToPurState = 7;
int64 lastTransToDrawState = 8; int64 lastTransToDrawState = 8;
//map<string, PurchaseRecords> records = 9; // map<string, PurchaseRecords> records = 9;
int64 totalPurchasedTxNum = 10; int64 totalPurchasedTxNum = 10;
string createAddr = 11; string createAddr = 11;
int64 round = 12; int64 round = 12;
...@@ -218,17 +218,17 @@ message ReplyLotteryPurchaseAddr { ...@@ -218,17 +218,17 @@ message ReplyLotteryPurchaseAddr {
repeated string address = 1; repeated string address = 1;
} }
message LotteryGainInfos{ message LotteryGainInfos {
repeated LotteryGainInfo gains = 1; repeated LotteryGainInfo gains = 1;
} }
message LotteryGainInfo{ message LotteryGainInfo {
string addr = 1; string addr = 1;
int64 buyAmount = 2; int64 buyAmount = 2;
int64 fundAmount = 3; int64 fundAmount = 3;
} }
message LotteryGainRecord{ message LotteryGainRecord {
string addr = 1; string addr = 1;
int64 buyAmount = 2; int64 buyAmount = 2;
int64 fundAmount = 3; int64 fundAmount = 3;
...@@ -252,4 +252,3 @@ message ReqLotteryGainInfo { ...@@ -252,4 +252,3 @@ message ReqLotteryGainInfo {
string addr = 2; string addr = 2;
int64 round = 3; int64 round = 3;
} }
...@@ -6,12 +6,12 @@ package types; ...@@ -6,12 +6,12 @@ package types;
// message for multisig start///////////////////////////////////////////////////// // message for multisig start/////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////
//多重签名账户的状态信息,存在在statedb中,通过多重签名账户作为key值 //多重签名账户的状态信息,存在在statedb中,通过多重签名账户作为key值
//createaddr: 创建多重签名地址的创建者账户 // createaddr: 创建多重签名地址的创建者账户
//multisigaddr: 多重签名地址 // multisigaddr: 多重签名地址
//owners: 可以操作此多重签名地址的owner账户列表 // owners: 可以操作此多重签名地址的owner账户列表
//DailyLimit: 不同资产的每日限额,通过symbol来区分,本连的原生币,以及跨链过来的其他链的原生币 // DailyLimit: 不同资产的每日限额,通过symbol来区分,本连的原生币,以及跨链过来的其他链的原生币
//txCount:记录此多重签名地址上提交的withdraw交易数 // txCount:记录此多重签名地址上提交的withdraw交易数
//requiredweight:确认一笔withdraw交易需要的权重。 // requiredweight:确认一笔withdraw交易需要的权重。
message MultiSig { message MultiSig {
string createAddr = 1; string createAddr = 1;
string multiSigAddr = 2; string multiSigAddr = 2;
...@@ -27,7 +27,7 @@ message ConfirmedOwner { ...@@ -27,7 +27,7 @@ message ConfirmedOwner {
} }
//记录提交的交易详情,在满足确认条件后执行data中的交易 //记录提交的交易详情,在满足确认条件后执行data中的交易
//txHash:用于存贮提交的确认交易。存贮在localdb中,通过txhash可以获取 // txHash:用于存贮提交的确认交易。存贮在localdb中,通过txhash可以获取
message MultiSigTx { message MultiSigTx {
uint64 txid = 1; uint64 txid = 1;
string txHash = 2; string txHash = 2;
...@@ -35,51 +35,49 @@ message MultiSigTx { ...@@ -35,51 +35,49 @@ message MultiSigTx {
uint64 txType = 4; uint64 txType = 4;
string multiSigAddr = 5; string multiSigAddr = 5;
repeated Owner confirmedOwner = 6; repeated Owner confirmedOwner = 6;
} }
// owner 结构体:owner账户地址,以及权重 // owner 结构体:owner账户地址,以及权重
message Owner { message Owner {
string ownerAddr =1; string ownerAddr = 1;
uint64 weight=2; uint64 weight = 2;
} }
// 资产symbol的定义,可能存在不同的平行链上发布相同名字的token, // 资产symbol的定义,可能存在不同的平行链上发布相同名字的token,
//或者在主链发布一个token:HYB 而在guodun的平行链上也会发布一个token:HYB //或者在主链发布一个token:HYB 而在guodun的平行链上也会发布一个token:HYB
// coins.bty和coins.guodun // coins.bty和coins.guodun
//1:原始数据 // 1:原始数据
//主链上:原始币symbol:BTY,token.symbol(例如:TEST) //主链上:原始币symbol:BTY,token.symbol(例如:TEST)
//guodun平行链上的原始币symbol:guodun,token.symbol(例如:TEST) // guodun平行链上的原始币symbol:guodun,token.symbol(例如:TEST)
//2:主链原始币转移到平行链上: // 2:主链原始币转移到平行链上:
//guodun平行链上的现有原始币symbol:guodun,token.symbol(例如:TEST) // guodun平行链上的现有原始币symbol:guodun,token.symbol(例如:TEST)
//以及主链转移过来的symbol: coins.BTY和token.TEST (主链转移过来的资产在平行链上的symbol) //以及主链转移过来的symbol: coins.BTY和token.TEST (主链转移过来的资产在平行链上的symbol)
//每日资产限额,不同的资产价格不一致,需要设置各自的每日限额。没有设置或者限额是0时,表示不能取币 //每日资产限额,不同的资产价格不一致,需要设置各自的每日限额。没有设置或者限额是0时,表示不能取币
//spentToday今天已经花费的额度。用于和dailyLimit做对比,超过每日限额时需要多重签名 // spentToday今天已经花费的额度。用于和dailyLimit做对比,超过每日限额时需要多重签名
//lastDay记录当天开始的时间戳,新的一天需要重置spentToday为初始值0,并修改lastDay的时间戳 // lastDay记录当天开始的时间戳,新的一天需要重置spentToday为初始值0,并修改lastDay的时间戳
message DailyLimit { message DailyLimit {
string symbol =1; string symbol = 1;
string execer =2; string execer = 2;
uint64 dailyLimit =3; uint64 dailyLimit = 3;
uint64 spentToday =4; uint64 spentToday = 4;
int64 lastDay =5; int64 lastDay = 5;
} }
message SymbolDailyLimit { message SymbolDailyLimit {
string symbol =1; string symbol = 1;
string execer =2; string execer = 2;
uint64 dailyLimit =3; uint64 dailyLimit = 3;
} }
//MultiSig 所有可能的交易action // MultiSig 所有可能的交易action
message MultiSigAction { message MultiSigAction {
oneof value { oneof value {
MultiSigAccCreate multiSigAccCreate = 1; MultiSigAccCreate multiSigAccCreate = 1;
MultiSigOwnerOperate multiSigOwnerOperate = 2; MultiSigOwnerOperate multiSigOwnerOperate = 2;
MultiSigAccOperate multiSigAccOperate = 3; MultiSigAccOperate multiSigAccOperate = 3;
MultiSigConfirmTx multiSigConfirmTx = 4;//确认或者撤销已确认 MultiSigConfirmTx multiSigConfirmTx = 4; //确认或者撤销已确认
MultiSigExecTransferTo multiSigExecTransferTo = 5;//合约中外部账户转账到多重签名账户,Addr --->multiSigAddr MultiSigExecTransferTo multiSigExecTransferTo = 5; //合约中外部账户转账到多重签名账户,Addr --->multiSigAddr
MultiSigExecTransferFrom multiSigExecTransferFrom = 6;//合约中多重签名账户转账到外部账户,multiSigAddr--->Addr MultiSigExecTransferFrom multiSigExecTransferFrom = 6; //合约中多重签名账户转账到外部账户,multiSigAddr--->Addr
} }
int32 Ty = 7; int32 Ty = 7;
} }
...@@ -132,17 +130,15 @@ message MultiSigExecTransferTo { ...@@ -132,17 +130,15 @@ message MultiSigExecTransferTo {
} }
//多重签名账户withdraw交易的确认或者取消确认 //多重签名账户withdraw交易的确认或者取消确认
//multisigaccaddr:多重签名账户地址 // multisigaccaddr:多重签名账户地址
//transactionid:多重签名账户上的withdraw交易的内部id // transactionid:多重签名账户上的withdraw交易的内部id
message MultiSigConfirmTx { message MultiSigConfirmTx {
string multiSigAccAddr = 1; string multiSigAccAddr = 1;
uint64 txId = 2; uint64 txId = 2;
bool confirmOrRevoke = 3; bool confirmOrRevoke = 3;
} }
// query的接口:
//query的接口:
//第一步:获取所有多重签名账号 //第一步:获取所有多重签名账号
//第二步:获取指定多重签名账号的状态信息:包含创建者,owners,weight权重,以及各个资产的每日限量 //第二步:获取指定多重签名账号的状态信息:包含创建者,owners,weight权重,以及各个资产的每日限量
//第三步:获取指定多重签名账户下的peding或者executed的交易id //第三步:获取指定多重签名账户下的peding或者executed的交易id
...@@ -187,7 +183,6 @@ message ReplyMultiSigTxids { ...@@ -187,7 +183,6 @@ message ReplyMultiSigTxids {
repeated uint64 txids = 2; repeated uint64 txids = 2;
} }
//获取txid交易的信息,以及参与确认的owner信息 //获取txid交易的信息,以及参与确认的owner信息
message ReqMultiSigTxInfo { message ReqMultiSigTxInfo {
string multiSigAddr = 1; string multiSigAddr = 1;
...@@ -216,14 +211,14 @@ message UnSpentAssets { ...@@ -216,14 +211,14 @@ message UnSpentAssets {
//交易执行结果的Receipt信息: //交易执行结果的Receipt信息:
//TyLogMultiSigAccCreate交易的执行Receipt // TyLogMultiSigAccCreate交易的执行Receipt
message ReceiptMultiSig { message ReceiptMultiSig {
string multiSigAddr = 1; string multiSigAddr = 1;
} }
//owner的操作: // owner的操作:
//TyLogMultiSigOwnerAdd = 10001 //输出add的owner:addr和weight // TyLogMultiSigOwnerAdd = 10001 //输出add的owner:addr和weight
//TyLogMultiSigOwnerDel = 10002 //输出del的owner:addr和weight // TyLogMultiSigOwnerDel = 10002 //输出del的owner:addr和weight
message ReceiptOwnerAddOrDel { message ReceiptOwnerAddOrDel {
string multiSigAddr = 1; string multiSigAddr = 1;
...@@ -231,8 +226,8 @@ message ReceiptOwnerAddOrDel { ...@@ -231,8 +226,8 @@ message ReceiptOwnerAddOrDel {
bool addOrDel = 3; bool addOrDel = 3;
} }
//TyLogMultiSigOwnerModify = 10003 //输出modify的owner:preweight以及currentweight // TyLogMultiSigOwnerModify = 10003 //输出modify的owner:preweight以及currentweight
//TyLogMultiSigOwnerReplace = 10004 //输出old的owner的信息:以及当前的owner信息:addr+weight // TyLogMultiSigOwnerReplace = 10004 //输出old的owner的信息:以及当前的owner信息:addr+weight
message ReceiptOwnerModOrRep { message ReceiptOwnerModOrRep {
string multiSigAddr = 1; string multiSigAddr = 1;
Owner prevOwner = 2; Owner prevOwner = 2;
...@@ -241,14 +236,14 @@ message ReceiptOwnerModOrRep { ...@@ -241,14 +236,14 @@ message ReceiptOwnerModOrRep {
} }
//多重签名账户的操作:ReqWeight,AssetDailyLimit //多重签名账户的操作:ReqWeight,AssetDailyLimit
//TyLogMultiSigAccWeightModify = 10005 //输出修改前后确认权重的值:preReqWeight和curReqWeight // TyLogMultiSigAccWeightModify = 10005 //输出修改前后确认权重的值:preReqWeight和curReqWeight
message ReceiptWeightModify { message ReceiptWeightModify {
string multiSigAddr = 1; string multiSigAddr = 1;
uint64 prevWeight = 2; uint64 prevWeight = 2;
uint64 currentWeight = 3; uint64 currentWeight = 3;
} }
//TyLogMultiSigAccDailyLimitAdd = 10006 //输出add的DailyLimit:Symbol和DailyLimit // TyLogMultiSigAccDailyLimitAdd = 10006 //输出add的DailyLimit:Symbol和DailyLimit
//TyLogMultiSigAccDailyLimitModify = 10007 //输出modify的DailyLimit:preDailyLimit以及currentDailyLimit // TyLogMultiSigAccDailyLimitModify = 10007 //输出modify的DailyLimit:preDailyLimit以及currentDailyLimit
message ReceiptDailyLimitOperate { message ReceiptDailyLimitOperate {
string multiSigAddr = 1; string multiSigAddr = 1;
DailyLimit prevDailyLimit = 2; DailyLimit prevDailyLimit = 2;
...@@ -257,8 +252,8 @@ message ReceiptDailyLimitOperate { ...@@ -257,8 +252,8 @@ message ReceiptDailyLimitOperate {
} }
//交易确认或者撤销(撤销值针对未执行的交易) //交易确认或者撤销(撤销值针对未执行的交易)
//TyLogMultiSigConfirmTx = 10008 //输出确认的交易id,以及owner信息:addr+weight // TyLogMultiSigConfirmTx = 10008 //输出确认的交易id,以及owner信息:addr+weight
//TyLogMultiSigConfirmTxRevoke = 10009 //输出撤销确认的交易id,以及owner信息:addr+weight // TyLogMultiSigConfirmTxRevoke = 10009 //输出撤销确认的交易id,以及owner信息:addr+weight
message ReceiptConfirmTx { message ReceiptConfirmTx {
MultiSigTxOwner multiSigTxOwner = 1; MultiSigTxOwner multiSigTxOwner = 1;
bool confirmeOrRevoke = 2; bool confirmeOrRevoke = 2;
...@@ -277,7 +272,6 @@ message ReceiptMultiSigTx { ...@@ -277,7 +272,6 @@ message ReceiptMultiSigTx {
bool submitOrConfirm = 4; bool submitOrConfirm = 4;
string txHash = 5; string txHash = 5;
uint64 txType = 6; uint64 txType = 6;
} }
message ReceiptTxCountUpdate { message ReceiptTxCountUpdate {
...@@ -292,15 +286,14 @@ message MultiSigTxOwner { ...@@ -292,15 +286,14 @@ message MultiSigTxOwner {
} }
//具体转币的处理; //具体转币的处理;
//TyLogMultiSigExecTransfer = 10010 // TyLogMultiSigExecTransfer = 10010
//入币:将from地址在MultiSig合约中的币转移到指定的多重签名账户ExecTransfer中,并将其冻结ExecFrozen //入币:将from地址在MultiSig合约中的币转移到指定的多重签名账户ExecTransfer中,并将其冻结ExecFrozen
//注释:使用chain33/types中定义的ReceiptExecAccountTransfer即可 //注释:使用chain33/types中定义的ReceiptExecAccountTransfer即可
//TyLogMultiSigWithdraw = 10011 // TyLogMultiSigWithdraw = 10011
//出币:将多重签名地址上冻结的币转给MultiSig合约中TO地址上ExecTransferFrozen //出币:将多重签名地址上冻结的币转给MultiSig合约中TO地址上ExecTransferFrozen
//注释:使用chain33/types中定义的ReceiptExecAccountTransfer即可 //注释:使用chain33/types中定义的ReceiptExecAccountTransfer即可
message Uint64 { message Uint64 {
uint64 data = 1; uint64 data = 1;
} }
...@@ -340,7 +333,7 @@ message AccAddress { ...@@ -340,7 +333,7 @@ message AccAddress {
repeated string address = 1; repeated string address = 1;
} }
//owner拥有的多重签名账户信息 // owner拥有的多重签名账户信息
message OwnerAttr { message OwnerAttr {
string multiSigAddr = 1; string multiSigAddr = 1;
string ownerAddr = 2; string ownerAddr = 2;
......
...@@ -14,7 +14,7 @@ message OracleStatus { ...@@ -14,7 +14,7 @@ message OracleStatus {
EventStatus status = 8; //操作状态 EventStatus status = 8; //操作状态
string source = 9; //数据来源 string source = 9; //数据来源
string result = 10; //事件结果 string result = 10; //事件结果
EventStatus preStatus=11; //上次操作后状态及操作者地址 EventStatus preStatus = 11; //上次操作后状态及操作者地址
} }
// action // action
...@@ -87,7 +87,7 @@ message ReceiptOracle { ...@@ -87,7 +87,7 @@ message ReceiptOracle {
int32 status = 2; //事件状态 int32 status = 2; //事件状态
string addr = 3; //事件发布者的地址 string addr = 3; //事件发布者的地址
string type = 4; //事件类型 string type = 4; //事件类型
int32 preStatus = 6;//事件的前一个状态 int32 preStatus = 6; //事件的前一个状态
} }
message ReplyOracleStatusList { message ReplyOracleStatusList {
......
...@@ -16,8 +16,6 @@ message ParacrossStatusDetails { ...@@ -16,8 +16,6 @@ message ParacrossStatusDetails {
message ParacrossStatusBlockDetails { message ParacrossStatusBlockDetails {
repeated bytes blockHashs = 1; repeated bytes blockHashs = 1;
repeated bytes txResults = 2; repeated bytes txResults = 2;
} }
message ParacrossHeightStatus { message ParacrossHeightStatus {
...@@ -39,7 +37,6 @@ message ParacrossHeightStatusRsp { ...@@ -39,7 +37,6 @@ message ParacrossHeightStatusRsp {
string mainHash = 5; string mainHash = 5;
repeated string commitAddrs = 6; repeated string commitAddrs = 6;
repeated string commitBlockHash = 7; repeated string commitBlockHash = 7;
} }
message ParacrossStatus { message ParacrossStatus {
...@@ -64,7 +61,6 @@ message ParaNodeAddrConfig { ...@@ -64,7 +61,6 @@ message ParaNodeAddrConfig {
string addr = 4; string addr = 4;
uint32 value = 5; uint32 value = 5;
int64 coinsFrozen = 6; int64 coinsFrozen = 6;
} }
message ParaNodeVoteDetail { message ParaNodeVoteDetail {
...@@ -91,7 +87,6 @@ message ParaNodeIdStatus { ...@@ -91,7 +87,6 @@ message ParaNodeIdStatus {
int64 height = 8; int64 height = 8;
} }
message ReceiptParaNodeConfig { message ReceiptParaNodeConfig {
string addr = 1; string addr = 1;
ParaNodeAddrConfig config = 2; ParaNodeAddrConfig config = 2;
...@@ -114,7 +109,6 @@ message ReceiptParaNodeVoteDone { ...@@ -114,7 +109,6 @@ message ReceiptParaNodeVoteDone {
int32 mostVote = 6; int32 mostVote = 6;
string voteRst = 7; string voteRst = 7;
int32 doneStatus = 8; int32 doneStatus = 8;
} }
message ParaNodeGroupConfig { message ParaNodeGroupConfig {
...@@ -125,7 +119,6 @@ message ParaNodeGroupConfig { ...@@ -125,7 +119,6 @@ message ParaNodeGroupConfig {
int64 coinsFrozen = 5; int64 coinsFrozen = 5;
} }
message ParaNodeGroupStatus { message ParaNodeGroupStatus {
string id = 1; string id = 1;
int32 status = 2; int32 status = 2;
...@@ -143,14 +136,12 @@ message ReceiptParaNodeGroupConfig { ...@@ -143,14 +136,12 @@ message ReceiptParaNodeGroupConfig {
ParaNodeGroupStatus current = 4; ParaNodeGroupStatus current = 4;
} }
// node query // node query
message ReqParacrossNodeInfo { message ReqParacrossNodeInfo {
string title = 1; string title = 1;
string id = 2; string id = 2;
string addr = 3; string addr = 3;
int32 status = 4; int32 status = 4;
} }
message RespParacrossNodeAddrs { message RespParacrossNodeAddrs {
...@@ -194,7 +185,6 @@ message SelfConsensStages { ...@@ -194,7 +185,6 @@ message SelfConsensStages {
repeated SelfConsensStage items = 1; repeated SelfConsensStage items = 1;
} }
message SelfConsensStage { message SelfConsensStage {
int64 startHeight = 1; int64 startHeight = 1;
uint32 enable = 2; uint32 enable = 2;
...@@ -214,9 +204,6 @@ message LocalSelfConsStageInfo { ...@@ -214,9 +204,6 @@ message LocalSelfConsStageInfo {
string txIndex = 2; string txIndex = 2;
} }
message ConfigVoteInfo { message ConfigVoteInfo {
string id = 1; string id = 1;
// 投票值 1:ok 2:nok // 投票值 1:ok 2:nok
...@@ -235,8 +222,7 @@ message ParaStageConfig { ...@@ -235,8 +222,7 @@ message ParaStageConfig {
oneof value { oneof value {
SelfConsensStage stage = 10; SelfConsensStage stage = 10;
ConfigVoteInfo vote = 11; ConfigVoteInfo vote = 11;
ConfigCancelInfo cancel= 12; ConfigCancelInfo cancel = 12;
} }
} }
...@@ -254,7 +240,7 @@ message ReceiptSelfConsStageVoteDone { ...@@ -254,7 +240,7 @@ message ReceiptSelfConsStageVoteDone {
string voteRst = 6; string voteRst = 6;
} }
message ReceiptSelfConsStagesUpdate{ message ReceiptSelfConsStagesUpdate {
SelfConsensStages prev = 1; SelfConsensStages prev = 1;
SelfConsensStages current = 2; SelfConsensStages current = 2;
} }
...@@ -273,7 +259,6 @@ message ReplyQuerySelfStages { ...@@ -273,7 +259,6 @@ message ReplyQuerySelfStages {
repeated SelfConsensStageInfo stageInfo = 1; repeated SelfConsensStageInfo stageInfo = 1;
} }
message ParacrossCommitAction { message ParacrossCommitAction {
ParacrossNodeStatus status = 1; ParacrossNodeStatus status = 1;
} }
...@@ -295,8 +280,6 @@ message ParacrossAction { ...@@ -295,8 +280,6 @@ message ParacrossAction {
ParaNodeAddrConfig nodeConfig = 9; ParaNodeAddrConfig nodeConfig = 9;
ParaNodeGroupConfig nodeGroupConfig = 10; ParaNodeGroupConfig nodeGroupConfig = 10;
ParaStageConfig selfStageConfig = 11; ParaStageConfig selfStageConfig = 11;
} }
int32 ty = 2; int32 ty = 2;
} }
...@@ -357,8 +340,8 @@ message RespParacrossDone { ...@@ -357,8 +340,8 @@ message RespParacrossDone {
string stateHash = 6; string stateHash = 6;
uint32 txCounts = 7; uint32 txCounts = 7;
string txResult = 8; string txResult = 8;
//commitDone chainHeight // commitDone chainHeight
int64 chainExecHeight= 9; int64 chainExecHeight = 9;
} }
message RespParacrossTitles { message RespParacrossTitles {
......
...@@ -37,7 +37,7 @@ message PBPlayer { ...@@ -37,7 +37,7 @@ message PBPlayer {
repeated PBHand hands = 1; //历史发牌和斗牛结果 repeated PBHand hands = 1; //历史发牌和斗牛结果
string address = 2; //玩家地址 string address = 2; //玩家地址
int64 txHash = 3; //发牌随机数因子txhash的整数格式 int64 txHash = 3; //发牌随机数因子txhash的整数格式
bool ready = 4; //continue状态下,是否ready bool ready = 4; // continue状态下,是否ready
} }
//本局游戏结果 //本局游戏结果
...@@ -193,4 +193,3 @@ message PBQueryReq { ...@@ -193,4 +193,3 @@ message PBQueryReq {
string gameId = 1; string gameId = 1;
int64 fee = 2; int64 fee = 2;
} }
...@@ -356,12 +356,16 @@ func showAmountsOfUTXOCmd() *cobra.Command { ...@@ -356,12 +356,16 @@ func showAmountsOfUTXOCmd() *cobra.Command {
} }
func showAmountOfUTXOFlag(cmd *cobra.Command) { func showAmountOfUTXOFlag(cmd *cobra.Command) {
cmd.Flags().StringP("symbol", "s", "BTY", "asset symbol, default BTY")
cmd.Flags().StringP("exec", "e", "coins", "asset executor(coins, token, paracross), default coins")
} }
func showAmountOfUTXO(cmd *cobra.Command, args []string) { func showAmountOfUTXO(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr") rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
exec, _ := cmd.Flags().GetString("exec")
reqPrivacyToken := pty.ReqPrivacyToken{Token: types.BTY} symbol, _ := cmd.Flags().GetString("symbol")
reqPrivacyToken := pty.ReqPrivacyToken{AssetExec: exec, AssetSymbol: symbol}
var params rpctypes.Query4Jrpc var params rpctypes.Query4Jrpc
params.Execer = pty.PrivacyX params.Execer = pty.PrivacyX
params.FuncName = "ShowAmountsOfUTXO" params.FuncName = "ShowAmountsOfUTXO"
...@@ -394,15 +398,19 @@ func showUTXOs4SpecifiedAmountCmd() *cobra.Command { ...@@ -394,15 +398,19 @@ func showUTXOs4SpecifiedAmountCmd() *cobra.Command {
func showUTXOs4SpecifiedAmountFlag(cmd *cobra.Command) { func showUTXOs4SpecifiedAmountFlag(cmd *cobra.Command) {
cmd.Flags().Float64P("amount", "a", 0, "amount") cmd.Flags().Float64P("amount", "a", 0, "amount")
cmd.MarkFlagRequired("amount") cmd.MarkFlagRequired("amount")
cmd.Flags().StringP("exec", "e", "coins", "asset executor(coins, token, paracross), default coins")
cmd.Flags().StringP("symbol", "s", "BTY", "asset symbol, default BTY")
} }
func showUTXOs4SpecifiedAmount(cmd *cobra.Command, args []string) { func showUTXOs4SpecifiedAmount(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr") rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
amount, _ := cmd.Flags().GetFloat64("amount") amount, _ := cmd.Flags().GetFloat64("amount")
amountInt64 := int64(amount*types.InputPrecision) * types.Multiple1E4 amountInt64 := int64(amount*types.InputPrecision) * types.Multiple1E4
exec, _ := cmd.Flags().GetString("exec")
symbol, _ := cmd.Flags().GetString("symbol")
reqPrivacyToken := pty.ReqPrivacyToken{ reqPrivacyToken := pty.ReqPrivacyToken{
Token: types.BTY, AssetExec: exec,
AssetSymbol: symbol,
Amount: amountInt64, Amount: amountInt64,
} }
var params rpctypes.Query4Jrpc var params rpctypes.Query4Jrpc
......
...@@ -44,11 +44,8 @@ func (p *privacy) Exec_Public2Privacy(payload *ty.Public2Privacy, tx *types.Tran ...@@ -44,11 +44,8 @@ func (p *privacy) Exec_Public2Privacy(payload *ty.Public2Privacy, tx *types.Tran
receipt.KV = append(receipt.KV, &types.KeyValue{Key: key, Value: value}) receipt.KV = append(receipt.KV, &types.KeyValue{Key: key, Value: value})
} }
receiptPrivacyOutput := &ty.ReceiptPrivacyOutput{ receiptLogs := p.buildPrivacyReceiptLog(payload.GetAssetExec(), payload.GetTokenname(), payload.GetOutput().GetKeyoutput())
Token: payload.Tokenname, execlog := &types.ReceiptLog{Ty: ty.TyLogPrivacyOutput, Log: types.Encode(receiptLogs)}
Keyoutput: payload.GetOutput().Keyoutput,
}
execlog := &types.ReceiptLog{Ty: ty.TyLogPrivacyOutput, Log: types.Encode(receiptPrivacyOutput)}
receipt.Logs = append(receipt.Logs, execlog) receipt.Logs = append(receipt.Logs, execlog)
//////////////////debug code begin/////////////// //////////////////debug code begin///////////////
...@@ -82,12 +79,8 @@ func (p *privacy) Exec_Privacy2Privacy(payload *ty.Privacy2Privacy, tx *types.Tr ...@@ -82,12 +79,8 @@ func (p *privacy) Exec_Privacy2Privacy(payload *ty.Privacy2Privacy, tx *types.Tr
value := types.Encode(keyOutput) value := types.Encode(keyOutput)
receipt.KV = append(receipt.KV, &types.KeyValue{Key: key, Value: value}) receipt.KV = append(receipt.KV, &types.KeyValue{Key: key, Value: value})
} }
receiptLogs := p.buildPrivacyReceiptLog(payload.GetAssetExec(), payload.GetTokenname(), payload.GetOutput().GetKeyoutput())
receiptPrivacyOutput := &ty.ReceiptPrivacyOutput{ execlog = &types.ReceiptLog{Ty: ty.TyLogPrivacyOutput, Log: types.Encode(receiptLogs)}
Token: payload.Tokenname,
Keyoutput: payload.GetOutput().Keyoutput,
}
execlog = &types.ReceiptLog{Ty: ty.TyLogPrivacyOutput, Log: types.Encode(receiptPrivacyOutput)}
receipt.Logs = append(receipt.Logs, execlog) receipt.Logs = append(receipt.Logs, execlog)
receipt.Ty = types.ExecOk receipt.Ty = types.ExecOk
...@@ -132,11 +125,8 @@ func (p *privacy) Exec_Privacy2Public(payload *ty.Privacy2Public, tx *types.Tran ...@@ -132,11 +125,8 @@ func (p *privacy) Exec_Privacy2Public(payload *ty.Privacy2Public, tx *types.Tran
receipt.KV = append(receipt.KV, &types.KeyValue{Key: key, Value: value}) receipt.KV = append(receipt.KV, &types.KeyValue{Key: key, Value: value})
} }
receiptPrivacyOutput := &ty.ReceiptPrivacyOutput{ receiptLog := p.buildPrivacyReceiptLog(payload.GetAssetExec(), payload.GetTokenname(), payload.GetOutput().GetKeyoutput())
Token: payload.Tokenname, execlog = &types.ReceiptLog{Ty: ty.TyLogPrivacyOutput, Log: types.Encode(receiptLog)}
Keyoutput: payload.GetOutput().Keyoutput,
}
execlog = &types.ReceiptLog{Ty: ty.TyLogPrivacyOutput, Log: types.Encode(receiptPrivacyOutput)}
receipt.Logs = append(receipt.Logs, execlog) receipt.Logs = append(receipt.Logs, execlog)
receipt.Ty = types.ExecOk receipt.Ty = types.ExecOk
...@@ -155,3 +145,16 @@ func (p *privacy) createAccountDB(exec, symbol string) (*account.DB, error) { ...@@ -155,3 +145,16 @@ func (p *privacy) createAccountDB(exec, symbol string) (*account.DB, error) {
cfg := p.GetAPI().GetConfig() cfg := p.GetAPI().GetConfig()
return account.NewAccountDB(cfg, exec, symbol, p.GetStateDB()) return account.NewAccountDB(cfg, exec, symbol, p.GetStateDB())
} }
func (p *privacy) buildPrivacyReceiptLog(assetExec, assetSymbol string, output []*ty.KeyOutput) *ty.ReceiptPrivacyOutput {
if assetExec == "" {
assetExec = "coins"
}
receipt := &ty.ReceiptPrivacyOutput{
AssetExec: assetExec,
AssetSymbol: assetSymbol,
Keyoutput: output,
}
return receipt
}
...@@ -26,19 +26,19 @@ func (p *privacy) execDelLocal(tx *types.Transaction, receiptData *types.Receipt ...@@ -26,19 +26,19 @@ func (p *privacy) execDelLocal(tx *types.Transaction, receiptData *types.Receipt
privacylog.Error("PrivacyTrading ExecDelLocal", "txhash", txhashstr, "Decode item.Log error ", err) privacylog.Error("PrivacyTrading ExecDelLocal", "txhash", txhashstr, "Decode item.Log error ", err)
panic(err) panic(err)
} }
assetExec := receiptPrivacyOutput.GetAssetExec()
token := receiptPrivacyOutput.Token assetSymbol := receiptPrivacyOutput.GetAssetSymbol()
txhashInByte := tx.Hash() txhashInByte := tx.Hash()
txhash := common.ToHex(txhashInByte) txhash := common.ToHex(txhashInByte)
for m, keyOutput := range receiptPrivacyOutput.Keyoutput { for m, keyOutput := range receiptPrivacyOutput.Keyoutput {
//kv1,添加一个具体的UTXO,方便我们可以查询相应token下特定额度下,不同高度时,不同txhash的UTXO //kv1,添加一个具体的UTXO,方便我们可以查询相应token下特定额度下,不同高度时,不同txhash的UTXO
key := CalcPrivacyUTXOkeyHeight(token, keyOutput.Amount, p.GetHeight(), txhash, i, m) key := CalcPrivacyUTXOkeyHeight(assetExec, assetSymbol, keyOutput.Amount, p.GetHeight(), txhash, i, m)
kv := &types.KeyValue{Key: key, Value: nil} kv := &types.KeyValue{Key: key, Value: nil}
dbSet.KV = append(dbSet.KV, kv) dbSet.KV = append(dbSet.KV, kv)
//kv2,添加各种不同额度的kv记录,能让我们很方便的获知本系统存在的所有不同的额度的UTXO //kv2,添加各种不同额度的kv记录,能让我们很方便的获知本系统存在的所有不同的额度的UTXO
var amountTypes ty.AmountsOfUTXO var amountTypes ty.AmountsOfUTXO
key2 := CalcprivacyKeyTokenAmountType(token) key2 := CalcprivacyKeyTokenAmountType(assetExec, assetSymbol)
value2, err := localDB.Get(key2) value2, err := localDB.Get(key2)
//如果该种token不是第一次进行隐私操作 //如果该种token不是第一次进行隐私操作
if err == nil && value2 != nil { if err == nil && value2 != nil {
...@@ -63,15 +63,16 @@ func (p *privacy) execDelLocal(tx *types.Transaction, receiptData *types.Receipt ...@@ -63,15 +63,16 @@ func (p *privacy) execDelLocal(tx *types.Transaction, receiptData *types.Receipt
} }
//kv3,添加存在隐私交易token的类型 //kv3,添加存在隐私交易token的类型
assetKey := calcExecLocalAssetKey(assetExec, assetSymbol)
var tokenNames ty.TokenNamesOfUTXO var tokenNames ty.TokenNamesOfUTXO
key3 := CalcprivacyKeyTokenTypes() key3 := CalcprivacyKeyTokenTypes()
value3, err := localDB.Get(key3) value3, err := localDB.Get(key3)
if err == nil && value3 != nil { if err == nil && value3 != nil {
err := types.Decode(value3, &tokenNames) err := types.Decode(value3, &tokenNames)
if err == nil { if err == nil {
if settxhash, ok := tokenNames.TokensMap[token]; ok { if settxhash, ok := tokenNames.TokensMap[assetKey]; ok {
if settxhash == txhash { if settxhash == txhash {
delete(tokenNames.TokensMap, token) delete(tokenNames.TokensMap, assetKey)
value3 := types.Encode(&tokenNames) value3 := types.Encode(&tokenNames)
kv := &types.KeyValue{Key: key3, Value: value3} kv := &types.KeyValue{Key: key3, Value: value3}
dbSet.KV = append(dbSet.KV, kv) dbSet.KV = append(dbSet.KV, kv)
......
...@@ -27,12 +27,13 @@ func (p *privacy) execLocal(receiptData *types.ReceiptData, tx *types.Transactio ...@@ -27,12 +27,13 @@ func (p *privacy) execLocal(receiptData *types.ReceiptData, tx *types.Transactio
panic(err) //数据错误了,已经被修改了 panic(err) //数据错误了,已经被修改了
} }
token := receiptPrivacyOutput.Token assetExec := receiptPrivacyOutput.GetAssetExec()
assetSymbol := receiptPrivacyOutput.GetAssetSymbol()
txhashInByte := tx.Hash() txhashInByte := tx.Hash()
txhash := common.ToHex(txhashInByte) txhash := common.ToHex(txhashInByte)
for outputIndex, keyOutput := range receiptPrivacyOutput.Keyoutput { for outputIndex, keyOutput := range receiptPrivacyOutput.Keyoutput {
//kv1,添加一个具体的UTXO,方便我们可以查询相应token下特定额度下,不同高度时,不同txhash的UTXO //kv1,添加一个具体的UTXO,方便我们可以查询相应token下特定额度下,不同高度时,不同txhash的UTXO
key := CalcPrivacyUTXOkeyHeight(token, keyOutput.Amount, p.GetHeight(), txhash, index, outputIndex) key := CalcPrivacyUTXOkeyHeight(assetExec, assetSymbol, keyOutput.Amount, p.GetHeight(), txhash, index, outputIndex)
localUTXOItem := &ty.LocalUTXOItem{ localUTXOItem := &ty.LocalUTXOItem{
Height: p.GetHeight(), Height: p.GetHeight(),
Txindex: int32(index), Txindex: int32(index),
...@@ -46,7 +47,7 @@ func (p *privacy) execLocal(receiptData *types.ReceiptData, tx *types.Transactio ...@@ -46,7 +47,7 @@ func (p *privacy) execLocal(receiptData *types.ReceiptData, tx *types.Transactio
//kv2,添加各种不同额度的kv记录,能让我们很方便的获知本系统存在的所有不同的额度的UTXO //kv2,添加各种不同额度的kv记录,能让我们很方便的获知本系统存在的所有不同的额度的UTXO
var amountTypes ty.AmountsOfUTXO var amountTypes ty.AmountsOfUTXO
key2 := CalcprivacyKeyTokenAmountType(token) key2 := CalcprivacyKeyTokenAmountType(assetExec, assetSymbol)
value2, err := localDB.Get(key2) value2, err := localDB.Get(key2)
//如果该种token不是第一次进行隐私操作 //如果该种token不是第一次进行隐私操作
if err == nil && value2 != nil { if err == nil && value2 != nil {
...@@ -78,14 +79,15 @@ func (p *privacy) execLocal(receiptData *types.ReceiptData, tx *types.Transactio ...@@ -78,14 +79,15 @@ func (p *privacy) execLocal(receiptData *types.ReceiptData, tx *types.Transactio
} }
//kv3,添加存在隐私交易token的类型 //kv3,添加存在隐私交易token的类型
assetKey := calcExecLocalAssetKey(assetExec, assetSymbol)
var tokenNames ty.TokenNamesOfUTXO var tokenNames ty.TokenNamesOfUTXO
key3 := CalcprivacyKeyTokenTypes() key3 := CalcprivacyKeyTokenTypes()
value3, err := localDB.Get(key3) value3, err := localDB.Get(key3)
if err == nil && len(value3) != 0 { if err == nil && len(value3) != 0 {
err := types.Decode(value3, &tokenNames) err := types.Decode(value3, &tokenNames)
if err == nil { if err == nil {
if _, ok := tokenNames.TokensMap[token]; !ok { if _, ok := tokenNames.TokensMap[assetKey]; !ok {
tokenNames.TokensMap[token] = txhash tokenNames.TokensMap[assetKey] = txhash
kv := &types.KeyValue{Key: key3, Value: types.Encode(&tokenNames)} kv := &types.KeyValue{Key: key3, Value: types.Encode(&tokenNames)}
dbSet.KV = append(dbSet.KV, kv) dbSet.KV = append(dbSet.KV, kv)
localDB.Set(key3, types.Encode(&tokenNames)) localDB.Set(key3, types.Encode(&tokenNames))
...@@ -93,7 +95,7 @@ func (p *privacy) execLocal(receiptData *types.ReceiptData, tx *types.Transactio ...@@ -93,7 +95,7 @@ func (p *privacy) execLocal(receiptData *types.ReceiptData, tx *types.Transactio
} }
} else { } else {
tokenNames.TokensMap = make(map[string]string) tokenNames.TokensMap = make(map[string]string)
tokenNames.TokensMap[token] = txhash tokenNames.TokensMap[assetKey] = txhash
kv := &types.KeyValue{Key: key3, Value: types.Encode(&tokenNames)} kv := &types.KeyValue{Key: key3, Value: types.Encode(&tokenNames)}
dbSet.KV = append(dbSet.KV, kv) dbSet.KV = append(dbSet.KV, kv)
localDB.Set(key3, types.Encode(&tokenNames)) localDB.Set(key3, types.Encode(&tokenNames))
......
...@@ -40,21 +40,25 @@ func calcPrivacyKeyImageKey(exec, token string, keyimage []byte) []byte { ...@@ -40,21 +40,25 @@ func calcPrivacyKeyImageKey(exec, token string, keyimage []byte) []byte {
} }
//CalcPrivacyUTXOkeyHeight 在本地数据库中设置一条可以找到对应amount的对应的utxo的global index //CalcPrivacyUTXOkeyHeight 在本地数据库中设置一条可以找到对应amount的对应的utxo的global index
func CalcPrivacyUTXOkeyHeight(token string, amount, height int64, txhash string, txindex, outindex int) (key []byte) { func CalcPrivacyUTXOkeyHeight(exec, token string, amount, height int64, txhash string, txindex, outindex int) (key []byte) {
return []byte(fmt.Sprintf(privacyUTXOKEYPrefix+"-%s-%d-%d-%s-%d-%d", token, amount, height, txhash, txindex, outindex)) return []byte(fmt.Sprintf(privacyUTXOKEYPrefix+"-%s-%s-%d-%d-%s-%d-%d", exec, token, amount, height, txhash, txindex, outindex))
} }
// CalcPrivacyUTXOkeyHeightPrefix get privacy utxo key by height and prefix // CalcPrivacyUTXOkeyHeightPrefix get privacy utxo key by height and prefix
func CalcPrivacyUTXOkeyHeightPrefix(token string, amount int64) (key []byte) { func CalcPrivacyUTXOkeyHeightPrefix(exec, token string, amount int64) (key []byte) {
return []byte(fmt.Sprintf(privacyUTXOKEYPrefix+"-%s-%d-", token, amount)) return []byte(fmt.Sprintf(privacyUTXOKEYPrefix+"-%s-%s-%d-", exec, token, amount))
} }
//CalcprivacyKeyTokenAmountType 设置当前系统存在的token的amount的类型,如存在1,3,5,100...等等的类型, //CalcprivacyKeyTokenAmountType 设置当前系统存在的token的amount的类型,如存在1,3,5,100...等等的类型,
func CalcprivacyKeyTokenAmountType(token string) (key []byte) { func CalcprivacyKeyTokenAmountType(exec, token string) (key []byte) {
return []byte(fmt.Sprintf(privacyAmountTypePrefix+"-%s-", token)) return []byte(fmt.Sprintf(privacyAmountTypePrefix+"-%s-%s-", exec, token))
} }
// CalcprivacyKeyTokenTypes get privacy token types key // CalcprivacyKeyTokenTypes get privacy token types key
func CalcprivacyKeyTokenTypes() (key []byte) { func CalcprivacyKeyTokenTypes() (key []byte) {
return []byte(privacyTokenTypesPrefix) return []byte(privacyTokenTypesPrefix)
} }
func calcExecLocalAssetKey(exec, symbol string) string {
return exec + "-" + symbol
}
...@@ -72,10 +72,10 @@ func (p *privacy) GetDriverName() string { ...@@ -72,10 +72,10 @@ func (p *privacy) GetDriverName() string {
return driverName return driverName
} }
func (p *privacy) getUtxosByTokenAndAmount(tokenName string, amount int64, count int32) ([]*pty.LocalUTXOItem, error) { func (p *privacy) getUtxosByTokenAndAmount(exec, tokenName string, amount int64, count int32) ([]*pty.LocalUTXOItem, error) {
localDB := p.GetLocalDB() localDB := p.GetLocalDB()
var utxos []*pty.LocalUTXOItem var utxos []*pty.LocalUTXOItem
prefix := CalcPrivacyUTXOkeyHeightPrefix(tokenName, amount) prefix := CalcPrivacyUTXOkeyHeightPrefix(exec, tokenName, amount)
values, err := localDB.List(prefix, nil, count, 0) values, err := localDB.List(prefix, nil, count, 0)
if err != nil { if err != nil {
return utxos, err return utxos, err
...@@ -97,13 +97,12 @@ func (p *privacy) getUtxosByTokenAndAmount(tokenName string, amount int64, count ...@@ -97,13 +97,12 @@ func (p *privacy) getUtxosByTokenAndAmount(tokenName string, amount int64, count
return utxos, nil return utxos, nil
} }
func (p *privacy) getGlobalUtxoIndex(getUtxoIndexReq *pty.ReqUTXOGlobalIndex) (types.Message, error) { func (p *privacy) getGlobalUtxoIndex(req *pty.ReqUTXOGlobalIndex) (types.Message, error) {
debugBeginTime := time.Now() debugBeginTime := time.Now()
utxoGlobalIndexResp := &pty.ResUTXOGlobalIndex{} utxoGlobalIndexResp := &pty.ResUTXOGlobalIndex{}
tokenName := getUtxoIndexReq.Tokenname
currentHeight := p.GetHeight() currentHeight := p.GetHeight()
for _, amount := range getUtxoIndexReq.Amount { for _, amount := range req.GetAmount() {
utxos, err := p.getUtxosByTokenAndAmount(tokenName, amount, pty.UTXOCacheCount) utxos, err := p.getUtxosByTokenAndAmount(req.GetAssetExec(), req.GetAssetSymbol(), amount, pty.UTXOCacheCount)
if err != nil { if err != nil {
return utxoGlobalIndexResp, err return utxoGlobalIndexResp, err
} }
...@@ -115,7 +114,7 @@ func (p *privacy) getGlobalUtxoIndex(getUtxoIndexReq *pty.ReqUTXOGlobalIndex) (t ...@@ -115,7 +114,7 @@ func (p *privacy) getGlobalUtxoIndex(getUtxoIndexReq *pty.ReqUTXOGlobalIndex) (t
} }
} }
mixCount := getUtxoIndexReq.MixCount mixCount := req.GetMixCount()
totalCnt := int32(index + 1) totalCnt := int32(index + 1)
if mixCount > totalCnt { if mixCount > totalCnt {
mixCount = totalCnt mixCount = totalCnt
...@@ -154,7 +153,7 @@ func (p *privacy) getGlobalUtxoIndex(getUtxoIndexReq *pty.ReqUTXOGlobalIndex) (t ...@@ -154,7 +153,7 @@ func (p *privacy) getGlobalUtxoIndex(getUtxoIndexReq *pty.ReqUTXOGlobalIndex) (t
func (p *privacy) ShowAmountsOfUTXO(reqtoken *pty.ReqPrivacyToken) (types.Message, error) { func (p *privacy) ShowAmountsOfUTXO(reqtoken *pty.ReqPrivacyToken) (types.Message, error) {
querydb := p.GetLocalDB() querydb := p.GetLocalDB()
key := CalcprivacyKeyTokenAmountType(reqtoken.Token) key := CalcprivacyKeyTokenAmountType(reqtoken.GetAssetExec(), reqtoken.GetAssetSymbol())
replyAmounts := &pty.ReplyPrivacyAmounts{} replyAmounts := &pty.ReplyPrivacyAmounts{}
value, err := querydb.Get(key) value, err := querydb.Get(key)
if err != nil { if err != nil {
...@@ -182,7 +181,7 @@ func (p *privacy) ShowUTXOs4SpecifiedAmount(reqtoken *pty.ReqPrivacyToken) (type ...@@ -182,7 +181,7 @@ func (p *privacy) ShowUTXOs4SpecifiedAmount(reqtoken *pty.ReqPrivacyToken) (type
querydb := p.GetLocalDB() querydb := p.GetLocalDB()
var replyUTXOsOfAmount pty.ReplyUTXOsOfAmount var replyUTXOsOfAmount pty.ReplyUTXOsOfAmount
values, err := querydb.List(CalcPrivacyUTXOkeyHeightPrefix(reqtoken.Token, reqtoken.Amount), nil, 0, 0) values, err := querydb.List(CalcPrivacyUTXOkeyHeightPrefix(reqtoken.GetAssetExec(), reqtoken.GetAssetSymbol(), reqtoken.Amount), nil, 0, 0)
if err != nil { if err != nil {
return &replyUTXOsOfAmount, err return &replyUTXOsOfAmount, err
} }
......
...@@ -61,14 +61,14 @@ func TestPrivacy_Query_ShowAmountsOfUTXO(t *testing.T) { ...@@ -61,14 +61,14 @@ func TestPrivacy_Query_ShowAmountsOfUTXO(t *testing.T) {
{ {
index: 1, index: 1,
params: &pty.ReqPrivacyToken{ params: &pty.ReqPrivacyToken{
Token: "btc", AssetSymbol: "btc",
}, },
expectErr: types.ErrNotFound, expectErr: types.ErrNotFound,
}, },
{ {
index: 2, index: 2,
params: &pty.ReqPrivacyToken{ params: &pty.ReqPrivacyToken{
Token: "bty", AssetSymbol: "bty",
}, },
expectReply: &pty.ReplyPrivacyAmounts{ expectReply: &pty.ReplyPrivacyAmounts{
AmountDetail: []*pty.AmountDetail{ AmountDetail: []*pty.AmountDetail{
...@@ -79,6 +79,8 @@ func TestPrivacy_Query_ShowAmountsOfUTXO(t *testing.T) { ...@@ -79,6 +79,8 @@ func TestPrivacy_Query_ShowAmountsOfUTXO(t *testing.T) {
} }
for _, tc := range queryCases { for _, tc := range queryCases {
req := tc.params.(*pty.ReqPrivacyToken)
req.AssetExec = "coins"
tc.funcName = "ShowAmountsOfUTXO" tc.funcName = "ShowAmountsOfUTXO"
} }
testQuery(mock, queryCases, t) testQuery(mock, queryCases, t)
...@@ -99,14 +101,14 @@ func TestPrivacy_Query_ShowUTXOs4SpecifiedAmount(t *testing.T) { ...@@ -99,14 +101,14 @@ func TestPrivacy_Query_ShowUTXOs4SpecifiedAmount(t *testing.T) {
{ {
index: 1, index: 1,
params: &pty.ReqPrivacyToken{ params: &pty.ReqPrivacyToken{
Token: "bty", AssetSymbol: "bty",
}, },
expectErr: types.ErrNotFound, expectErr: types.ErrNotFound,
}, },
{ {
index: 2, index: 2,
params: &pty.ReqPrivacyToken{ params: &pty.ReqPrivacyToken{
Token: "bty", AssetSymbol: "bty",
Amount: types.Coin, Amount: types.Coin,
}, },
disableReplyCheck: true, disableReplyCheck: true,
...@@ -114,6 +116,8 @@ func TestPrivacy_Query_ShowUTXOs4SpecifiedAmount(t *testing.T) { ...@@ -114,6 +116,8 @@ func TestPrivacy_Query_ShowUTXOs4SpecifiedAmount(t *testing.T) {
} }
for _, tc := range queryCases { for _, tc := range queryCases {
req := tc.params.(*pty.ReqPrivacyToken)
req.AssetExec = "coins"
tc.funcName = "ShowUTXOs4SpecifiedAmount" tc.funcName = "ShowUTXOs4SpecifiedAmount"
} }
testQuery(mock, queryCases, t) testQuery(mock, queryCases, t)
...@@ -139,7 +143,7 @@ func TestPrivacy_Query_GetUTXOGlobalIndex(t *testing.T) { ...@@ -139,7 +143,7 @@ func TestPrivacy_Query_GetUTXOGlobalIndex(t *testing.T) {
{ {
index: 2, index: 2,
params: &pty.ReqUTXOGlobalIndex{ params: &pty.ReqUTXOGlobalIndex{
Tokenname: "btc", AssetSymbol: "btc",
MixCount: 1, MixCount: 1,
Amount: []int64{types.Coin}, Amount: []int64{types.Coin},
}, },
...@@ -149,7 +153,7 @@ func TestPrivacy_Query_GetUTXOGlobalIndex(t *testing.T) { ...@@ -149,7 +153,7 @@ func TestPrivacy_Query_GetUTXOGlobalIndex(t *testing.T) {
{ {
index: 3, index: 3,
params: &pty.ReqUTXOGlobalIndex{ params: &pty.ReqUTXOGlobalIndex{
Tokenname: "bty", AssetSymbol: "bty",
MixCount: 1, MixCount: 1,
Amount: []int64{types.Coin, types.Coin * 2}, Amount: []int64{types.Coin, types.Coin * 2},
}, },
...@@ -159,7 +163,7 @@ func TestPrivacy_Query_GetUTXOGlobalIndex(t *testing.T) { ...@@ -159,7 +163,7 @@ func TestPrivacy_Query_GetUTXOGlobalIndex(t *testing.T) {
{ {
index: 4, index: 4,
params: &pty.ReqUTXOGlobalIndex{ params: &pty.ReqUTXOGlobalIndex{
Tokenname: "bty", AssetSymbol: "bty",
MixCount: 1, MixCount: 1,
Amount: []int64{types.Coin}, Amount: []int64{types.Coin},
}, },
...@@ -168,6 +172,10 @@ func TestPrivacy_Query_GetUTXOGlobalIndex(t *testing.T) { ...@@ -168,6 +172,10 @@ func TestPrivacy_Query_GetUTXOGlobalIndex(t *testing.T) {
} }
for _, tc := range queryCases { for _, tc := range queryCases {
req := tc.params.(*pty.ReqUTXOGlobalIndex)
if req.AssetExec == "" {
req.AssetExec = "coins"
}
tc.funcName = "GetUTXOGlobalIndex" tc.funcName = "GetUTXOGlobalIndex"
} }
testQuery(mock, queryCases, t) testQuery(mock, queryCases, t)
......
...@@ -108,8 +108,9 @@ message ResUTXOPubKeys { ...@@ -108,8 +108,9 @@ message ResUTXOPubKeys {
} }
message ReqPrivacyToken { message ReqPrivacyToken {
string token = 1; string assetExec = 1;
int64 amount = 2; string assetSymbol = 2;
int64 amount = 3;
} }
message AmountDetail { message AmountDetail {
...@@ -126,8 +127,9 @@ message replyUTXOsOfAmount { ...@@ -126,8 +127,9 @@ message replyUTXOsOfAmount {
} }
message ReceiptPrivacyOutput { message ReceiptPrivacyOutput {
string token = 1; string assetExec = 1;
repeated keyOutput keyoutput = 2; string assetSymbol = 2;
repeated keyOutput keyoutput = 3;
} }
//各种amount额度的UTXO在链上的数量 //各种amount额度的UTXO在链上的数量
message AmountsOfUTXO { message AmountsOfUTXO {
...@@ -245,9 +247,10 @@ message UTXOHaveTxHashs { ...@@ -245,9 +247,10 @@ message UTXOHaveTxHashs {
} }
message ReqUTXOGlobalIndex { message ReqUTXOGlobalIndex {
string tokenname = 1; string assetExec = 1;
int32 mixCount = 2; string assetSymbol = 2;
repeated int64 amount = 3; int32 mixCount = 3;
repeated int64 amount = 4;
} }
message UTXOBasic { message UTXOBasic {
...@@ -261,8 +264,6 @@ message UTXOIndex4Amount { ...@@ -261,8 +264,6 @@ message UTXOIndex4Amount {
} }
message ResUTXOGlobalIndex { message ResUTXOGlobalIndex {
string tokenname = 1;
int32 mixCount = 2;
repeated UTXOIndex4Amount utxoIndex4Amount = 3; repeated UTXOIndex4Amount utxoIndex4Amount = 3;
} }
......
...@@ -93,7 +93,7 @@ func testShowPrivacyAccountSpend(t *testing.T, jrpc *jsonclient.JSONClient) erro ...@@ -93,7 +93,7 @@ func testShowPrivacyAccountSpend(t *testing.T, jrpc *jsonclient.JSONClient) erro
} }
func testShowAmountsOfUTXO(t *testing.T, jrpc *jsonclient.JSONClient) error { func testShowAmountsOfUTXO(t *testing.T, jrpc *jsonclient.JSONClient) error {
reqPrivacyToken := pty.ReqPrivacyToken{Token: types.BTY} reqPrivacyToken := pty.ReqPrivacyToken{AssetExec: "coins", AssetSymbol: types.BTY}
var params rpctypes.Query4Jrpc var params rpctypes.Query4Jrpc
params.Execer = pty.PrivacyX params.Execer = pty.PrivacyX
params.FuncName = "ShowAmountsOfUTXO" params.FuncName = "ShowAmountsOfUTXO"
...@@ -106,7 +106,8 @@ func testShowAmountsOfUTXO(t *testing.T, jrpc *jsonclient.JSONClient) error { ...@@ -106,7 +106,8 @@ func testShowAmountsOfUTXO(t *testing.T, jrpc *jsonclient.JSONClient) error {
func testShowUTXOs4SpecifiedAmount(t *testing.T, jrpc *jsonclient.JSONClient) error { func testShowUTXOs4SpecifiedAmount(t *testing.T, jrpc *jsonclient.JSONClient) error {
reqPrivacyToken := pty.ReqPrivacyToken{ reqPrivacyToken := pty.ReqPrivacyToken{
Token: types.BTY, AssetExec: "coins",
AssetSymbol: types.BTY,
Amount: 123456, Amount: 123456,
} }
var params rpctypes.Query4Jrpc var params rpctypes.Query4Jrpc
......
...@@ -44,7 +44,7 @@ func (m *PrivacyAction) Reset() { *m = PrivacyAction{} } ...@@ -44,7 +44,7 @@ func (m *PrivacyAction) Reset() { *m = PrivacyAction{} }
func (m *PrivacyAction) String() string { return proto.CompactTextString(m) } func (m *PrivacyAction) String() string { return proto.CompactTextString(m) }
func (*PrivacyAction) ProtoMessage() {} func (*PrivacyAction) ProtoMessage() {}
func (*PrivacyAction) Descriptor() ([]byte, []int) { func (*PrivacyAction) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{0} return fileDescriptor_privacy_84669f04cb5de16e, []int{0}
} }
func (m *PrivacyAction) XXX_Unmarshal(b []byte) error { func (m *PrivacyAction) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PrivacyAction.Unmarshal(m, b) return xxx_messageInfo_PrivacyAction.Unmarshal(m, b)
...@@ -229,7 +229,7 @@ func (m *Public2Privacy) Reset() { *m = Public2Privacy{} } ...@@ -229,7 +229,7 @@ func (m *Public2Privacy) Reset() { *m = Public2Privacy{} }
func (m *Public2Privacy) String() string { return proto.CompactTextString(m) } func (m *Public2Privacy) String() string { return proto.CompactTextString(m) }
func (*Public2Privacy) ProtoMessage() {} func (*Public2Privacy) ProtoMessage() {}
func (*Public2Privacy) Descriptor() ([]byte, []int) { func (*Public2Privacy) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{1} return fileDescriptor_privacy_84669f04cb5de16e, []int{1}
} }
func (m *Public2Privacy) XXX_Unmarshal(b []byte) error { func (m *Public2Privacy) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Public2Privacy.Unmarshal(m, b) return xxx_messageInfo_Public2Privacy.Unmarshal(m, b)
...@@ -300,7 +300,7 @@ func (m *Privacy2Privacy) Reset() { *m = Privacy2Privacy{} } ...@@ -300,7 +300,7 @@ func (m *Privacy2Privacy) Reset() { *m = Privacy2Privacy{} }
func (m *Privacy2Privacy) String() string { return proto.CompactTextString(m) } func (m *Privacy2Privacy) String() string { return proto.CompactTextString(m) }
func (*Privacy2Privacy) ProtoMessage() {} func (*Privacy2Privacy) ProtoMessage() {}
func (*Privacy2Privacy) Descriptor() ([]byte, []int) { func (*Privacy2Privacy) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{2} return fileDescriptor_privacy_84669f04cb5de16e, []int{2}
} }
func (m *Privacy2Privacy) XXX_Unmarshal(b []byte) error { func (m *Privacy2Privacy) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Privacy2Privacy.Unmarshal(m, b) return xxx_messageInfo_Privacy2Privacy.Unmarshal(m, b)
...@@ -379,7 +379,7 @@ func (m *Privacy2Public) Reset() { *m = Privacy2Public{} } ...@@ -379,7 +379,7 @@ func (m *Privacy2Public) Reset() { *m = Privacy2Public{} }
func (m *Privacy2Public) String() string { return proto.CompactTextString(m) } func (m *Privacy2Public) String() string { return proto.CompactTextString(m) }
func (*Privacy2Public) ProtoMessage() {} func (*Privacy2Public) ProtoMessage() {}
func (*Privacy2Public) Descriptor() ([]byte, []int) { func (*Privacy2Public) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{3} return fileDescriptor_privacy_84669f04cb5de16e, []int{3}
} }
func (m *Privacy2Public) XXX_Unmarshal(b []byte) error { func (m *Privacy2Public) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Privacy2Public.Unmarshal(m, b) return xxx_messageInfo_Privacy2Public.Unmarshal(m, b)
...@@ -462,7 +462,7 @@ func (m *UTXOGlobalIndex) Reset() { *m = UTXOGlobalIndex{} } ...@@ -462,7 +462,7 @@ func (m *UTXOGlobalIndex) Reset() { *m = UTXOGlobalIndex{} }
func (m *UTXOGlobalIndex) String() string { return proto.CompactTextString(m) } func (m *UTXOGlobalIndex) String() string { return proto.CompactTextString(m) }
func (*UTXOGlobalIndex) ProtoMessage() {} func (*UTXOGlobalIndex) ProtoMessage() {}
func (*UTXOGlobalIndex) Descriptor() ([]byte, []int) { func (*UTXOGlobalIndex) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{4} return fileDescriptor_privacy_84669f04cb5de16e, []int{4}
} }
func (m *UTXOGlobalIndex) XXX_Unmarshal(b []byte) error { func (m *UTXOGlobalIndex) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UTXOGlobalIndex.Unmarshal(m, b) return xxx_messageInfo_UTXOGlobalIndex.Unmarshal(m, b)
...@@ -510,7 +510,7 @@ func (m *KeyInput) Reset() { *m = KeyInput{} } ...@@ -510,7 +510,7 @@ func (m *KeyInput) Reset() { *m = KeyInput{} }
func (m *KeyInput) String() string { return proto.CompactTextString(m) } func (m *KeyInput) String() string { return proto.CompactTextString(m) }
func (*KeyInput) ProtoMessage() {} func (*KeyInput) ProtoMessage() {}
func (*KeyInput) Descriptor() ([]byte, []int) { func (*KeyInput) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{5} return fileDescriptor_privacy_84669f04cb5de16e, []int{5}
} }
func (m *KeyInput) XXX_Unmarshal(b []byte) error { func (m *KeyInput) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_KeyInput.Unmarshal(m, b) return xxx_messageInfo_KeyInput.Unmarshal(m, b)
...@@ -562,7 +562,7 @@ func (m *PrivacyInput) Reset() { *m = PrivacyInput{} } ...@@ -562,7 +562,7 @@ func (m *PrivacyInput) Reset() { *m = PrivacyInput{} }
func (m *PrivacyInput) String() string { return proto.CompactTextString(m) } func (m *PrivacyInput) String() string { return proto.CompactTextString(m) }
func (*PrivacyInput) ProtoMessage() {} func (*PrivacyInput) ProtoMessage() {}
func (*PrivacyInput) Descriptor() ([]byte, []int) { func (*PrivacyInput) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{6} return fileDescriptor_privacy_84669f04cb5de16e, []int{6}
} }
func (m *PrivacyInput) XXX_Unmarshal(b []byte) error { func (m *PrivacyInput) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PrivacyInput.Unmarshal(m, b) return xxx_messageInfo_PrivacyInput.Unmarshal(m, b)
...@@ -602,7 +602,7 @@ func (m *KeyOutput) Reset() { *m = KeyOutput{} } ...@@ -602,7 +602,7 @@ func (m *KeyOutput) Reset() { *m = KeyOutput{} }
func (m *KeyOutput) String() string { return proto.CompactTextString(m) } func (m *KeyOutput) String() string { return proto.CompactTextString(m) }
func (*KeyOutput) ProtoMessage() {} func (*KeyOutput) ProtoMessage() {}
func (*KeyOutput) Descriptor() ([]byte, []int) { func (*KeyOutput) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{7} return fileDescriptor_privacy_84669f04cb5de16e, []int{7}
} }
func (m *KeyOutput) XXX_Unmarshal(b []byte) error { func (m *KeyOutput) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_KeyOutput.Unmarshal(m, b) return xxx_messageInfo_KeyOutput.Unmarshal(m, b)
...@@ -648,7 +648,7 @@ func (m *PrivacyOutput) Reset() { *m = PrivacyOutput{} } ...@@ -648,7 +648,7 @@ func (m *PrivacyOutput) Reset() { *m = PrivacyOutput{} }
func (m *PrivacyOutput) String() string { return proto.CompactTextString(m) } func (m *PrivacyOutput) String() string { return proto.CompactTextString(m) }
func (*PrivacyOutput) ProtoMessage() {} func (*PrivacyOutput) ProtoMessage() {}
func (*PrivacyOutput) Descriptor() ([]byte, []int) { func (*PrivacyOutput) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{8} return fileDescriptor_privacy_84669f04cb5de16e, []int{8}
} }
func (m *PrivacyOutput) XXX_Unmarshal(b []byte) error { func (m *PrivacyOutput) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PrivacyOutput.Unmarshal(m, b) return xxx_messageInfo_PrivacyOutput.Unmarshal(m, b)
...@@ -694,7 +694,7 @@ func (m *GroupUTXOGlobalIndex) Reset() { *m = GroupUTXOGlobalIndex{} } ...@@ -694,7 +694,7 @@ func (m *GroupUTXOGlobalIndex) Reset() { *m = GroupUTXOGlobalIndex{} }
func (m *GroupUTXOGlobalIndex) String() string { return proto.CompactTextString(m) } func (m *GroupUTXOGlobalIndex) String() string { return proto.CompactTextString(m) }
func (*GroupUTXOGlobalIndex) ProtoMessage() {} func (*GroupUTXOGlobalIndex) ProtoMessage() {}
func (*GroupUTXOGlobalIndex) Descriptor() ([]byte, []int) { func (*GroupUTXOGlobalIndex) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{9} return fileDescriptor_privacy_84669f04cb5de16e, []int{9}
} }
func (m *GroupUTXOGlobalIndex) XXX_Unmarshal(b []byte) error { func (m *GroupUTXOGlobalIndex) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GroupUTXOGlobalIndex.Unmarshal(m, b) return xxx_messageInfo_GroupUTXOGlobalIndex.Unmarshal(m, b)
...@@ -743,7 +743,7 @@ func (m *LocalUTXOItem) Reset() { *m = LocalUTXOItem{} } ...@@ -743,7 +743,7 @@ func (m *LocalUTXOItem) Reset() { *m = LocalUTXOItem{} }
func (m *LocalUTXOItem) String() string { return proto.CompactTextString(m) } func (m *LocalUTXOItem) String() string { return proto.CompactTextString(m) }
func (*LocalUTXOItem) ProtoMessage() {} func (*LocalUTXOItem) ProtoMessage() {}
func (*LocalUTXOItem) Descriptor() ([]byte, []int) { func (*LocalUTXOItem) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{10} return fileDescriptor_privacy_84669f04cb5de16e, []int{10}
} }
func (m *LocalUTXOItem) XXX_Unmarshal(b []byte) error { func (m *LocalUTXOItem) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_LocalUTXOItem.Unmarshal(m, b) return xxx_messageInfo_LocalUTXOItem.Unmarshal(m, b)
...@@ -810,7 +810,7 @@ func (m *ReqUTXOPubKeys) Reset() { *m = ReqUTXOPubKeys{} } ...@@ -810,7 +810,7 @@ func (m *ReqUTXOPubKeys) Reset() { *m = ReqUTXOPubKeys{} }
func (m *ReqUTXOPubKeys) String() string { return proto.CompactTextString(m) } func (m *ReqUTXOPubKeys) String() string { return proto.CompactTextString(m) }
func (*ReqUTXOPubKeys) ProtoMessage() {} func (*ReqUTXOPubKeys) ProtoMessage() {}
func (*ReqUTXOPubKeys) Descriptor() ([]byte, []int) { func (*ReqUTXOPubKeys) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{11} return fileDescriptor_privacy_84669f04cb5de16e, []int{11}
} }
func (m *ReqUTXOPubKeys) XXX_Unmarshal(b []byte) error { func (m *ReqUTXOPubKeys) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqUTXOPubKeys.Unmarshal(m, b) return xxx_messageInfo_ReqUTXOPubKeys.Unmarshal(m, b)
...@@ -856,7 +856,7 @@ func (m *PublicKeyData) Reset() { *m = PublicKeyData{} } ...@@ -856,7 +856,7 @@ func (m *PublicKeyData) Reset() { *m = PublicKeyData{} }
func (m *PublicKeyData) String() string { return proto.CompactTextString(m) } func (m *PublicKeyData) String() string { return proto.CompactTextString(m) }
func (*PublicKeyData) ProtoMessage() {} func (*PublicKeyData) ProtoMessage() {}
func (*PublicKeyData) Descriptor() ([]byte, []int) { func (*PublicKeyData) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{12} return fileDescriptor_privacy_84669f04cb5de16e, []int{12}
} }
func (m *PublicKeyData) XXX_Unmarshal(b []byte) error { func (m *PublicKeyData) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PublicKeyData.Unmarshal(m, b) return xxx_messageInfo_PublicKeyData.Unmarshal(m, b)
...@@ -896,7 +896,7 @@ func (m *GroupUTXOPubKey) Reset() { *m = GroupUTXOPubKey{} } ...@@ -896,7 +896,7 @@ func (m *GroupUTXOPubKey) Reset() { *m = GroupUTXOPubKey{} }
func (m *GroupUTXOPubKey) String() string { return proto.CompactTextString(m) } func (m *GroupUTXOPubKey) String() string { return proto.CompactTextString(m) }
func (*GroupUTXOPubKey) ProtoMessage() {} func (*GroupUTXOPubKey) ProtoMessage() {}
func (*GroupUTXOPubKey) Descriptor() ([]byte, []int) { func (*GroupUTXOPubKey) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{13} return fileDescriptor_privacy_84669f04cb5de16e, []int{13}
} }
func (m *GroupUTXOPubKey) XXX_Unmarshal(b []byte) error { func (m *GroupUTXOPubKey) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GroupUTXOPubKey.Unmarshal(m, b) return xxx_messageInfo_GroupUTXOPubKey.Unmarshal(m, b)
...@@ -941,7 +941,7 @@ func (m *ResUTXOPubKeys) Reset() { *m = ResUTXOPubKeys{} } ...@@ -941,7 +941,7 @@ func (m *ResUTXOPubKeys) Reset() { *m = ResUTXOPubKeys{} }
func (m *ResUTXOPubKeys) String() string { return proto.CompactTextString(m) } func (m *ResUTXOPubKeys) String() string { return proto.CompactTextString(m) }
func (*ResUTXOPubKeys) ProtoMessage() {} func (*ResUTXOPubKeys) ProtoMessage() {}
func (*ResUTXOPubKeys) Descriptor() ([]byte, []int) { func (*ResUTXOPubKeys) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{14} return fileDescriptor_privacy_84669f04cb5de16e, []int{14}
} }
func (m *ResUTXOPubKeys) XXX_Unmarshal(b []byte) error { func (m *ResUTXOPubKeys) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ResUTXOPubKeys.Unmarshal(m, b) return xxx_messageInfo_ResUTXOPubKeys.Unmarshal(m, b)
...@@ -969,8 +969,9 @@ func (m *ResUTXOPubKeys) GetGroupUTXOPubKeys() []*GroupUTXOPubKey { ...@@ -969,8 +969,9 @@ func (m *ResUTXOPubKeys) GetGroupUTXOPubKeys() []*GroupUTXOPubKey {
} }
type ReqPrivacyToken struct { type ReqPrivacyToken struct {
Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` AssetExec string `protobuf:"bytes,1,opt,name=assetExec,proto3" json:"assetExec,omitempty"`
Amount int64 `protobuf:"varint,2,opt,name=amount,proto3" json:"amount,omitempty"` AssetSymbol string `protobuf:"bytes,2,opt,name=assetSymbol,proto3" json:"assetSymbol,omitempty"`
Amount int64 `protobuf:"varint,3,opt,name=amount,proto3" json:"amount,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"` XXX_sizecache int32 `json:"-"`
...@@ -980,7 +981,7 @@ func (m *ReqPrivacyToken) Reset() { *m = ReqPrivacyToken{} } ...@@ -980,7 +981,7 @@ func (m *ReqPrivacyToken) Reset() { *m = ReqPrivacyToken{} }
func (m *ReqPrivacyToken) String() string { return proto.CompactTextString(m) } func (m *ReqPrivacyToken) String() string { return proto.CompactTextString(m) }
func (*ReqPrivacyToken) ProtoMessage() {} func (*ReqPrivacyToken) ProtoMessage() {}
func (*ReqPrivacyToken) Descriptor() ([]byte, []int) { func (*ReqPrivacyToken) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{15} return fileDescriptor_privacy_84669f04cb5de16e, []int{15}
} }
func (m *ReqPrivacyToken) XXX_Unmarshal(b []byte) error { func (m *ReqPrivacyToken) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqPrivacyToken.Unmarshal(m, b) return xxx_messageInfo_ReqPrivacyToken.Unmarshal(m, b)
...@@ -1000,9 +1001,16 @@ func (m *ReqPrivacyToken) XXX_DiscardUnknown() { ...@@ -1000,9 +1001,16 @@ func (m *ReqPrivacyToken) XXX_DiscardUnknown() {
var xxx_messageInfo_ReqPrivacyToken proto.InternalMessageInfo var xxx_messageInfo_ReqPrivacyToken proto.InternalMessageInfo
func (m *ReqPrivacyToken) GetToken() string { func (m *ReqPrivacyToken) GetAssetExec() string {
if m != nil { if m != nil {
return m.Token return m.AssetExec
}
return ""
}
func (m *ReqPrivacyToken) GetAssetSymbol() string {
if m != nil {
return m.AssetSymbol
} }
return "" return ""
} }
...@@ -1026,7 +1034,7 @@ func (m *AmountDetail) Reset() { *m = AmountDetail{} } ...@@ -1026,7 +1034,7 @@ func (m *AmountDetail) Reset() { *m = AmountDetail{} }
func (m *AmountDetail) String() string { return proto.CompactTextString(m) } func (m *AmountDetail) String() string { return proto.CompactTextString(m) }
func (*AmountDetail) ProtoMessage() {} func (*AmountDetail) ProtoMessage() {}
func (*AmountDetail) Descriptor() ([]byte, []int) { func (*AmountDetail) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{16} return fileDescriptor_privacy_84669f04cb5de16e, []int{16}
} }
func (m *AmountDetail) XXX_Unmarshal(b []byte) error { func (m *AmountDetail) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AmountDetail.Unmarshal(m, b) return xxx_messageInfo_AmountDetail.Unmarshal(m, b)
...@@ -1071,7 +1079,7 @@ func (m *ReplyPrivacyAmounts) Reset() { *m = ReplyPrivacyAmounts{} } ...@@ -1071,7 +1079,7 @@ func (m *ReplyPrivacyAmounts) Reset() { *m = ReplyPrivacyAmounts{} }
func (m *ReplyPrivacyAmounts) String() string { return proto.CompactTextString(m) } func (m *ReplyPrivacyAmounts) String() string { return proto.CompactTextString(m) }
func (*ReplyPrivacyAmounts) ProtoMessage() {} func (*ReplyPrivacyAmounts) ProtoMessage() {}
func (*ReplyPrivacyAmounts) Descriptor() ([]byte, []int) { func (*ReplyPrivacyAmounts) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{17} return fileDescriptor_privacy_84669f04cb5de16e, []int{17}
} }
func (m *ReplyPrivacyAmounts) XXX_Unmarshal(b []byte) error { func (m *ReplyPrivacyAmounts) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReplyPrivacyAmounts.Unmarshal(m, b) return xxx_messageInfo_ReplyPrivacyAmounts.Unmarshal(m, b)
...@@ -1109,7 +1117,7 @@ func (m *ReplyUTXOsOfAmount) Reset() { *m = ReplyUTXOsOfAmount{} } ...@@ -1109,7 +1117,7 @@ func (m *ReplyUTXOsOfAmount) Reset() { *m = ReplyUTXOsOfAmount{} }
func (m *ReplyUTXOsOfAmount) String() string { return proto.CompactTextString(m) } func (m *ReplyUTXOsOfAmount) String() string { return proto.CompactTextString(m) }
func (*ReplyUTXOsOfAmount) ProtoMessage() {} func (*ReplyUTXOsOfAmount) ProtoMessage() {}
func (*ReplyUTXOsOfAmount) Descriptor() ([]byte, []int) { func (*ReplyUTXOsOfAmount) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{18} return fileDescriptor_privacy_84669f04cb5de16e, []int{18}
} }
func (m *ReplyUTXOsOfAmount) XXX_Unmarshal(b []byte) error { func (m *ReplyUTXOsOfAmount) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReplyUTXOsOfAmount.Unmarshal(m, b) return xxx_messageInfo_ReplyUTXOsOfAmount.Unmarshal(m, b)
...@@ -1137,8 +1145,9 @@ func (m *ReplyUTXOsOfAmount) GetLocalUTXOItems() []*LocalUTXOItem { ...@@ -1137,8 +1145,9 @@ func (m *ReplyUTXOsOfAmount) GetLocalUTXOItems() []*LocalUTXOItem {
} }
type ReceiptPrivacyOutput struct { type ReceiptPrivacyOutput struct {
Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` AssetExec string `protobuf:"bytes,1,opt,name=assetExec,proto3" json:"assetExec,omitempty"`
Keyoutput []*KeyOutput `protobuf:"bytes,2,rep,name=keyoutput,proto3" json:"keyoutput,omitempty"` AssetSymbol string `protobuf:"bytes,2,opt,name=assetSymbol,proto3" json:"assetSymbol,omitempty"`
Keyoutput []*KeyOutput `protobuf:"bytes,3,rep,name=keyoutput,proto3" json:"keyoutput,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"` XXX_sizecache int32 `json:"-"`
...@@ -1148,7 +1157,7 @@ func (m *ReceiptPrivacyOutput) Reset() { *m = ReceiptPrivacyOutput{} } ...@@ -1148,7 +1157,7 @@ func (m *ReceiptPrivacyOutput) Reset() { *m = ReceiptPrivacyOutput{} }
func (m *ReceiptPrivacyOutput) String() string { return proto.CompactTextString(m) } func (m *ReceiptPrivacyOutput) String() string { return proto.CompactTextString(m) }
func (*ReceiptPrivacyOutput) ProtoMessage() {} func (*ReceiptPrivacyOutput) ProtoMessage() {}
func (*ReceiptPrivacyOutput) Descriptor() ([]byte, []int) { func (*ReceiptPrivacyOutput) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{19} return fileDescriptor_privacy_84669f04cb5de16e, []int{19}
} }
func (m *ReceiptPrivacyOutput) XXX_Unmarshal(b []byte) error { func (m *ReceiptPrivacyOutput) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReceiptPrivacyOutput.Unmarshal(m, b) return xxx_messageInfo_ReceiptPrivacyOutput.Unmarshal(m, b)
...@@ -1168,9 +1177,16 @@ func (m *ReceiptPrivacyOutput) XXX_DiscardUnknown() { ...@@ -1168,9 +1177,16 @@ func (m *ReceiptPrivacyOutput) XXX_DiscardUnknown() {
var xxx_messageInfo_ReceiptPrivacyOutput proto.InternalMessageInfo var xxx_messageInfo_ReceiptPrivacyOutput proto.InternalMessageInfo
func (m *ReceiptPrivacyOutput) GetToken() string { func (m *ReceiptPrivacyOutput) GetAssetExec() string {
if m != nil { if m != nil {
return m.Token return m.AssetExec
}
return ""
}
func (m *ReceiptPrivacyOutput) GetAssetSymbol() string {
if m != nil {
return m.AssetSymbol
} }
return "" return ""
} }
...@@ -1194,7 +1210,7 @@ func (m *AmountsOfUTXO) Reset() { *m = AmountsOfUTXO{} } ...@@ -1194,7 +1210,7 @@ func (m *AmountsOfUTXO) Reset() { *m = AmountsOfUTXO{} }
func (m *AmountsOfUTXO) String() string { return proto.CompactTextString(m) } func (m *AmountsOfUTXO) String() string { return proto.CompactTextString(m) }
func (*AmountsOfUTXO) ProtoMessage() {} func (*AmountsOfUTXO) ProtoMessage() {}
func (*AmountsOfUTXO) Descriptor() ([]byte, []int) { func (*AmountsOfUTXO) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{20} return fileDescriptor_privacy_84669f04cb5de16e, []int{20}
} }
func (m *AmountsOfUTXO) XXX_Unmarshal(b []byte) error { func (m *AmountsOfUTXO) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AmountsOfUTXO.Unmarshal(m, b) return xxx_messageInfo_AmountsOfUTXO.Unmarshal(m, b)
...@@ -1232,7 +1248,7 @@ func (m *TokenNamesOfUTXO) Reset() { *m = TokenNamesOfUTXO{} } ...@@ -1232,7 +1248,7 @@ func (m *TokenNamesOfUTXO) Reset() { *m = TokenNamesOfUTXO{} }
func (m *TokenNamesOfUTXO) String() string { return proto.CompactTextString(m) } func (m *TokenNamesOfUTXO) String() string { return proto.CompactTextString(m) }
func (*TokenNamesOfUTXO) ProtoMessage() {} func (*TokenNamesOfUTXO) ProtoMessage() {}
func (*TokenNamesOfUTXO) Descriptor() ([]byte, []int) { func (*TokenNamesOfUTXO) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{21} return fileDescriptor_privacy_84669f04cb5de16e, []int{21}
} }
func (m *TokenNamesOfUTXO) XXX_Unmarshal(b []byte) error { func (m *TokenNamesOfUTXO) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TokenNamesOfUTXO.Unmarshal(m, b) return xxx_messageInfo_TokenNamesOfUTXO.Unmarshal(m, b)
...@@ -1272,7 +1288,7 @@ func (m *UTXOGlobalIndex4Print) Reset() { *m = UTXOGlobalIndex4Print{} } ...@@ -1272,7 +1288,7 @@ func (m *UTXOGlobalIndex4Print) Reset() { *m = UTXOGlobalIndex4Print{} }
func (m *UTXOGlobalIndex4Print) String() string { return proto.CompactTextString(m) } func (m *UTXOGlobalIndex4Print) String() string { return proto.CompactTextString(m) }
func (*UTXOGlobalIndex4Print) ProtoMessage() {} func (*UTXOGlobalIndex4Print) ProtoMessage() {}
func (*UTXOGlobalIndex4Print) Descriptor() ([]byte, []int) { func (*UTXOGlobalIndex4Print) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{22} return fileDescriptor_privacy_84669f04cb5de16e, []int{22}
} }
func (m *UTXOGlobalIndex4Print) XXX_Unmarshal(b []byte) error { func (m *UTXOGlobalIndex4Print) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UTXOGlobalIndex4Print.Unmarshal(m, b) return xxx_messageInfo_UTXOGlobalIndex4Print.Unmarshal(m, b)
...@@ -1319,7 +1335,7 @@ func (m *KeyInput4Print) Reset() { *m = KeyInput4Print{} } ...@@ -1319,7 +1335,7 @@ func (m *KeyInput4Print) Reset() { *m = KeyInput4Print{} }
func (m *KeyInput4Print) String() string { return proto.CompactTextString(m) } func (m *KeyInput4Print) String() string { return proto.CompactTextString(m) }
func (*KeyInput4Print) ProtoMessage() {} func (*KeyInput4Print) ProtoMessage() {}
func (*KeyInput4Print) Descriptor() ([]byte, []int) { func (*KeyInput4Print) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{23} return fileDescriptor_privacy_84669f04cb5de16e, []int{23}
} }
func (m *KeyInput4Print) XXX_Unmarshal(b []byte) error { func (m *KeyInput4Print) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_KeyInput4Print.Unmarshal(m, b) return xxx_messageInfo_KeyInput4Print.Unmarshal(m, b)
...@@ -1372,7 +1388,7 @@ func (m *KeyOutput4Print) Reset() { *m = KeyOutput4Print{} } ...@@ -1372,7 +1388,7 @@ func (m *KeyOutput4Print) Reset() { *m = KeyOutput4Print{} }
func (m *KeyOutput4Print) String() string { return proto.CompactTextString(m) } func (m *KeyOutput4Print) String() string { return proto.CompactTextString(m) }
func (*KeyOutput4Print) ProtoMessage() {} func (*KeyOutput4Print) ProtoMessage() {}
func (*KeyOutput4Print) Descriptor() ([]byte, []int) { func (*KeyOutput4Print) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{24} return fileDescriptor_privacy_84669f04cb5de16e, []int{24}
} }
func (m *KeyOutput4Print) XXX_Unmarshal(b []byte) error { func (m *KeyOutput4Print) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_KeyOutput4Print.Unmarshal(m, b) return xxx_messageInfo_KeyOutput4Print.Unmarshal(m, b)
...@@ -1417,7 +1433,7 @@ func (m *PrivacyInput4Print) Reset() { *m = PrivacyInput4Print{} } ...@@ -1417,7 +1433,7 @@ func (m *PrivacyInput4Print) Reset() { *m = PrivacyInput4Print{} }
func (m *PrivacyInput4Print) String() string { return proto.CompactTextString(m) } func (m *PrivacyInput4Print) String() string { return proto.CompactTextString(m) }
func (*PrivacyInput4Print) ProtoMessage() {} func (*PrivacyInput4Print) ProtoMessage() {}
func (*PrivacyInput4Print) Descriptor() ([]byte, []int) { func (*PrivacyInput4Print) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{25} return fileDescriptor_privacy_84669f04cb5de16e, []int{25}
} }
func (m *PrivacyInput4Print) XXX_Unmarshal(b []byte) error { func (m *PrivacyInput4Print) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PrivacyInput4Print.Unmarshal(m, b) return xxx_messageInfo_PrivacyInput4Print.Unmarshal(m, b)
...@@ -1456,7 +1472,7 @@ func (m *PrivacyOutput4Print) Reset() { *m = PrivacyOutput4Print{} } ...@@ -1456,7 +1472,7 @@ func (m *PrivacyOutput4Print) Reset() { *m = PrivacyOutput4Print{} }
func (m *PrivacyOutput4Print) String() string { return proto.CompactTextString(m) } func (m *PrivacyOutput4Print) String() string { return proto.CompactTextString(m) }
func (*PrivacyOutput4Print) ProtoMessage() {} func (*PrivacyOutput4Print) ProtoMessage() {}
func (*PrivacyOutput4Print) Descriptor() ([]byte, []int) { func (*PrivacyOutput4Print) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{26} return fileDescriptor_privacy_84669f04cb5de16e, []int{26}
} }
func (m *PrivacyOutput4Print) XXX_Unmarshal(b []byte) error { func (m *PrivacyOutput4Print) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PrivacyOutput4Print.Unmarshal(m, b) return xxx_messageInfo_PrivacyOutput4Print.Unmarshal(m, b)
...@@ -1504,7 +1520,7 @@ func (m *Public2Privacy4Print) Reset() { *m = Public2Privacy4Print{} } ...@@ -1504,7 +1520,7 @@ func (m *Public2Privacy4Print) Reset() { *m = Public2Privacy4Print{} }
func (m *Public2Privacy4Print) String() string { return proto.CompactTextString(m) } func (m *Public2Privacy4Print) String() string { return proto.CompactTextString(m) }
func (*Public2Privacy4Print) ProtoMessage() {} func (*Public2Privacy4Print) ProtoMessage() {}
func (*Public2Privacy4Print) Descriptor() ([]byte, []int) { func (*Public2Privacy4Print) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{27} return fileDescriptor_privacy_84669f04cb5de16e, []int{27}
} }
func (m *Public2Privacy4Print) XXX_Unmarshal(b []byte) error { func (m *Public2Privacy4Print) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Public2Privacy4Print.Unmarshal(m, b) return xxx_messageInfo_Public2Privacy4Print.Unmarshal(m, b)
...@@ -1567,7 +1583,7 @@ func (m *Privacy2Privacy4Print) Reset() { *m = Privacy2Privacy4Print{} } ...@@ -1567,7 +1583,7 @@ func (m *Privacy2Privacy4Print) Reset() { *m = Privacy2Privacy4Print{} }
func (m *Privacy2Privacy4Print) String() string { return proto.CompactTextString(m) } func (m *Privacy2Privacy4Print) String() string { return proto.CompactTextString(m) }
func (*Privacy2Privacy4Print) ProtoMessage() {} func (*Privacy2Privacy4Print) ProtoMessage() {}
func (*Privacy2Privacy4Print) Descriptor() ([]byte, []int) { func (*Privacy2Privacy4Print) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{28} return fileDescriptor_privacy_84669f04cb5de16e, []int{28}
} }
func (m *Privacy2Privacy4Print) XXX_Unmarshal(b []byte) error { func (m *Privacy2Privacy4Print) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Privacy2Privacy4Print.Unmarshal(m, b) return xxx_messageInfo_Privacy2Privacy4Print.Unmarshal(m, b)
...@@ -1637,7 +1653,7 @@ func (m *Privacy2Public4Print) Reset() { *m = Privacy2Public4Print{} } ...@@ -1637,7 +1653,7 @@ func (m *Privacy2Public4Print) Reset() { *m = Privacy2Public4Print{} }
func (m *Privacy2Public4Print) String() string { return proto.CompactTextString(m) } func (m *Privacy2Public4Print) String() string { return proto.CompactTextString(m) }
func (*Privacy2Public4Print) ProtoMessage() {} func (*Privacy2Public4Print) ProtoMessage() {}
func (*Privacy2Public4Print) Descriptor() ([]byte, []int) { func (*Privacy2Public4Print) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{29} return fileDescriptor_privacy_84669f04cb5de16e, []int{29}
} }
func (m *Privacy2Public4Print) XXX_Unmarshal(b []byte) error { func (m *Privacy2Public4Print) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Privacy2Public4Print.Unmarshal(m, b) return xxx_messageInfo_Privacy2Public4Print.Unmarshal(m, b)
...@@ -1708,7 +1724,7 @@ func (m *PrivacyAction4Print) Reset() { *m = PrivacyAction4Print{} } ...@@ -1708,7 +1724,7 @@ func (m *PrivacyAction4Print) Reset() { *m = PrivacyAction4Print{} }
func (m *PrivacyAction4Print) String() string { return proto.CompactTextString(m) } func (m *PrivacyAction4Print) String() string { return proto.CompactTextString(m) }
func (*PrivacyAction4Print) ProtoMessage() {} func (*PrivacyAction4Print) ProtoMessage() {}
func (*PrivacyAction4Print) Descriptor() ([]byte, []int) { func (*PrivacyAction4Print) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{30} return fileDescriptor_privacy_84669f04cb5de16e, []int{30}
} }
func (m *PrivacyAction4Print) XXX_Unmarshal(b []byte) error { func (m *PrivacyAction4Print) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PrivacyAction4Print.Unmarshal(m, b) return xxx_messageInfo_PrivacyAction4Print.Unmarshal(m, b)
...@@ -1892,7 +1908,7 @@ func (m *ReplyPrivacyPkPair) Reset() { *m = ReplyPrivacyPkPair{} } ...@@ -1892,7 +1908,7 @@ func (m *ReplyPrivacyPkPair) Reset() { *m = ReplyPrivacyPkPair{} }
func (m *ReplyPrivacyPkPair) String() string { return proto.CompactTextString(m) } func (m *ReplyPrivacyPkPair) String() string { return proto.CompactTextString(m) }
func (*ReplyPrivacyPkPair) ProtoMessage() {} func (*ReplyPrivacyPkPair) ProtoMessage() {}
func (*ReplyPrivacyPkPair) Descriptor() ([]byte, []int) { func (*ReplyPrivacyPkPair) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{31} return fileDescriptor_privacy_84669f04cb5de16e, []int{31}
} }
func (m *ReplyPrivacyPkPair) XXX_Unmarshal(b []byte) error { func (m *ReplyPrivacyPkPair) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReplyPrivacyPkPair.Unmarshal(m, b) return xxx_messageInfo_ReplyPrivacyPkPair.Unmarshal(m, b)
...@@ -1938,7 +1954,7 @@ func (m *ReqPrivBal4AddrToken) Reset() { *m = ReqPrivBal4AddrToken{} } ...@@ -1938,7 +1954,7 @@ func (m *ReqPrivBal4AddrToken) Reset() { *m = ReqPrivBal4AddrToken{} }
func (m *ReqPrivBal4AddrToken) String() string { return proto.CompactTextString(m) } func (m *ReqPrivBal4AddrToken) String() string { return proto.CompactTextString(m) }
func (*ReqPrivBal4AddrToken) ProtoMessage() {} func (*ReqPrivBal4AddrToken) ProtoMessage() {}
func (*ReqPrivBal4AddrToken) Descriptor() ([]byte, []int) { func (*ReqPrivBal4AddrToken) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{32} return fileDescriptor_privacy_84669f04cb5de16e, []int{32}
} }
func (m *ReqPrivBal4AddrToken) XXX_Unmarshal(b []byte) error { func (m *ReqPrivBal4AddrToken) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqPrivBal4AddrToken.Unmarshal(m, b) return xxx_messageInfo_ReqPrivBal4AddrToken.Unmarshal(m, b)
...@@ -1984,7 +2000,7 @@ func (m *ReplyPrivacyBalance) Reset() { *m = ReplyPrivacyBalance{} } ...@@ -1984,7 +2000,7 @@ func (m *ReplyPrivacyBalance) Reset() { *m = ReplyPrivacyBalance{} }
func (m *ReplyPrivacyBalance) String() string { return proto.CompactTextString(m) } func (m *ReplyPrivacyBalance) String() string { return proto.CompactTextString(m) }
func (*ReplyPrivacyBalance) ProtoMessage() {} func (*ReplyPrivacyBalance) ProtoMessage() {}
func (*ReplyPrivacyBalance) Descriptor() ([]byte, []int) { func (*ReplyPrivacyBalance) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{33} return fileDescriptor_privacy_84669f04cb5de16e, []int{33}
} }
func (m *ReplyPrivacyBalance) XXX_Unmarshal(b []byte) error { func (m *ReplyPrivacyBalance) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReplyPrivacyBalance.Unmarshal(m, b) return xxx_messageInfo_ReplyPrivacyBalance.Unmarshal(m, b)
...@@ -2038,7 +2054,7 @@ func (m *PrivacyDBStore) Reset() { *m = PrivacyDBStore{} } ...@@ -2038,7 +2054,7 @@ func (m *PrivacyDBStore) Reset() { *m = PrivacyDBStore{} }
func (m *PrivacyDBStore) String() string { return proto.CompactTextString(m) } func (m *PrivacyDBStore) String() string { return proto.CompactTextString(m) }
func (*PrivacyDBStore) ProtoMessage() {} func (*PrivacyDBStore) ProtoMessage() {}
func (*PrivacyDBStore) Descriptor() ([]byte, []int) { func (*PrivacyDBStore) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{34} return fileDescriptor_privacy_84669f04cb5de16e, []int{34}
} }
func (m *PrivacyDBStore) XXX_Unmarshal(b []byte) error { func (m *PrivacyDBStore) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PrivacyDBStore.Unmarshal(m, b) return xxx_messageInfo_PrivacyDBStore.Unmarshal(m, b)
...@@ -2140,7 +2156,7 @@ func (m *UTXO) Reset() { *m = UTXO{} } ...@@ -2140,7 +2156,7 @@ func (m *UTXO) Reset() { *m = UTXO{} }
func (m *UTXO) String() string { return proto.CompactTextString(m) } func (m *UTXO) String() string { return proto.CompactTextString(m) }
func (*UTXO) ProtoMessage() {} func (*UTXO) ProtoMessage() {}
func (*UTXO) Descriptor() ([]byte, []int) { func (*UTXO) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{35} return fileDescriptor_privacy_84669f04cb5de16e, []int{35}
} }
func (m *UTXO) XXX_Unmarshal(b []byte) error { func (m *UTXO) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UTXO.Unmarshal(m, b) return xxx_messageInfo_UTXO.Unmarshal(m, b)
...@@ -2187,7 +2203,7 @@ func (m *UTXOHaveTxHash) Reset() { *m = UTXOHaveTxHash{} } ...@@ -2187,7 +2203,7 @@ func (m *UTXOHaveTxHash) Reset() { *m = UTXOHaveTxHash{} }
func (m *UTXOHaveTxHash) String() string { return proto.CompactTextString(m) } func (m *UTXOHaveTxHash) String() string { return proto.CompactTextString(m) }
func (*UTXOHaveTxHash) ProtoMessage() {} func (*UTXOHaveTxHash) ProtoMessage() {}
func (*UTXOHaveTxHash) Descriptor() ([]byte, []int) { func (*UTXOHaveTxHash) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{36} return fileDescriptor_privacy_84669f04cb5de16e, []int{36}
} }
func (m *UTXOHaveTxHash) XXX_Unmarshal(b []byte) error { func (m *UTXOHaveTxHash) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UTXOHaveTxHash.Unmarshal(m, b) return xxx_messageInfo_UTXOHaveTxHash.Unmarshal(m, b)
...@@ -2239,7 +2255,7 @@ func (m *UTXOs) Reset() { *m = UTXOs{} } ...@@ -2239,7 +2255,7 @@ func (m *UTXOs) Reset() { *m = UTXOs{} }
func (m *UTXOs) String() string { return proto.CompactTextString(m) } func (m *UTXOs) String() string { return proto.CompactTextString(m) }
func (*UTXOs) ProtoMessage() {} func (*UTXOs) ProtoMessage() {}
func (*UTXOs) Descriptor() ([]byte, []int) { func (*UTXOs) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{37} return fileDescriptor_privacy_84669f04cb5de16e, []int{37}
} }
func (m *UTXOs) XXX_Unmarshal(b []byte) error { func (m *UTXOs) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UTXOs.Unmarshal(m, b) return xxx_messageInfo_UTXOs.Unmarshal(m, b)
...@@ -2277,7 +2293,7 @@ func (m *UTXOHaveTxHashs) Reset() { *m = UTXOHaveTxHashs{} } ...@@ -2277,7 +2293,7 @@ func (m *UTXOHaveTxHashs) Reset() { *m = UTXOHaveTxHashs{} }
func (m *UTXOHaveTxHashs) String() string { return proto.CompactTextString(m) } func (m *UTXOHaveTxHashs) String() string { return proto.CompactTextString(m) }
func (*UTXOHaveTxHashs) ProtoMessage() {} func (*UTXOHaveTxHashs) ProtoMessage() {}
func (*UTXOHaveTxHashs) Descriptor() ([]byte, []int) { func (*UTXOHaveTxHashs) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{38} return fileDescriptor_privacy_84669f04cb5de16e, []int{38}
} }
func (m *UTXOHaveTxHashs) XXX_Unmarshal(b []byte) error { func (m *UTXOHaveTxHashs) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UTXOHaveTxHashs.Unmarshal(m, b) return xxx_messageInfo_UTXOHaveTxHashs.Unmarshal(m, b)
...@@ -2305,9 +2321,10 @@ func (m *UTXOHaveTxHashs) GetUtxoHaveTxHashs() []*UTXOHaveTxHash { ...@@ -2305,9 +2321,10 @@ func (m *UTXOHaveTxHashs) GetUtxoHaveTxHashs() []*UTXOHaveTxHash {
} }
type ReqUTXOGlobalIndex struct { type ReqUTXOGlobalIndex struct {
Tokenname string `protobuf:"bytes,1,opt,name=tokenname,proto3" json:"tokenname,omitempty"` AssetExec string `protobuf:"bytes,1,opt,name=assetExec,proto3" json:"assetExec,omitempty"`
MixCount int32 `protobuf:"varint,2,opt,name=mixCount,proto3" json:"mixCount,omitempty"` AssetSymbol string `protobuf:"bytes,2,opt,name=assetSymbol,proto3" json:"assetSymbol,omitempty"`
Amount []int64 `protobuf:"varint,3,rep,packed,name=amount,proto3" json:"amount,omitempty"` MixCount int32 `protobuf:"varint,3,opt,name=mixCount,proto3" json:"mixCount,omitempty"`
Amount []int64 `protobuf:"varint,4,rep,packed,name=amount,proto3" json:"amount,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"` XXX_sizecache int32 `json:"-"`
...@@ -2317,7 +2334,7 @@ func (m *ReqUTXOGlobalIndex) Reset() { *m = ReqUTXOGlobalIndex{} } ...@@ -2317,7 +2334,7 @@ func (m *ReqUTXOGlobalIndex) Reset() { *m = ReqUTXOGlobalIndex{} }
func (m *ReqUTXOGlobalIndex) String() string { return proto.CompactTextString(m) } func (m *ReqUTXOGlobalIndex) String() string { return proto.CompactTextString(m) }
func (*ReqUTXOGlobalIndex) ProtoMessage() {} func (*ReqUTXOGlobalIndex) ProtoMessage() {}
func (*ReqUTXOGlobalIndex) Descriptor() ([]byte, []int) { func (*ReqUTXOGlobalIndex) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{39} return fileDescriptor_privacy_84669f04cb5de16e, []int{39}
} }
func (m *ReqUTXOGlobalIndex) XXX_Unmarshal(b []byte) error { func (m *ReqUTXOGlobalIndex) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqUTXOGlobalIndex.Unmarshal(m, b) return xxx_messageInfo_ReqUTXOGlobalIndex.Unmarshal(m, b)
...@@ -2337,9 +2354,16 @@ func (m *ReqUTXOGlobalIndex) XXX_DiscardUnknown() { ...@@ -2337,9 +2354,16 @@ func (m *ReqUTXOGlobalIndex) XXX_DiscardUnknown() {
var xxx_messageInfo_ReqUTXOGlobalIndex proto.InternalMessageInfo var xxx_messageInfo_ReqUTXOGlobalIndex proto.InternalMessageInfo
func (m *ReqUTXOGlobalIndex) GetTokenname() string { func (m *ReqUTXOGlobalIndex) GetAssetExec() string {
if m != nil { if m != nil {
return m.Tokenname return m.AssetExec
}
return ""
}
func (m *ReqUTXOGlobalIndex) GetAssetSymbol() string {
if m != nil {
return m.AssetSymbol
} }
return "" return ""
} }
...@@ -2370,7 +2394,7 @@ func (m *UTXOBasic) Reset() { *m = UTXOBasic{} } ...@@ -2370,7 +2394,7 @@ func (m *UTXOBasic) Reset() { *m = UTXOBasic{} }
func (m *UTXOBasic) String() string { return proto.CompactTextString(m) } func (m *UTXOBasic) String() string { return proto.CompactTextString(m) }
func (*UTXOBasic) ProtoMessage() {} func (*UTXOBasic) ProtoMessage() {}
func (*UTXOBasic) Descriptor() ([]byte, []int) { func (*UTXOBasic) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{40} return fileDescriptor_privacy_84669f04cb5de16e, []int{40}
} }
func (m *UTXOBasic) XXX_Unmarshal(b []byte) error { func (m *UTXOBasic) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UTXOBasic.Unmarshal(m, b) return xxx_messageInfo_UTXOBasic.Unmarshal(m, b)
...@@ -2416,7 +2440,7 @@ func (m *UTXOIndex4Amount) Reset() { *m = UTXOIndex4Amount{} } ...@@ -2416,7 +2440,7 @@ func (m *UTXOIndex4Amount) Reset() { *m = UTXOIndex4Amount{} }
func (m *UTXOIndex4Amount) String() string { return proto.CompactTextString(m) } func (m *UTXOIndex4Amount) String() string { return proto.CompactTextString(m) }
func (*UTXOIndex4Amount) ProtoMessage() {} func (*UTXOIndex4Amount) ProtoMessage() {}
func (*UTXOIndex4Amount) Descriptor() ([]byte, []int) { func (*UTXOIndex4Amount) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{41} return fileDescriptor_privacy_84669f04cb5de16e, []int{41}
} }
func (m *UTXOIndex4Amount) XXX_Unmarshal(b []byte) error { func (m *UTXOIndex4Amount) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UTXOIndex4Amount.Unmarshal(m, b) return xxx_messageInfo_UTXOIndex4Amount.Unmarshal(m, b)
...@@ -2451,8 +2475,6 @@ func (m *UTXOIndex4Amount) GetUtxos() []*UTXOBasic { ...@@ -2451,8 +2475,6 @@ func (m *UTXOIndex4Amount) GetUtxos() []*UTXOBasic {
} }
type ResUTXOGlobalIndex struct { type ResUTXOGlobalIndex struct {
Tokenname string `protobuf:"bytes,1,opt,name=tokenname,proto3" json:"tokenname,omitempty"`
MixCount int32 `protobuf:"varint,2,opt,name=mixCount,proto3" json:"mixCount,omitempty"`
UtxoIndex4Amount []*UTXOIndex4Amount `protobuf:"bytes,3,rep,name=utxoIndex4Amount,proto3" json:"utxoIndex4Amount,omitempty"` UtxoIndex4Amount []*UTXOIndex4Amount `protobuf:"bytes,3,rep,name=utxoIndex4Amount,proto3" json:"utxoIndex4Amount,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
...@@ -2463,7 +2485,7 @@ func (m *ResUTXOGlobalIndex) Reset() { *m = ResUTXOGlobalIndex{} } ...@@ -2463,7 +2485,7 @@ func (m *ResUTXOGlobalIndex) Reset() { *m = ResUTXOGlobalIndex{} }
func (m *ResUTXOGlobalIndex) String() string { return proto.CompactTextString(m) } func (m *ResUTXOGlobalIndex) String() string { return proto.CompactTextString(m) }
func (*ResUTXOGlobalIndex) ProtoMessage() {} func (*ResUTXOGlobalIndex) ProtoMessage() {}
func (*ResUTXOGlobalIndex) Descriptor() ([]byte, []int) { func (*ResUTXOGlobalIndex) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{42} return fileDescriptor_privacy_84669f04cb5de16e, []int{42}
} }
func (m *ResUTXOGlobalIndex) XXX_Unmarshal(b []byte) error { func (m *ResUTXOGlobalIndex) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ResUTXOGlobalIndex.Unmarshal(m, b) return xxx_messageInfo_ResUTXOGlobalIndex.Unmarshal(m, b)
...@@ -2483,20 +2505,6 @@ func (m *ResUTXOGlobalIndex) XXX_DiscardUnknown() { ...@@ -2483,20 +2505,6 @@ func (m *ResUTXOGlobalIndex) XXX_DiscardUnknown() {
var xxx_messageInfo_ResUTXOGlobalIndex proto.InternalMessageInfo var xxx_messageInfo_ResUTXOGlobalIndex proto.InternalMessageInfo
func (m *ResUTXOGlobalIndex) GetTokenname() string {
if m != nil {
return m.Tokenname
}
return ""
}
func (m *ResUTXOGlobalIndex) GetMixCount() int32 {
if m != nil {
return m.MixCount
}
return 0
}
func (m *ResUTXOGlobalIndex) GetUtxoIndex4Amount() []*UTXOIndex4Amount { func (m *ResUTXOGlobalIndex) GetUtxoIndex4Amount() []*UTXOIndex4Amount {
if m != nil { if m != nil {
return m.UtxoIndex4Amount return m.UtxoIndex4Amount
...@@ -2520,7 +2528,7 @@ func (m *FTXOsSTXOsInOneTx) Reset() { *m = FTXOsSTXOsInOneTx{} } ...@@ -2520,7 +2528,7 @@ func (m *FTXOsSTXOsInOneTx) Reset() { *m = FTXOsSTXOsInOneTx{} }
func (m *FTXOsSTXOsInOneTx) String() string { return proto.CompactTextString(m) } func (m *FTXOsSTXOsInOneTx) String() string { return proto.CompactTextString(m) }
func (*FTXOsSTXOsInOneTx) ProtoMessage() {} func (*FTXOsSTXOsInOneTx) ProtoMessage() {}
func (*FTXOsSTXOsInOneTx) Descriptor() ([]byte, []int) { func (*FTXOsSTXOsInOneTx) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{43} return fileDescriptor_privacy_84669f04cb5de16e, []int{43}
} }
func (m *FTXOsSTXOsInOneTx) XXX_Unmarshal(b []byte) error { func (m *FTXOsSTXOsInOneTx) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FTXOsSTXOsInOneTx.Unmarshal(m, b) return xxx_messageInfo_FTXOsSTXOsInOneTx.Unmarshal(m, b)
...@@ -2587,7 +2595,7 @@ func (m *RealKeyInput) Reset() { *m = RealKeyInput{} } ...@@ -2587,7 +2595,7 @@ func (m *RealKeyInput) Reset() { *m = RealKeyInput{} }
func (m *RealKeyInput) String() string { return proto.CompactTextString(m) } func (m *RealKeyInput) String() string { return proto.CompactTextString(m) }
func (*RealKeyInput) ProtoMessage() {} func (*RealKeyInput) ProtoMessage() {}
func (*RealKeyInput) Descriptor() ([]byte, []int) { func (*RealKeyInput) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{44} return fileDescriptor_privacy_84669f04cb5de16e, []int{44}
} }
func (m *RealKeyInput) XXX_Unmarshal(b []byte) error { func (m *RealKeyInput) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RealKeyInput.Unmarshal(m, b) return xxx_messageInfo_RealKeyInput.Unmarshal(m, b)
...@@ -2632,7 +2640,7 @@ func (m *UTXOBasics) Reset() { *m = UTXOBasics{} } ...@@ -2632,7 +2640,7 @@ func (m *UTXOBasics) Reset() { *m = UTXOBasics{} }
func (m *UTXOBasics) String() string { return proto.CompactTextString(m) } func (m *UTXOBasics) String() string { return proto.CompactTextString(m) }
func (*UTXOBasics) ProtoMessage() {} func (*UTXOBasics) ProtoMessage() {}
func (*UTXOBasics) Descriptor() ([]byte, []int) { func (*UTXOBasics) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{45} return fileDescriptor_privacy_84669f04cb5de16e, []int{45}
} }
func (m *UTXOBasics) XXX_Unmarshal(b []byte) error { func (m *UTXOBasics) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UTXOBasics.Unmarshal(m, b) return xxx_messageInfo_UTXOBasics.Unmarshal(m, b)
...@@ -2684,7 +2692,7 @@ func (m *CreateTransactionCache) Reset() { *m = CreateTransactionCache{} ...@@ -2684,7 +2692,7 @@ func (m *CreateTransactionCache) Reset() { *m = CreateTransactionCache{}
func (m *CreateTransactionCache) String() string { return proto.CompactTextString(m) } func (m *CreateTransactionCache) String() string { return proto.CompactTextString(m) }
func (*CreateTransactionCache) ProtoMessage() {} func (*CreateTransactionCache) ProtoMessage() {}
func (*CreateTransactionCache) Descriptor() ([]byte, []int) { func (*CreateTransactionCache) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{46} return fileDescriptor_privacy_84669f04cb5de16e, []int{46}
} }
func (m *CreateTransactionCache) XXX_Unmarshal(b []byte) error { func (m *CreateTransactionCache) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CreateTransactionCache.Unmarshal(m, b) return xxx_messageInfo_CreateTransactionCache.Unmarshal(m, b)
...@@ -2779,7 +2787,7 @@ func (m *ReqCacheTxList) Reset() { *m = ReqCacheTxList{} } ...@@ -2779,7 +2787,7 @@ func (m *ReqCacheTxList) Reset() { *m = ReqCacheTxList{} }
func (m *ReqCacheTxList) String() string { return proto.CompactTextString(m) } func (m *ReqCacheTxList) String() string { return proto.CompactTextString(m) }
func (*ReqCacheTxList) ProtoMessage() {} func (*ReqCacheTxList) ProtoMessage() {}
func (*ReqCacheTxList) Descriptor() ([]byte, []int) { func (*ReqCacheTxList) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{47} return fileDescriptor_privacy_84669f04cb5de16e, []int{47}
} }
func (m *ReqCacheTxList) XXX_Unmarshal(b []byte) error { func (m *ReqCacheTxList) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqCacheTxList.Unmarshal(m, b) return xxx_messageInfo_ReqCacheTxList.Unmarshal(m, b)
...@@ -2824,7 +2832,7 @@ func (m *ReplyCacheTxList) Reset() { *m = ReplyCacheTxList{} } ...@@ -2824,7 +2832,7 @@ func (m *ReplyCacheTxList) Reset() { *m = ReplyCacheTxList{} }
func (m *ReplyCacheTxList) String() string { return proto.CompactTextString(m) } func (m *ReplyCacheTxList) String() string { return proto.CompactTextString(m) }
func (*ReplyCacheTxList) ProtoMessage() {} func (*ReplyCacheTxList) ProtoMessage() {}
func (*ReplyCacheTxList) Descriptor() ([]byte, []int) { func (*ReplyCacheTxList) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{48} return fileDescriptor_privacy_84669f04cb5de16e, []int{48}
} }
func (m *ReplyCacheTxList) XXX_Unmarshal(b []byte) error { func (m *ReplyCacheTxList) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReplyCacheTxList.Unmarshal(m, b) return xxx_messageInfo_ReplyCacheTxList.Unmarshal(m, b)
...@@ -2863,7 +2871,7 @@ func (m *ReqPrivacyAccount) Reset() { *m = ReqPrivacyAccount{} } ...@@ -2863,7 +2871,7 @@ func (m *ReqPrivacyAccount) Reset() { *m = ReqPrivacyAccount{} }
func (m *ReqPrivacyAccount) String() string { return proto.CompactTextString(m) } func (m *ReqPrivacyAccount) String() string { return proto.CompactTextString(m) }
func (*ReqPrivacyAccount) ProtoMessage() {} func (*ReqPrivacyAccount) ProtoMessage() {}
func (*ReqPrivacyAccount) Descriptor() ([]byte, []int) { func (*ReqPrivacyAccount) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{49} return fileDescriptor_privacy_84669f04cb5de16e, []int{49}
} }
func (m *ReqPrivacyAccount) XXX_Unmarshal(b []byte) error { func (m *ReqPrivacyAccount) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqPrivacyAccount.Unmarshal(m, b) return xxx_messageInfo_ReqPrivacyAccount.Unmarshal(m, b)
...@@ -2915,7 +2923,7 @@ func (m *ReqPPrivacyAccount) Reset() { *m = ReqPPrivacyAccount{} } ...@@ -2915,7 +2923,7 @@ func (m *ReqPPrivacyAccount) Reset() { *m = ReqPPrivacyAccount{} }
func (m *ReqPPrivacyAccount) String() string { return proto.CompactTextString(m) } func (m *ReqPPrivacyAccount) String() string { return proto.CompactTextString(m) }
func (*ReqPPrivacyAccount) ProtoMessage() {} func (*ReqPPrivacyAccount) ProtoMessage() {}
func (*ReqPPrivacyAccount) Descriptor() ([]byte, []int) { func (*ReqPPrivacyAccount) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{50} return fileDescriptor_privacy_84669f04cb5de16e, []int{50}
} }
func (m *ReqPPrivacyAccount) XXX_Unmarshal(b []byte) error { func (m *ReqPPrivacyAccount) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqPPrivacyAccount.Unmarshal(m, b) return xxx_messageInfo_ReqPPrivacyAccount.Unmarshal(m, b)
...@@ -2972,7 +2980,7 @@ func (m *ReplyPrivacyAccount) Reset() { *m = ReplyPrivacyAccount{} } ...@@ -2972,7 +2980,7 @@ func (m *ReplyPrivacyAccount) Reset() { *m = ReplyPrivacyAccount{} }
func (m *ReplyPrivacyAccount) String() string { return proto.CompactTextString(m) } func (m *ReplyPrivacyAccount) String() string { return proto.CompactTextString(m) }
func (*ReplyPrivacyAccount) ProtoMessage() {} func (*ReplyPrivacyAccount) ProtoMessage() {}
func (*ReplyPrivacyAccount) Descriptor() ([]byte, []int) { func (*ReplyPrivacyAccount) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{51} return fileDescriptor_privacy_84669f04cb5de16e, []int{51}
} }
func (m *ReplyPrivacyAccount) XXX_Unmarshal(b []byte) error { func (m *ReplyPrivacyAccount) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReplyPrivacyAccount.Unmarshal(m, b) return xxx_messageInfo_ReplyPrivacyAccount.Unmarshal(m, b)
...@@ -3025,7 +3033,7 @@ func (m *ReqCreateCacheTxKey) Reset() { *m = ReqCreateCacheTxKey{} } ...@@ -3025,7 +3033,7 @@ func (m *ReqCreateCacheTxKey) Reset() { *m = ReqCreateCacheTxKey{} }
func (m *ReqCreateCacheTxKey) String() string { return proto.CompactTextString(m) } func (m *ReqCreateCacheTxKey) String() string { return proto.CompactTextString(m) }
func (*ReqCreateCacheTxKey) ProtoMessage() {} func (*ReqCreateCacheTxKey) ProtoMessage() {}
func (*ReqCreateCacheTxKey) Descriptor() ([]byte, []int) { func (*ReqCreateCacheTxKey) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{52} return fileDescriptor_privacy_84669f04cb5de16e, []int{52}
} }
func (m *ReqCreateCacheTxKey) XXX_Unmarshal(b []byte) error { func (m *ReqCreateCacheTxKey) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqCreateCacheTxKey.Unmarshal(m, b) return xxx_messageInfo_ReqCreateCacheTxKey.Unmarshal(m, b)
...@@ -3079,7 +3087,7 @@ func (m *ReqPrivacyTransactionList) Reset() { *m = ReqPrivacyTransaction ...@@ -3079,7 +3087,7 @@ func (m *ReqPrivacyTransactionList) Reset() { *m = ReqPrivacyTransaction
func (m *ReqPrivacyTransactionList) String() string { return proto.CompactTextString(m) } func (m *ReqPrivacyTransactionList) String() string { return proto.CompactTextString(m) }
func (*ReqPrivacyTransactionList) ProtoMessage() {} func (*ReqPrivacyTransactionList) ProtoMessage() {}
func (*ReqPrivacyTransactionList) Descriptor() ([]byte, []int) { func (*ReqPrivacyTransactionList) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{53} return fileDescriptor_privacy_84669f04cb5de16e, []int{53}
} }
func (m *ReqPrivacyTransactionList) XXX_Unmarshal(b []byte) error { func (m *ReqPrivacyTransactionList) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqPrivacyTransactionList.Unmarshal(m, b) return xxx_messageInfo_ReqPrivacyTransactionList.Unmarshal(m, b)
...@@ -3160,7 +3168,7 @@ func (m *ReqRescanUtxos) Reset() { *m = ReqRescanUtxos{} } ...@@ -3160,7 +3168,7 @@ func (m *ReqRescanUtxos) Reset() { *m = ReqRescanUtxos{} }
func (m *ReqRescanUtxos) String() string { return proto.CompactTextString(m) } func (m *ReqRescanUtxos) String() string { return proto.CompactTextString(m) }
func (*ReqRescanUtxos) ProtoMessage() {} func (*ReqRescanUtxos) ProtoMessage() {}
func (*ReqRescanUtxos) Descriptor() ([]byte, []int) { func (*ReqRescanUtxos) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{54} return fileDescriptor_privacy_84669f04cb5de16e, []int{54}
} }
func (m *ReqRescanUtxos) XXX_Unmarshal(b []byte) error { func (m *ReqRescanUtxos) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqRescanUtxos.Unmarshal(m, b) return xxx_messageInfo_ReqRescanUtxos.Unmarshal(m, b)
...@@ -3206,7 +3214,7 @@ func (m *RepRescanResult) Reset() { *m = RepRescanResult{} } ...@@ -3206,7 +3214,7 @@ func (m *RepRescanResult) Reset() { *m = RepRescanResult{} }
func (m *RepRescanResult) String() string { return proto.CompactTextString(m) } func (m *RepRescanResult) String() string { return proto.CompactTextString(m) }
func (*RepRescanResult) ProtoMessage() {} func (*RepRescanResult) ProtoMessage() {}
func (*RepRescanResult) Descriptor() ([]byte, []int) { func (*RepRescanResult) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{55} return fileDescriptor_privacy_84669f04cb5de16e, []int{55}
} }
func (m *RepRescanResult) XXX_Unmarshal(b []byte) error { func (m *RepRescanResult) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RepRescanResult.Unmarshal(m, b) return xxx_messageInfo_RepRescanResult.Unmarshal(m, b)
...@@ -3252,7 +3260,7 @@ func (m *RepRescanUtxos) Reset() { *m = RepRescanUtxos{} } ...@@ -3252,7 +3260,7 @@ func (m *RepRescanUtxos) Reset() { *m = RepRescanUtxos{} }
func (m *RepRescanUtxos) String() string { return proto.CompactTextString(m) } func (m *RepRescanUtxos) String() string { return proto.CompactTextString(m) }
func (*RepRescanUtxos) ProtoMessage() {} func (*RepRescanUtxos) ProtoMessage() {}
func (*RepRescanUtxos) Descriptor() ([]byte, []int) { func (*RepRescanUtxos) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{56} return fileDescriptor_privacy_84669f04cb5de16e, []int{56}
} }
func (m *RepRescanUtxos) XXX_Unmarshal(b []byte) error { func (m *RepRescanUtxos) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RepRescanUtxos.Unmarshal(m, b) return xxx_messageInfo_RepRescanUtxos.Unmarshal(m, b)
...@@ -3297,7 +3305,7 @@ func (m *ReqEnablePrivacy) Reset() { *m = ReqEnablePrivacy{} } ...@@ -3297,7 +3305,7 @@ func (m *ReqEnablePrivacy) Reset() { *m = ReqEnablePrivacy{} }
func (m *ReqEnablePrivacy) String() string { return proto.CompactTextString(m) } func (m *ReqEnablePrivacy) String() string { return proto.CompactTextString(m) }
func (*ReqEnablePrivacy) ProtoMessage() {} func (*ReqEnablePrivacy) ProtoMessage() {}
func (*ReqEnablePrivacy) Descriptor() ([]byte, []int) { func (*ReqEnablePrivacy) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{57} return fileDescriptor_privacy_84669f04cb5de16e, []int{57}
} }
func (m *ReqEnablePrivacy) XXX_Unmarshal(b []byte) error { func (m *ReqEnablePrivacy) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqEnablePrivacy.Unmarshal(m, b) return xxx_messageInfo_ReqEnablePrivacy.Unmarshal(m, b)
...@@ -3337,7 +3345,7 @@ func (m *PriAddrResult) Reset() { *m = PriAddrResult{} } ...@@ -3337,7 +3345,7 @@ func (m *PriAddrResult) Reset() { *m = PriAddrResult{} }
func (m *PriAddrResult) String() string { return proto.CompactTextString(m) } func (m *PriAddrResult) String() string { return proto.CompactTextString(m) }
func (*PriAddrResult) ProtoMessage() {} func (*PriAddrResult) ProtoMessage() {}
func (*PriAddrResult) Descriptor() ([]byte, []int) { func (*PriAddrResult) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{58} return fileDescriptor_privacy_84669f04cb5de16e, []int{58}
} }
func (m *PriAddrResult) XXX_Unmarshal(b []byte) error { func (m *PriAddrResult) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PriAddrResult.Unmarshal(m, b) return xxx_messageInfo_PriAddrResult.Unmarshal(m, b)
...@@ -3389,7 +3397,7 @@ func (m *RepEnablePrivacy) Reset() { *m = RepEnablePrivacy{} } ...@@ -3389,7 +3397,7 @@ func (m *RepEnablePrivacy) Reset() { *m = RepEnablePrivacy{} }
func (m *RepEnablePrivacy) String() string { return proto.CompactTextString(m) } func (m *RepEnablePrivacy) String() string { return proto.CompactTextString(m) }
func (*RepEnablePrivacy) ProtoMessage() {} func (*RepEnablePrivacy) ProtoMessage() {}
func (*RepEnablePrivacy) Descriptor() ([]byte, []int) { func (*RepEnablePrivacy) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{59} return fileDescriptor_privacy_84669f04cb5de16e, []int{59}
} }
func (m *RepEnablePrivacy) XXX_Unmarshal(b []byte) error { func (m *RepEnablePrivacy) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RepEnablePrivacy.Unmarshal(m, b) return xxx_messageInfo_RepEnablePrivacy.Unmarshal(m, b)
...@@ -3430,7 +3438,7 @@ func (m *PrivacySignatureParam) Reset() { *m = PrivacySignatureParam{} } ...@@ -3430,7 +3438,7 @@ func (m *PrivacySignatureParam) Reset() { *m = PrivacySignatureParam{} }
func (m *PrivacySignatureParam) String() string { return proto.CompactTextString(m) } func (m *PrivacySignatureParam) String() string { return proto.CompactTextString(m) }
func (*PrivacySignatureParam) ProtoMessage() {} func (*PrivacySignatureParam) ProtoMessage() {}
func (*PrivacySignatureParam) Descriptor() ([]byte, []int) { func (*PrivacySignatureParam) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{60} return fileDescriptor_privacy_84669f04cb5de16e, []int{60}
} }
func (m *PrivacySignatureParam) XXX_Unmarshal(b []byte) error { func (m *PrivacySignatureParam) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PrivacySignatureParam.Unmarshal(m, b) return xxx_messageInfo_PrivacySignatureParam.Unmarshal(m, b)
...@@ -3485,7 +3493,7 @@ func (m *WalletAccountPrivacy) Reset() { *m = WalletAccountPrivacy{} } ...@@ -3485,7 +3493,7 @@ func (m *WalletAccountPrivacy) Reset() { *m = WalletAccountPrivacy{} }
func (m *WalletAccountPrivacy) String() string { return proto.CompactTextString(m) } func (m *WalletAccountPrivacy) String() string { return proto.CompactTextString(m) }
func (*WalletAccountPrivacy) ProtoMessage() {} func (*WalletAccountPrivacy) ProtoMessage() {}
func (*WalletAccountPrivacy) Descriptor() ([]byte, []int) { func (*WalletAccountPrivacy) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{61} return fileDescriptor_privacy_84669f04cb5de16e, []int{61}
} }
func (m *WalletAccountPrivacy) XXX_Unmarshal(b []byte) error { func (m *WalletAccountPrivacy) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_WalletAccountPrivacy.Unmarshal(m, b) return xxx_messageInfo_WalletAccountPrivacy.Unmarshal(m, b)
...@@ -3558,7 +3566,7 @@ func (m *ReqCreatePrivacyTx) Reset() { *m = ReqCreatePrivacyTx{} } ...@@ -3558,7 +3566,7 @@ func (m *ReqCreatePrivacyTx) Reset() { *m = ReqCreatePrivacyTx{} }
func (m *ReqCreatePrivacyTx) String() string { return proto.CompactTextString(m) } func (m *ReqCreatePrivacyTx) String() string { return proto.CompactTextString(m) }
func (*ReqCreatePrivacyTx) ProtoMessage() {} func (*ReqCreatePrivacyTx) ProtoMessage() {}
func (*ReqCreatePrivacyTx) Descriptor() ([]byte, []int) { func (*ReqCreatePrivacyTx) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_b04022b2c709b5e6, []int{62} return fileDescriptor_privacy_84669f04cb5de16e, []int{62}
} }
func (m *ReqCreatePrivacyTx) XXX_Unmarshal(b []byte) error { func (m *ReqCreatePrivacyTx) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqCreatePrivacyTx.Unmarshal(m, b) return xxx_messageInfo_ReqCreatePrivacyTx.Unmarshal(m, b)
...@@ -3897,152 +3905,153 @@ var _Privacy_serviceDesc = grpc.ServiceDesc{ ...@@ -3897,152 +3905,153 @@ var _Privacy_serviceDesc = grpc.ServiceDesc{
Metadata: "privacy.proto", Metadata: "privacy.proto",
} }
func init() { proto.RegisterFile("privacy.proto", fileDescriptor_privacy_b04022b2c709b5e6) } func init() { proto.RegisterFile("privacy.proto", fileDescriptor_privacy_84669f04cb5de16e) }
var fileDescriptor_privacy_b04022b2c709b5e6 = []byte{ var fileDescriptor_privacy_84669f04cb5de16e = []byte{
// 2295 bytes of a gzipped FileDescriptorProto // 2318 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x19, 0x4b, 0x6f, 0x1c, 0x49, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x39, 0x4d, 0x6f, 0x1c, 0x49,
0x39, 0x3d, 0xe3, 0xb1, 0x3d, 0x9f, 0xc7, 0xf6, 0xa4, 0x76, 0xec, 0x75, 0x26, 0x51, 0x14, 0x6a, 0xd9, 0xee, 0x19, 0x8f, 0xed, 0x7e, 0x3c, 0xb6, 0x27, 0x15, 0xdb, 0xeb, 0x4c, 0xa2, 0xc8, 0x6f,
0x57, 0x21, 0x2c, 0xc8, 0x68, 0x83, 0xa5, 0x7d, 0x10, 0x94, 0xf5, 0x38, 0x4e, 0x62, 0x79, 0x13, 0xed, 0x2a, 0x6f, 0x58, 0x90, 0xd1, 0x06, 0x4b, 0xfb, 0x41, 0xd0, 0xae, 0xc7, 0x71, 0x12, 0xcb,
0x9b, 0xb2, 0x57, 0x20, 0xb4, 0x48, 0x94, 0x7b, 0xca, 0x76, 0xcb, 0x3d, 0xdd, 0xed, 0xee, 0x1e, 0x9b, 0xd8, 0x94, 0xbd, 0xe2, 0x43, 0x20, 0x51, 0xd3, 0x53, 0x1e, 0xb7, 0xdc, 0xd3, 0xdd, 0xee,
0x7b, 0xe6, 0xb4, 0x9c, 0x38, 0x71, 0x40, 0x62, 0x05, 0x07, 0x10, 0x37, 0x38, 0xf3, 0x27, 0xe0, 0xee, 0xb1, 0x67, 0x4e, 0xcb, 0x69, 0xc5, 0x81, 0x03, 0x87, 0x15, 0x1c, 0x40, 0xdc, 0xe0, 0xcc,
0xc4, 0x89, 0x3f, 0x80, 0xf8, 0x03, 0xfc, 0x06, 0x54, 0x8f, 0xee, 0x7a, 0x4c, 0x8f, 0x9d, 0xb0, 0x9f, 0x80, 0x13, 0x27, 0xfe, 0x00, 0xe2, 0x0f, 0xf0, 0x1b, 0x50, 0x7d, 0x74, 0x77, 0x55, 0x4d,
0xe6, 0x32, 0xea, 0xfa, 0xea, 0xab, 0xaf, 0xbe, 0xf7, 0xa3, 0x06, 0x16, 0x93, 0x34, 0xb8, 0xa0, 0x8f, 0x9d, 0x25, 0xe6, 0x32, 0xea, 0x7a, 0xea, 0xa9, 0xa7, 0x9e, 0xef, 0x8f, 0x1a, 0x58, 0x8a,
0xfe, 0x78, 0x3d, 0x49, 0xe3, 0x3c, 0x46, 0x8d, 0x7c, 0x9c, 0xb0, 0xac, 0xdb, 0xf2, 0xe3, 0xc1, 0x13, 0xff, 0x92, 0x7a, 0xe3, 0xad, 0x38, 0x89, 0xb2, 0x08, 0x35, 0xb2, 0x71, 0xcc, 0xd2, 0x76,
0x20, 0x8e, 0x24, 0xb0, 0x7b, 0x3b, 0x4f, 0x69, 0x94, 0x51, 0x3f, 0x0f, 0x0a, 0x10, 0xfe, 0x8f, 0xd3, 0x8b, 0x06, 0x83, 0x28, 0x94, 0xc0, 0xf6, 0x9d, 0x2c, 0xa1, 0x61, 0x4a, 0xbd, 0xcc, 0xcf,
0x07, 0x8b, 0xfb, 0xf2, 0xe4, 0xa6, 0x80, 0xa3, 0xa7, 0xb0, 0x94, 0x0c, 0x8f, 0xc2, 0xc0, 0x7f, 0x41, 0xf8, 0xdf, 0x0e, 0x2c, 0x1d, 0xc9, 0x93, 0x3b, 0x02, 0x8e, 0x3e, 0x85, 0xe5, 0x78, 0xd8,
0xac, 0x28, 0xae, 0x79, 0x0f, 0xbc, 0x47, 0x0b, 0x8f, 0x57, 0xd6, 0x05, 0xc9, 0xf5, 0x7d, 0xb9, 0x0d, 0x7c, 0xef, 0x89, 0xa2, 0xb8, 0xe1, 0x6c, 0x3a, 0x8f, 0x17, 0x9f, 0xac, 0x6d, 0x09, 0x92,
0xa9, 0x0e, 0xbd, 0xbc, 0x45, 0x1c, 0x74, 0xd4, 0x83, 0x65, 0xf5, 0x59, 0x52, 0xa8, 0x09, 0x0a, 0x5b, 0x47, 0x72, 0x53, 0x1d, 0x7a, 0x39, 0x43, 0x2c, 0x74, 0xd4, 0x81, 0x15, 0xf5, 0x59, 0x50,
0xab, 0x05, 0x05, 0xb5, 0xab, 0x49, 0xb8, 0x07, 0x04, 0x13, 0x05, 0x48, 0x50, 0x5f, 0xab, 0xdb, 0xa8, 0x09, 0x0a, 0xeb, 0x39, 0x05, 0xb5, 0x5b, 0x92, 0xb0, 0x0f, 0x08, 0x26, 0x72, 0x90, 0xa0,
0x4c, 0x14, 0x24, 0xc4, 0xa6, 0x60, 0xc2, 0x42, 0x47, 0x4b, 0x50, 0xcb, 0xc7, 0x6b, 0x33, 0x0f, 0xbe, 0x51, 0x37, 0x99, 0xc8, 0x49, 0x88, 0x4d, 0xc1, 0x84, 0x81, 0x8e, 0x96, 0xa1, 0x96, 0x8d,
0xbc, 0x47, 0x0d, 0x52, 0xcb, 0xc7, 0xbd, 0x39, 0x68, 0x5c, 0xd0, 0x70, 0xc8, 0xf0, 0x5f, 0x3c, 0x37, 0x66, 0x37, 0x9d, 0xc7, 0x0d, 0x52, 0xcb, 0xc6, 0x9d, 0x79, 0x68, 0x5c, 0xd2, 0x60, 0xc8,
0x58, 0xb2, 0x45, 0x40, 0xf7, 0xa0, 0x99, 0xc7, 0x67, 0x2c, 0x8a, 0xe8, 0x80, 0x09, 0x61, 0x9b, 0xf0, 0x9f, 0x1d, 0x58, 0x36, 0x45, 0x40, 0x0f, 0xc0, 0xcd, 0xa2, 0x73, 0x16, 0x86, 0x74, 0xc0,
0x44, 0x03, 0xd0, 0x2a, 0xcc, 0xd2, 0x41, 0x3c, 0x8c, 0x72, 0x21, 0x45, 0x9d, 0xa8, 0x15, 0x42, 0x84, 0xb0, 0x2e, 0x29, 0x01, 0x68, 0x1d, 0xe6, 0xe8, 0x20, 0x1a, 0x86, 0x99, 0x90, 0xa2, 0x4e,
0x30, 0x13, 0xc5, 0x39, 0x5b, 0x6b, 0x88, 0x03, 0xe2, 0x1b, 0x7d, 0x0f, 0x66, 0xe3, 0x61, 0x9e, 0xd4, 0x0a, 0x21, 0x98, 0x0d, 0xa3, 0x8c, 0x6d, 0x34, 0xc4, 0x01, 0xf1, 0x8d, 0xbe, 0x03, 0x73,
0x0c, 0xf3, 0xb5, 0x39, 0xc1, 0x6e, 0xc7, 0x66, 0x77, 0x4f, 0xec, 0x11, 0x85, 0xc3, 0xef, 0xa5, 0xd1, 0x30, 0x8b, 0x87, 0xd9, 0xc6, 0xbc, 0x60, 0x77, 0xd5, 0x64, 0xf7, 0x50, 0xec, 0x11, 0x85,
0x59, 0xc6, 0xf2, 0xed, 0x11, 0xf3, 0xd7, 0xe6, 0xe5, 0xbd, 0x25, 0x00, 0xff, 0xd3, 0x83, 0x65, 0xc3, 0xef, 0xa5, 0x69, 0xca, 0xb2, 0xbd, 0x11, 0xf3, 0x36, 0x16, 0xe4, 0xbd, 0x05, 0x00, 0xff,
0x47, 0x53, 0x37, 0xc8, 0xe9, 0x77, 0xa0, 0x11, 0x44, 0x9c, 0xd1, 0x59, 0xc1, 0xe8, 0x3b, 0x36, 0xc3, 0x81, 0x15, 0x4b, 0x53, 0xb7, 0xc8, 0xe9, 0xb7, 0xa0, 0xe1, 0x87, 0x9c, 0xd1, 0x39, 0xc1,
0xa3, 0x3b, 0x7c, 0x8b, 0x48, 0x8c, 0x1b, 0x15, 0xea, 0xdf, 0x5c, 0xfb, 0x96, 0xed, 0xbe, 0xa1, 0xe8, 0x5d, 0x93, 0xd1, 0x7d, 0xbe, 0x45, 0x24, 0xc6, 0xad, 0x0a, 0xf5, 0x2f, 0xae, 0x7d, 0xc3,
0x4c, 0x75, 0x43, 0x26, 0x6e, 0xf3, 0x58, 0x08, 0xd4, 0x24, 0xb5, 0x3c, 0xd6, 0x32, 0xce, 0xbc, 0x76, 0x6f, 0x29, 0x53, 0x5d, 0x93, 0x89, 0xdb, 0x3c, 0x12, 0x02, 0xb9, 0xa4, 0x96, 0x45, 0xa5,
0x85, 0x8c, 0x8d, 0x6f, 0x2c, 0xe3, 0x36, 0x2c, 0x7f, 0x71, 0xf8, 0xd3, 0xbd, 0x17, 0x61, 0x7c, 0x8c, 0xb3, 0xdf, 0x40, 0xc6, 0xc6, 0x5b, 0xcb, 0xb8, 0x07, 0x2b, 0x5f, 0x9c, 0xfc, 0xf8, 0xf0,
0x44, 0xc3, 0x9d, 0xa8, 0xcf, 0x46, 0x5c, 0x8a, 0x7c, 0x74, 0x4a, 0xb3, 0x53, 0xc1, 0x6f, 0x8b, 0x45, 0x10, 0x75, 0x69, 0xb0, 0x1f, 0xf6, 0xd8, 0x88, 0x4b, 0x91, 0x8d, 0xce, 0x68, 0x7a, 0x26,
0xa8, 0x15, 0xea, 0xc2, 0x7c, 0x3c, 0xcc, 0x03, 0x8e, 0xa3, 0x7c, 0xb5, 0x5c, 0xe3, 0x5f, 0x7a, 0xf8, 0x6d, 0x12, 0xb5, 0x42, 0x6d, 0x58, 0x88, 0x86, 0x99, 0xcf, 0x71, 0x94, 0xaf, 0x16, 0x6b,
0x30, 0xbf, 0xcb, 0x24, 0x9b, 0x86, 0x1a, 0x3c, 0x4b, 0x0d, 0x9f, 0xc1, 0xf2, 0x30, 0x1f, 0xc5, 0xfc, 0x4b, 0x07, 0x16, 0x0e, 0x98, 0x64, 0x53, 0x53, 0x83, 0x63, 0xa8, 0xe1, 0x33, 0x58, 0x19,
0xc6, 0x5d, 0x6b, 0xb5, 0x07, 0x75, 0x23, 0xd6, 0x1c, 0x4e, 0x88, 0x8b, 0xce, 0x59, 0x38, 0x63, 0x66, 0xa3, 0x48, 0xbb, 0x6b, 0xa3, 0xb6, 0x59, 0xd7, 0x62, 0xcd, 0xe2, 0x84, 0xd8, 0xe8, 0x9c,
0xe3, 0x9d, 0x01, 0x3d, 0x61, 0x8a, 0xb9, 0x72, 0x8d, 0x7f, 0x08, 0x2d, 0x53, 0x59, 0xe8, 0xbb, 0x85, 0x73, 0x36, 0xde, 0x1f, 0xd0, 0x3e, 0x53, 0xcc, 0x15, 0x6b, 0xfc, 0x7d, 0x68, 0xea, 0xca,
0x02, 0x57, 0xea, 0xd4, 0x13, 0xd7, 0x2c, 0xab, 0x6b, 0x0a, 0x46, 0x49, 0x89, 0x80, 0x77, 0xa0, 0x42, 0xdf, 0x16, 0xb8, 0x52, 0xa7, 0x8e, 0xb8, 0x66, 0x45, 0x5d, 0x93, 0x33, 0x4a, 0x0a, 0x04,
0x79, 0xc6, 0x94, 0xe6, 0xa6, 0xf2, 0xff, 0x3e, 0x2c, 0xc6, 0x11, 0xcb, 0x83, 0x01, 0x4b, 0x86, 0xbc, 0x0f, 0xee, 0x39, 0x53, 0x9a, 0x9b, 0xca, 0xff, 0x7b, 0xb0, 0x14, 0x85, 0x2c, 0xf3, 0x07,
0x47, 0x67, 0x4c, 0x66, 0x8a, 0x16, 0xb1, 0x81, 0xf8, 0xe7, 0x65, 0x8e, 0xda, 0x2b, 0x0d, 0x40, 0x2c, 0x1e, 0x76, 0xcf, 0x99, 0xcc, 0x14, 0x4d, 0x62, 0x02, 0xf1, 0xcf, 0x8b, 0x1c, 0x75, 0x58,
0x92, 0xe1, 0xd1, 0x2e, 0x1b, 0xe7, 0x23, 0x41, 0xb1, 0x45, 0x34, 0x00, 0xad, 0x8b, 0x9b, 0x95, 0x18, 0x80, 0xc4, 0xc3, 0xee, 0x01, 0x1b, 0x67, 0x23, 0x41, 0xb1, 0x49, 0x4a, 0x00, 0xda, 0x12,
0x3d, 0xa5, 0x3a, 0xda, 0x8a, 0xcf, 0x92, 0x23, 0xa2, 0x51, 0x70, 0x02, 0x9d, 0x17, 0x69, 0x3c, 0x37, 0x2b, 0x7b, 0x4a, 0x75, 0xb4, 0x14, 0x9f, 0x05, 0x47, 0xa4, 0x44, 0xc1, 0x31, 0xac, 0xbe,
0x4c, 0x2a, 0xac, 0xf6, 0xff, 0x51, 0x3a, 0xfe, 0x83, 0x07, 0x8b, 0x9f, 0xc7, 0x3e, 0x0d, 0x39, 0x48, 0xa2, 0x61, 0x5c, 0x61, 0xb5, 0xff, 0x8d, 0xd2, 0xf1, 0xef, 0x1d, 0x58, 0xfa, 0x3c, 0xf2,
0xe6, 0x4e, 0xce, 0x06, 0xfc, 0xae, 0x53, 0x16, 0x9c, 0x9c, 0x96, 0x77, 0xc9, 0x15, 0x5a, 0x83, 0x68, 0xc0, 0x31, 0xf7, 0x33, 0x36, 0xe0, 0x77, 0x9d, 0x31, 0xbf, 0x7f, 0x56, 0xdc, 0x25, 0x57,
0xb9, 0x7c, 0x14, 0xa8, 0x3b, 0xb8, 0x83, 0x14, 0x4b, 0xcb, 0x77, 0xea, 0xb6, 0xef, 0x18, 0xfe, 0x68, 0x03, 0xe6, 0xb3, 0x91, 0xaf, 0xee, 0xe0, 0x0e, 0x92, 0x2f, 0x0d, 0xdf, 0xa9, 0x9b, 0xbe,
0x36, 0x63, 0xf9, 0xdb, 0x84, 0xba, 0x1b, 0x55, 0xea, 0xfe, 0x0a, 0x96, 0x08, 0x3b, 0xe7, 0xac, 0xa3, 0xf9, 0xdb, 0xac, 0xe1, 0x6f, 0x13, 0xea, 0x6e, 0x54, 0xa9, 0xfb, 0x4b, 0x58, 0x26, 0xec,
0xed, 0x0b, 0x95, 0x66, 0x65, 0x8c, 0xbe, 0x76, 0x63, 0x94, 0x03, 0xd0, 0x1e, 0x74, 0x4e, 0x2a, 0x82, 0xb3, 0x76, 0x24, 0x54, 0x9a, 0x16, 0x31, 0xfa, 0xda, 0x8e, 0x51, 0x0e, 0x40, 0x87, 0xb0,
0xf4, 0xa7, 0x94, 0x72, 0x57, 0x29, 0xa5, 0x4a, 0xc5, 0xa4, 0xf2, 0x20, 0x7e, 0x0f, 0x16, 0x65, 0xda, 0xaf, 0xd0, 0x9f, 0x52, 0xca, 0x7d, 0xa5, 0x94, 0x2a, 0x15, 0x93, 0xca, 0x83, 0xf8, 0x5d,
0x72, 0xd8, 0x65, 0xe3, 0x67, 0x34, 0xa7, 0x3c, 0xda, 0xfb, 0x34, 0xa7, 0xc2, 0xe9, 0x5a, 0x44, 0x58, 0x92, 0xc9, 0xe1, 0x80, 0x8d, 0x9f, 0xd1, 0x8c, 0xf2, 0x68, 0xef, 0xd1, 0x8c, 0x0a, 0xa7,
0x7c, 0xe3, 0x4d, 0x58, 0x2e, 0x49, 0x4a, 0x3e, 0xa7, 0x1a, 0x6c, 0x15, 0x66, 0x4b, 0xf7, 0xe2, 0x6b, 0x12, 0xf1, 0x8d, 0x77, 0x60, 0xa5, 0x20, 0x29, 0xf9, 0x9c, 0x6a, 0xb0, 0x75, 0x98, 0x2b,
0x04, 0xd4, 0x0a, 0x1f, 0x72, 0x41, 0x33, 0x53, 0xd0, 0x1e, 0xb4, 0x4f, 0x6c, 0xa2, 0x99, 0xf2, 0xdc, 0x8b, 0x13, 0x50, 0x2b, 0x7c, 0xc2, 0x05, 0x4d, 0x75, 0x41, 0x3b, 0xd0, 0xea, 0x9b, 0x44,
0xf4, 0x55, 0x57, 0x0c, 0xb9, 0x4d, 0x26, 0xf0, 0xf1, 0x53, 0x58, 0x26, 0xec, 0x5c, 0x39, 0xec, 0x53, 0xe5, 0xe9, 0xeb, 0xb6, 0x18, 0x72, 0x9b, 0x4c, 0xe0, 0x63, 0x1f, 0x56, 0x08, 0xbb, 0x50,
0x21, 0xd7, 0x12, 0xea, 0x40, 0x43, 0xa8, 0x4b, 0xe9, 0x4e, 0x2e, 0xa6, 0xe5, 0x36, 0xfc, 0x04, 0x0e, 0x7b, 0xc2, 0xb5, 0x64, 0x26, 0x0c, 0xc7, 0x4a, 0x18, 0x68, 0x13, 0x16, 0xc5, 0xe2, 0x78,
0x5a, 0x9b, 0xe2, 0xeb, 0x19, 0xcb, 0x69, 0x10, 0x4e, 0x15, 0xab, 0x03, 0x0d, 0xdf, 0x38, 0x2e, 0x3c, 0xe8, 0x46, 0x81, 0xb0, 0xb3, 0x4b, 0x74, 0x90, 0x26, 0x58, 0x5d, 0x17, 0x0c, 0x3f, 0x85,
0x17, 0xf8, 0x35, 0xbc, 0x43, 0x58, 0x12, 0x8e, 0x8b, 0xaa, 0x2e, 0x70, 0x33, 0xf4, 0x11, 0xb4, 0xe6, 0x8e, 0xf8, 0x7a, 0xc6, 0x32, 0xea, 0x07, 0x53, 0x15, 0xb0, 0x0a, 0x0d, 0x4f, 0x4b, 0xa2,
0xa8, 0x41, 0x54, 0x49, 0x55, 0xe4, 0x44, 0xf3, 0x3e, 0x62, 0x21, 0x62, 0x02, 0x28, 0xe5, 0xf4, 0x72, 0x81, 0x5f, 0xc3, 0x5d, 0xc2, 0xe2, 0x60, 0x9c, 0xd7, 0x7f, 0x81, 0x9b, 0xa2, 0x0f, 0xa1,
0xb8, 0x88, 0xd9, 0xde, 0xb1, 0xc4, 0x44, 0x4f, 0x60, 0x29, 0x34, 0x1d, 0xb8, 0x50, 0x53, 0x91, 0x49, 0x35, 0xa2, 0x4a, 0xfe, 0x3c, 0x7b, 0xea, 0xf7, 0x11, 0x03, 0x11, 0x13, 0x40, 0x09, 0xa7,
0x38, 0x2d, 0xef, 0x26, 0x0e, 0x2e, 0xfe, 0x12, 0x3a, 0x84, 0xf9, 0x2c, 0x48, 0x72, 0x3b, 0xae, 0xc7, 0x95, 0x91, 0x1e, 0x9e, 0x4a, 0x4c, 0xf4, 0x14, 0x96, 0x03, 0xdd, 0xd5, 0x73, 0x85, 0xe6,
0xab, 0xf5, 0xf4, 0xb6, 0xf1, 0xfc, 0x1b, 0x0f, 0x16, 0x95, 0xd8, 0x7b, 0xc7, 0xfc, 0x52, 0xb4, 0x29, 0xd6, 0x88, 0x03, 0x62, 0xe1, 0xe2, 0xaf, 0x1c, 0x58, 0x25, 0xcc, 0x63, 0x7e, 0x9c, 0x4d,
0x09, 0x4d, 0x29, 0xd3, 0x2b, 0x9a, 0x28, 0x46, 0xdf, 0xb3, 0x24, 0x57, 0x88, 0x6a, 0xf5, 0x8a, 0xa4, 0x80, 0xb7, 0x52, 0xa9, 0x91, 0x24, 0xea, 0x37, 0x27, 0x89, 0xdf, 0x38, 0xb0, 0xa4, 0x34,
0x26, 0xdb, 0x51, 0x9e, 0x8e, 0x89, 0x3e, 0xd5, 0x7d, 0x02, 0x4b, 0xf6, 0x26, 0x6a, 0x43, 0x9d, 0x74, 0x78, 0xca, 0xf9, 0x43, 0x3b, 0xe0, 0x4a, 0xf1, 0x5f, 0xd1, 0x58, 0xc9, 0xf4, 0xae, 0xa1,
0xbb, 0x94, 0xb4, 0x09, 0xff, 0xe4, 0xec, 0x8b, 0x26, 0xa3, 0x30, 0x88, 0x58, 0x7c, 0x5a, 0xfb, 0x24, 0x85, 0xa8, 0x56, 0xaf, 0x68, 0xbc, 0x17, 0x66, 0xc9, 0x98, 0x94, 0xa7, 0xda, 0x4f, 0x61,
0xd8, 0xc3, 0xbf, 0xf3, 0xa0, 0x7d, 0x58, 0x04, 0x4c, 0xc1, 0xd5, 0x33, 0x15, 0x55, 0x99, 0xe6, 0xd9, 0xdc, 0x44, 0x2d, 0xa8, 0x73, 0x3f, 0x95, 0xe6, 0xe3, 0x9f, 0xdc, 0x76, 0xa2, 0x73, 0xc9,
0xea, 0xa1, 0xe2, 0xca, 0xc5, 0x95, 0x80, 0x4c, 0x33, 0x56, 0x1e, 0xe4, 0x8c, 0xd9, 0x9b, 0x26, 0x6d, 0x27, 0x16, 0x9f, 0xd4, 0x3e, 0x72, 0xf0, 0x6f, 0x1d, 0x68, 0x9d, 0xe4, 0x51, 0x98, 0x73,
0x63, 0xcd, 0x0a, 0xc6, 0x9a, 0x26, 0x63, 0xbb, 0xb0, 0xe2, 0x44, 0xdf, 0xc6, 0x7e, 0x1a, 0xc8, 0xf5, 0x4c, 0x85, 0x6a, 0x5a, 0x72, 0xf5, 0x48, 0x71, 0x65, 0xe3, 0x4a, 0x40, 0x5a, 0x32, 0x56,
0x98, 0x51, 0x29, 0x44, 0xd2, 0xa9, 0x2a, 0x59, 0x35, 0xa7, 0x64, 0xfd, 0xda, 0x83, 0xa5, 0xa2, 0x1c, 0xe4, 0x8c, 0x99, 0x9b, 0x3a, 0x63, 0x6e, 0x05, 0x63, 0xae, 0xce, 0xd8, 0x01, 0xac, 0x59,
0x12, 0x68, 0x32, 0x95, 0xbe, 0xfb, 0x7c, 0x5a, 0x0e, 0xbd, 0x57, 0x9d, 0x43, 0x25, 0xb9, 0xeb, 0x21, 0xbd, 0x7d, 0x94, 0xf8, 0x32, 0x10, 0x55, 0x5e, 0x92, 0x74, 0xaa, 0xea, 0x60, 0xcd, 0xaa,
0xcb, 0x57, 0xd3, 0x28, 0x5f, 0x7b, 0xb0, 0x5c, 0xfa, 0xc7, 0x35, 0xec, 0x54, 0xd6, 0xa1, 0xa6, 0x83, 0xbf, 0x76, 0x60, 0x39, 0x2f, 0x2f, 0x25, 0x99, 0x4a, 0x37, 0x7f, 0x3e, 0x2d, 0x31, 0x3f,
0x9b, 0x18, 0x5f, 0x00, 0x32, 0xeb, 0xa1, 0xa2, 0xf9, 0xe1, 0x44, 0x55, 0x5c, 0x71, 0xaa, 0xa2, 0xa8, 0x4e, 0xcc, 0x92, 0xdc, 0xcd, 0x35, 0xd1, 0xd5, 0x6a, 0xe2, 0x21, 0xac, 0x14, 0xfe, 0x71,
0x62, 0x5e, 0xd7, 0xc6, 0x00, 0xde, 0xb1, 0x1c, 0x5f, 0x51, 0x9a, 0x28, 0x6b, 0x4d, 0xb3, 0xac, 0x03, 0x3b, 0x95, 0xc5, 0xcd, 0xb5, 0xb3, 0xed, 0x0b, 0x40, 0x7a, 0x91, 0x55, 0x34, 0x3f, 0x98,
0x6d, 0x4c, 0x86, 0xc1, 0xaa, 0x1b, 0x06, 0xea, 0x26, 0x23, 0x18, 0xbe, 0xf6, 0xa0, 0x63, 0xf7, 0x28, 0xb5, 0x6b, 0x56, 0xa9, 0x55, 0xcc, 0x97, 0x05, 0xd7, 0x87, 0xbb, 0x46, 0x88, 0x28, 0x4a,
0xbb, 0xfa, 0xb2, 0x1b, 0xea, 0x25, 0x1f, 0x3b, 0x0d, 0x62, 0xb7, 0xaa, 0x79, 0x52, 0x9c, 0x29, 0x13, 0xb5, 0xd2, 0xd5, 0x6b, 0xe5, 0xf6, 0x64, 0xad, 0x5c, 0xb7, 0xc3, 0x40, 0xdd, 0xa4, 0x05,
0x4c, 0xfc, 0x77, 0x0f, 0x56, 0x9c, 0xee, 0xf6, 0xc6, 0xf9, 0xfa, 0xbe, 0xdd, 0xe3, 0xde, 0xa9, 0xc3, 0xd7, 0x0e, 0xac, 0x9a, 0x4d, 0x74, 0x79, 0xd9, 0x2d, 0x35, 0xa8, 0x4f, 0xac, 0xae, 0xb3,
0xe8, 0xff, 0x14, 0x57, 0xaa, 0x0b, 0xfc, 0x5f, 0x04, 0xf9, 0x1b, 0xd7, 0xaf, 0xd5, 0xd1, 0xde, 0x5d, 0xd5, 0x91, 0x29, 0xce, 0x14, 0x26, 0xfe, 0x9b, 0x03, 0x6b, 0x56, 0xcb, 0x7c, 0xeb, 0x7c,
0x88, 0x1c, 0xf5, 0x2a, 0x39, 0x66, 0xde, 0x5a, 0x8e, 0xc6, 0x1b, 0xcb, 0xf1, 0xab, 0x5a, 0xe9, 0x7d, 0xd7, 0x6c, 0x9c, 0xef, 0x55, 0x34, 0x95, 0x8a, 0x2b, 0xd5, 0x5a, 0xfe, 0x37, 0x82, 0xfc,
0x93, 0x72, 0x10, 0x54, 0x62, 0x6c, 0x4f, 0x19, 0x07, 0xef, 0x56, 0x8e, 0x83, 0xf2, 0x50, 0xc5, 0x95, 0xeb, 0xd7, 0x68, 0x93, 0x6f, 0x45, 0x8e, 0x7a, 0x95, 0x1c, 0xb3, 0xdf, 0x58, 0x8e, 0xc6,
0x50, 0xf8, 0x72, 0xda, 0x50, 0x78, 0xaf, 0x7a, 0x28, 0x2c, 0x09, 0x4d, 0x8c, 0x86, 0xdb, 0x53, 0x1b, 0xcb, 0xf1, 0x55, 0xad, 0xf0, 0x49, 0x39, 0x5d, 0x2a, 0x31, 0xf6, 0xa6, 0xcc, 0x98, 0xf7,
0x46, 0xc3, 0xbb, 0x95, 0xa3, 0xa1, 0xc1, 0xd0, 0x1b, 0x0e, 0x88, 0x5f, 0x02, 0x32, 0xeb, 0xe7, 0x2b, 0x67, 0x4c, 0x79, 0xa8, 0x62, 0xd2, 0x7c, 0x39, 0x6d, 0xd2, 0x7c, 0x50, 0x3d, 0x69, 0x16,
0xfe, 0xd9, 0x3e, 0x0d, 0x52, 0xf4, 0x10, 0x96, 0xb2, 0xd3, 0xf8, 0xf2, 0x60, 0xe8, 0xfb, 0x2c, 0x84, 0x26, 0xe6, 0xcd, 0xbd, 0x29, 0xf3, 0xe6, 0xfd, 0xca, 0x79, 0x53, 0x63, 0xe8, 0x0d, 0xa7,
0xcb, 0x8e, 0x87, 0xa1, 0x50, 0xc3, 0x3c, 0x71, 0xa0, 0xe8, 0x3e, 0x80, 0x4c, 0x16, 0x09, 0x0d, 0xce, 0x9f, 0x01, 0xd2, 0x4b, 0xed, 0xd1, 0xf9, 0x11, 0xf5, 0x13, 0xf4, 0x08, 0x96, 0xd3, 0xb3,
0x52, 0x41, 0xbe, 0x49, 0x0c, 0x08, 0xfe, 0x8c, 0x57, 0x3e, 0xd1, 0x1c, 0xf4, 0x68, 0xb8, 0xb1, 0xe8, 0xea, 0x78, 0xe8, 0x79, 0x2c, 0x4d, 0x4f, 0x87, 0x81, 0x50, 0xc3, 0x02, 0xb1, 0xa0, 0xe8,
0xd9, 0xef, 0xa7, 0xb2, 0x43, 0x40, 0x30, 0x43, 0xfb, 0xfd, 0x54, 0x39, 0x8a, 0xf8, 0xd6, 0xd5, 0x21, 0x80, 0x4c, 0x16, 0x31, 0xf5, 0x13, 0x41, 0xde, 0x25, 0x1a, 0x04, 0x7f, 0xc6, 0x6b, 0xa4,
0xb0, 0x66, 0x54, 0x43, 0xfc, 0x63, 0xbb, 0xbe, 0xf7, 0x68, 0x48, 0x23, 0x9f, 0xa1, 0x07, 0xb0, 0xe8, 0x38, 0x3a, 0x34, 0xd8, 0xde, 0xe9, 0xf5, 0x12, 0xd9, 0x76, 0x20, 0x98, 0xa5, 0xbd, 0x5e,
0xa0, 0x92, 0x95, 0x41, 0xc7, 0x04, 0xf1, 0x56, 0xf2, 0x48, 0x22, 0x2b, 0x9f, 0x2b, 0x96, 0xf8, 0xa2, 0x1c, 0x45, 0x7c, 0xf3, 0xac, 0x2d, 0x1c, 0x26, 0xcf, 0xda, 0x62, 0x81, 0x7f, 0x68, 0xb6,
0xaf, 0xb5, 0x72, 0x2a, 0x7b, 0xd6, 0x3b, 0xc8, 0xe3, 0x94, 0x39, 0xe9, 0x5f, 0x77, 0x90, 0x96, 0x02, 0x1d, 0x1a, 0xd0, 0xd0, 0x63, 0xbc, 0x8c, 0xaa, 0x64, 0xa5, 0xd1, 0xd1, 0x41, 0xbc, 0x3f,
0x57, 0xd7, 0xa6, 0x7b, 0x75, 0xdd, 0xf2, 0x6a, 0x59, 0x34, 0x76, 0x9c, 0x39, 0x47, 0x66, 0x70, 0xed, 0x4a, 0x64, 0xe5, 0x73, 0xf9, 0x12, 0xff, 0xa5, 0x56, 0x8c, 0x7a, 0xcf, 0x3a, 0xc7, 0x59,
0x0c, 0xad, 0x7c, 0x54, 0xb6, 0x7b, 0x44, 0xb5, 0xa4, 0x16, 0x0c, 0x7d, 0x00, 0x6d, 0x25, 0x49, 0x94, 0x30, 0x2b, 0xfd, 0x97, 0x6d, 0xa9, 0xe1, 0xd5, 0xb5, 0xe9, 0x5e, 0x6d, 0x34, 0x3f, 0xaa,
0x09, 0x14, 0x41, 0xdd, 0x22, 0x13, 0x70, 0xae, 0xb5, 0xf8, 0x32, 0x62, 0xa9, 0x88, 0xe1, 0x26, 0x68, 0xec, 0x5b, 0xc3, 0x93, 0xcc, 0xe0, 0x18, 0x9a, 0xd9, 0xa8, 0xe8, 0x21, 0x89, 0xea, 0x73,
0x91, 0x0b, 0xa3, 0xbf, 0x9e, 0x9f, 0xd6, 0x5f, 0x37, 0xed, 0xfe, 0xfa, 0x1e, 0x34, 0x8f, 0xc2, 0x0d, 0x18, 0x7a, 0x1f, 0x5a, 0x4a, 0x92, 0x02, 0x28, 0x82, 0xba, 0x49, 0x26, 0xe0, 0x5c, 0x6b,
0xd8, 0x3f, 0x13, 0x4a, 0x00, 0x39, 0x63, 0x94, 0x00, 0xfc, 0x1a, 0x66, 0x44, 0x0d, 0x9f, 0x56, 0xd1, 0x55, 0xc8, 0x12, 0x11, 0xc3, 0x2e, 0x91, 0x0b, 0xad, 0x69, 0x5f, 0x98, 0xd6, 0xb4, 0xbb,
0x50, 0xd6, 0xa1, 0xc9, 0x4b, 0x55, 0x8f, 0x66, 0x81, 0xaf, 0x3c, 0xbd, 0x6d, 0x54, 0x36, 0x01, 0x66, 0xd3, 0xfe, 0x00, 0xdc, 0x6e, 0x10, 0x79, 0xe7, 0x42, 0x09, 0x20, 0x07, 0x97, 0x02, 0x80,
0x27, 0x1a, 0x05, 0x27, 0xb0, 0xc4, 0xe1, 0x2f, 0xe9, 0x05, 0x3b, 0x1c, 0xbd, 0xe4, 0x9a, 0xbe, 0x5f, 0xc3, 0xac, 0xa8, 0xe1, 0xd3, 0x0a, 0xca, 0x16, 0xb8, 0xbc, 0x54, 0x75, 0x68, 0xea, 0x7b,
0xa2, 0x99, 0xcd, 0x05, 0x86, 0x52, 0xbf, 0x5a, 0xd9, 0x37, 0xd6, 0xaf, 0xbf, 0xf1, 0x03, 0x68, 0xca, 0xd3, 0x5b, 0x5a, 0x65, 0x13, 0x70, 0x52, 0xa2, 0xe0, 0x18, 0x96, 0x39, 0xfc, 0x25, 0xbd,
0x88, 0x96, 0x0e, 0x7d, 0x0b, 0x1a, 0x1c, 0x5a, 0x74, 0x70, 0x0b, 0xc6, 0x21, 0x22, 0x77, 0x30, 0x64, 0x27, 0xa3, 0x97, 0x5c, 0xd3, 0xd7, 0x74, 0xc8, 0x99, 0xc0, 0x50, 0xea, 0x57, 0x2b, 0xf3,
0x91, 0x23, 0xad, 0xe6, 0x2e, 0x43, 0x4f, 0x65, 0x01, 0x37, 0x40, 0x4e, 0xf1, 0xb3, 0x0f, 0x10, 0xc6, 0xfa, 0xcd, 0x37, 0xbe, 0x0f, 0x0d, 0xd1, 0xfd, 0xa1, 0xff, 0x83, 0x06, 0x87, 0xe6, 0xcd,
0x17, 0x1b, 0x1f, 0xf3, 0x38, 0x3b, 0x77, 0x67, 0xae, 0xab, 0xb3, 0x66, 0x17, 0xe6, 0x07, 0xc1, 0xde, 0xa2, 0x76, 0x88, 0xc8, 0x1d, 0x4c, 0xe4, 0x9c, 0x5c, 0x72, 0x97, 0xa2, 0x4f, 0x65, 0x01,
0x68, 0xab, 0xcc, 0x9b, 0x0d, 0x52, 0xae, 0x2d, 0xdf, 0xab, 0x1b, 0xdd, 0x74, 0x06, 0xcd, 0x52, 0xd7, 0x40, 0x56, 0xf1, 0x33, 0x0f, 0x10, 0x1b, 0x1b, 0xff, 0xca, 0xe1, 0x81, 0x76, 0x61, 0x4f,
0xfe, 0xaa, 0xd1, 0xcd, 0xb3, 0xde, 0xa6, 0xae, 0x9d, 0x97, 0x75, 0xa7, 0xb0, 0x5f, 0x35, 0xb1, 0x72, 0x6f, 0xdb, 0x2c, 0xb6, 0x61, 0x61, 0xe0, 0x8f, 0x76, 0x0b, 0x27, 0x6c, 0x90, 0x62, 0xad,
0x4a, 0x20, 0x26, 0xd0, 0x16, 0xdd, 0xae, 0x68, 0x5d, 0x36, 0x07, 0x0e, 0x83, 0xb6, 0x41, 0x1f, 0xa9, 0x74, 0x76, 0xb3, 0xae, 0xf5, 0xe6, 0x29, 0xb8, 0x85, 0x8a, 0xaa, 0x46, 0x46, 0xc7, 0x78,
0x16, 0xfa, 0xb7, 0x5b, 0x5b, 0x6d, 0x34, 0x65, 0x84, 0xdf, 0x7a, 0x5c, 0x63, 0xd9, 0xcd, 0x69, 0x13, 0xbb, 0x71, 0x4e, 0x2f, 0x9b, 0x89, 0xa3, 0xaa, 0x49, 0x59, 0x02, 0x31, 0x81, 0x96, 0xe8,
0x6c, 0x0b, 0xda, 0x9c, 0xb2, 0xc9, 0xa4, 0xd0, 0xdd, 0xc2, 0xe3, 0x77, 0x0d, 0x1e, 0xcc, 0x6d, 0x9d, 0x45, 0x77, 0xb3, 0x33, 0xb0, 0x18, 0x34, 0x6d, 0xfe, 0x28, 0x37, 0x91, 0x39, 0x22, 0x97,
0x32, 0x71, 0x00, 0xff, 0xd1, 0x83, 0xdb, 0xcf, 0xb9, 0x1f, 0x1d, 0xf0, 0x9f, 0x9d, 0x68, 0x2f, 0x76, 0x55, 0x76, 0xfa, 0x09, 0x57, 0x69, 0x6a, 0xab, 0x74, 0x17, 0x5a, 0x7c, 0x5b, 0xbf, 0x49,
0x62, 0x87, 0xa3, 0xeb, 0x8b, 0x5f, 0xc6, 0xa2, 0x3e, 0x4b, 0x0b, 0x17, 0x96, 0x2b, 0x0e, 0x67, 0xb5, 0xd1, 0xef, 0x68, 0x84, 0xf4, 0x6d, 0x32, 0x71, 0x00, 0xff, 0xc1, 0x81, 0x3b, 0xcf, 0xb9,
0xa3, 0x24, 0x48, 0x59, 0x91, 0x3e, 0xe4, 0xca, 0x19, 0x67, 0x75, 0x2f, 0x5a, 0x7a, 0x6e, 0x63, 0xbf, 0x1c, 0xf3, 0x9f, 0xfd, 0xf0, 0x30, 0x64, 0x27, 0xa3, 0x9b, 0x8b, 0x5c, 0xca, 0xc2, 0x1e,
0xaa, 0xe7, 0xfe, 0x0c, 0x5a, 0x84, 0xd1, 0xb0, 0x7c, 0x48, 0xc1, 0xd0, 0x4a, 0x19, 0x0d, 0x45, 0x4b, 0x72, 0x57, 0x95, 0x2b, 0x0e, 0x67, 0xa3, 0xd8, 0x4f, 0x58, 0x9e, 0x26, 0xe4, 0xca, 0x9a,
0x9d, 0x2c, 0x9a, 0xe4, 0x06, 0xb1, 0x60, 0x3c, 0xd7, 0x17, 0x7d, 0x5f, 0x1a, 0x5c, 0x68, 0x1b, 0x85, 0xcb, 0x9e, 0xb3, 0xf0, 0xd0, 0xc6, 0x54, 0x0f, 0xfd, 0x29, 0x34, 0x09, 0xa3, 0x41, 0xf1,
0x3b, 0x50, 0xbc, 0x01, 0x50, 0x1a, 0x29, 0xd3, 0x66, 0xf4, 0xae, 0x36, 0xe3, 0x3f, 0x6a, 0xb0, 0x0a, 0x83, 0xa1, 0x99, 0x30, 0x1a, 0x88, 0x7a, 0x98, 0x37, 0xc3, 0x0d, 0x62, 0xc0, 0x78, 0x4e,
0xba, 0x95, 0x32, 0x9a, 0xb3, 0x43, 0xfd, 0x1a, 0xbb, 0x45, 0xfd, 0x53, 0x66, 0x36, 0xee, 0x2d, 0xcf, 0xfb, 0xbb, 0xc4, 0xbf, 0x2c, 0x0d, 0x65, 0x41, 0xf1, 0x36, 0x40, 0xa1, 0xe9, 0xb4, 0xb4,
0xd9, 0xb8, 0xdf, 0x07, 0xf0, 0x05, 0x2e, 0xbf, 0x57, 0xa5, 0x6d, 0x03, 0xc2, 0xcd, 0x9b, 0x05, 0x85, 0x73, 0xbd, 0x2d, 0xfe, 0x5e, 0x83, 0xf5, 0xdd, 0x84, 0xd1, 0x8c, 0x9d, 0x94, 0x4f, 0xb9,
0x27, 0x91, 0xd8, 0x95, 0x3a, 0x2b, 0xd7, 0x42, 0xcb, 0x39, 0xcd, 0x87, 0x99, 0x4a, 0xb9, 0x6a, 0xbb, 0xd4, 0x3b, 0x63, 0x7a, 0x83, 0xde, 0x94, 0x0d, 0xfa, 0x43, 0x00, 0x4f, 0xe0, 0xf2, 0x7b,
0x85, 0x36, 0x60, 0xc1, 0x78, 0x07, 0x56, 0x2d, 0x02, 0x2a, 0x06, 0x0f, 0xbd, 0x43, 0x4c, 0x34, 0x55, 0x7a, 0xd6, 0x20, 0xdc, 0xab, 0x53, 0xbf, 0x1f, 0x8a, 0x5d, 0xa9, 0xb3, 0x62, 0x2d, 0xb4,
0xc3, 0x66, 0xb3, 0x96, 0xcd, 0x3e, 0x92, 0x0a, 0x2d, 0x3b, 0xe0, 0x39, 0x6b, 0xae, 0x34, 0x75, 0x9c, 0xd1, 0x6c, 0x98, 0xaa, 0xd4, 0xaa, 0x56, 0x68, 0x1b, 0x16, 0xb5, 0x47, 0x64, 0xd5, 0x0a,
0x4f, 0x2c, 0x44, 0xf4, 0xed, 0x42, 0x5f, 0xf3, 0xe2, 0xc4, 0x6d, 0x57, 0x5f, 0x99, 0x52, 0x98, 0xa0, 0x7c, 0xc0, 0x28, 0x77, 0x88, 0x8e, 0xa6, 0xd9, 0x6c, 0xce, 0xb0, 0xd9, 0x87, 0x52, 0xa1,
0xed, 0x4b, 0x4d, 0xc7, 0x97, 0x70, 0x4f, 0x3c, 0x56, 0x08, 0xfd, 0x1d, 0x8e, 0x3e, 0x0f, 0xb2, 0x45, 0xa7, 0x3b, 0x6f, 0x8c, 0x9a, 0xba, 0xee, 0x89, 0x81, 0x88, 0xfe, 0x3f, 0xd7, 0xd7, 0x82,
0xbc, 0xb2, 0x94, 0x5e, 0x59, 0xb6, 0xf0, 0xc7, 0xd0, 0x16, 0x25, 0xd5, 0xa4, 0xf2, 0x3e, 0xd4, 0x38, 0x71, 0xc7, 0xd6, 0x57, 0xaa, 0x14, 0x66, 0xfa, 0x92, 0x6b, 0xf9, 0x12, 0xee, 0x88, 0x97,
0xf3, 0x51, 0x61, 0xcc, 0x2a, 0xed, 0xf0, 0x6d, 0xbc, 0x0d, 0xb7, 0xf5, 0xac, 0xbf, 0xe9, 0x8b, 0x0e, 0xa1, 0xbf, 0x93, 0xd1, 0xe7, 0x7e, 0x9a, 0x55, 0x96, 0xcc, 0x6b, 0xcb, 0x13, 0xfe, 0x08,
0x09, 0xfc, 0x1a, 0xe7, 0x2f, 0xd8, 0xab, 0x69, 0xf6, 0xf0, 0x2f, 0x44, 0x2e, 0xdc, 0x77, 0xe8, 0x5a, 0xa2, 0x74, 0xea, 0x54, 0xde, 0x83, 0x7a, 0x36, 0xca, 0x8d, 0x59, 0xa5, 0x1d, 0xbe, 0x8d,
0xbc, 0x71, 0x4f, 0xc0, 0x8b, 0x7f, 0x3f, 0xc8, 0x92, 0x90, 0x8e, 0x07, 0x71, 0x9f, 0xa9, 0xe7, 0xf7, 0xe0, 0x4e, 0xf9, 0x50, 0xb0, 0xe3, 0x89, 0xa1, 0xfc, 0x06, 0xe7, 0xcf, 0xd9, 0xab, 0x95,
0x20, 0x13, 0x84, 0xbf, 0x72, 0x5e, 0x05, 0xd4, 0x15, 0x58, 0x3b, 0x2d, 0xf7, 0x82, 0x96, 0x61, 0xec, 0xe1, 0x5f, 0x88, 0x94, 0x77, 0x64, 0xd1, 0x79, 0xe3, 0xda, 0xcf, 0xd3, 0x5f, 0xcf, 0x4f,
0x84, 0x52, 0xff, 0x18, 0x1a, 0xc7, 0x2a, 0x3f, 0x55, 0xe0, 0x88, 0xad, 0x37, 0x60, 0xe0, 0x15, 0xe3, 0x80, 0x8e, 0x07, 0x51, 0x8f, 0xa9, 0xfc, 0xa6, 0x83, 0xf0, 0x97, 0xd6, 0x43, 0x81, 0xba,
0x67, 0xe0, 0x5c, 0x3a, 0xbe, 0xd2, 0x33, 0xaf, 0xd6, 0x57, 0xeb, 0x6a, 0x0d, 0xe6, 0x78, 0xa0, 0x02, 0x97, 0x4e, 0xcb, 0xbd, 0xa0, 0xa9, 0x19, 0xa1, 0xd0, 0x3f, 0x86, 0xc6, 0xa9, 0x4a, 0x32,
0xeb, 0x10, 0x2c, 0x96, 0xf8, 0x5f, 0x1e, 0xdc, 0x31, 0x5e, 0x59, 0xb4, 0x5d, 0x84, 0xf1, 0xae, 0x15, 0x38, 0x62, 0xeb, 0x0d, 0x18, 0x78, 0xc5, 0x19, 0xb8, 0x90, 0x8e, 0xaf, 0xf4, 0xcc, 0xab,
0xa6, 0x8a, 0xa1, 0xc5, 0x9d, 0x97, 0x30, 0xff, 0xe2, 0x79, 0x48, 0x4f, 0x54, 0x5e, 0xb4, 0x60, 0xf2, 0xf5, 0xba, 0xda, 0x80, 0x79, 0x1e, 0xe8, 0x65, 0x08, 0xe6, 0x4b, 0xfc, 0x4f, 0x07, 0xee,
0x9c, 0x42, 0x3f, 0x48, 0x99, 0x0c, 0x11, 0x29, 0x8e, 0x06, 0xe8, 0x97, 0x17, 0x19, 0x59, 0x8d, 0x69, 0x4f, 0x34, 0xa5, 0x5d, 0x84, 0xf1, 0xae, 0xa7, 0x8a, 0xa1, 0xc9, 0x9d, 0x97, 0x30, 0xef,
0xd2, 0x5e, 0xc7, 0x69, 0x3c, 0x28, 0x66, 0x10, 0xfe, 0xcd, 0x25, 0xe0, 0x76, 0x63, 0x59, 0xa6, 0xf2, 0x79, 0x40, 0xfb, 0x6a, 0x5c, 0x35, 0x60, 0x9c, 0x42, 0xcf, 0x4f, 0x98, 0x0c, 0x11, 0x29,
0xe2, 0xa6, 0x58, 0xf2, 0xd0, 0xce, 0x18, 0xeb, 0xab, 0xc4, 0x36, 0x27, 0xc4, 0x33, 0x20, 0xf8, 0x4e, 0x09, 0x28, 0x1f, 0x63, 0x64, 0x64, 0x35, 0x0a, 0x7b, 0x9d, 0x26, 0xd1, 0x20, 0x9f, 0x35,
0x53, 0xe1, 0xd8, 0x84, 0x65, 0x3e, 0x8d, 0xbe, 0x10, 0x4a, 0xee, 0x40, 0x83, 0x1f, 0x96, 0x4e, 0xf8, 0x37, 0x97, 0x80, 0xdb, 0x8d, 0xa5, 0xa9, 0x8a, 0x9b, 0x7c, 0xc9, 0x43, 0x3b, 0x65, 0xac,
0xd9, 0x24, 0x72, 0x21, 0x6e, 0xd5, 0x52, 0x88, 0x6f, 0xfc, 0x09, 0x2c, 0x13, 0x96, 0xc8, 0xb3, 0xa7, 0x12, 0xdb, 0xbc, 0x10, 0x4f, 0x83, 0xe0, 0x4f, 0x84, 0x63, 0x13, 0x96, 0x7a, 0x34, 0xfc,
0x84, 0x65, 0xc3, 0xb0, 0xda, 0x99, 0xaa, 0x8e, 0x9e, 0xf2, 0x6b, 0x13, 0xf3, 0xda, 0x02, 0xcb, 0x42, 0x28, 0x79, 0x15, 0x1a, 0xfc, 0xb0, 0x74, 0x4a, 0x97, 0xc8, 0x85, 0xb8, 0xb5, 0x94, 0x42,
0xd3, 0x58, 0xa8, 0x07, 0xed, 0xd4, 0xbe, 0x20, 0x73, 0x46, 0x52, 0xe7, 0x7e, 0x32, 0x81, 0x8f, 0x7c, 0xe3, 0x8f, 0x61, 0x85, 0xb0, 0x58, 0x9e, 0x25, 0x2c, 0x1d, 0x06, 0xd5, 0xce, 0x54, 0x75,
0x1f, 0xf1, 0xa8, 0x3b, 0xdf, 0x8e, 0xe8, 0x51, 0xc8, 0x8a, 0x3f, 0x38, 0x4a, 0x11, 0x6b, 0x86, 0xf4, 0x8c, 0x5f, 0x1b, 0xeb, 0xd7, 0xe6, 0x58, 0x4e, 0x89, 0x85, 0x3a, 0xd0, 0x4a, 0xcc, 0x0b,
0x88, 0x78, 0x47, 0xbc, 0xff, 0xf2, 0x66, 0xf9, 0x6a, 0x61, 0x76, 0xb2, 0xbd, 0x5d, 0x21, 0xcc, 0x52, 0x6b, 0xf4, 0xb4, 0xee, 0x27, 0x13, 0xf8, 0xf8, 0x31, 0x8f, 0xba, 0x8b, 0xbd, 0x90, 0x76,
0x3c, 0x11, 0xdf, 0x3c, 0xa1, 0x0e, 0xb2, 0x13, 0x35, 0x4c, 0xf1, 0x4f, 0xdc, 0x13, 0xa1, 0x6e, 0x03, 0x96, 0xff, 0x3b, 0x52, 0x88, 0x58, 0xd3, 0x44, 0xc4, 0xfb, 0xe2, 0xf1, 0x98, 0x37, 0xc5,
0x5f, 0xba, 0x0e, 0x73, 0xa9, 0x92, 0xc1, 0x7e, 0xc4, 0xb2, 0x2e, 0x25, 0x05, 0x12, 0xfe, 0xb3, 0xd7, 0x0b, 0xb3, 0x9f, 0x1e, 0x1e, 0x08, 0x61, 0x16, 0x88, 0xf8, 0xe6, 0x09, 0x75, 0x90, 0xf6,
0x9e, 0x5d, 0x0f, 0x82, 0x93, 0x88, 0xe6, 0xc3, 0x94, 0xed, 0xd3, 0x94, 0x0e, 0xb8, 0x4d, 0xa5, 0xd5, 0xd0, 0xc4, 0x3f, 0x71, 0x47, 0x84, 0xba, 0x79, 0xe9, 0x16, 0xcc, 0x27, 0x4a, 0x06, 0xf3,
0x17, 0x1e, 0x8e, 0x13, 0xa6, 0x14, 0x66, 0x40, 0xd0, 0x87, 0x00, 0x3c, 0xa6, 0x8e, 0x44, 0x7e, 0x5d, 0xcb, 0xb8, 0x94, 0xe4, 0x48, 0xf8, 0x4f, 0xe5, 0x8c, 0x7a, 0xec, 0xf7, 0x43, 0x9a, 0x0d,
0x53, 0x0a, 0xab, 0x48, 0x7c, 0x06, 0x12, 0xfa, 0x04, 0x16, 0x53, 0x23, 0x89, 0x66, 0xaa, 0x42, 0x13, 0x76, 0x44, 0x13, 0x3a, 0xe0, 0x36, 0x95, 0x5e, 0x78, 0x32, 0x8e, 0x99, 0x52, 0x98, 0x06,
0x57, 0x26, 0x58, 0x1b, 0x13, 0xff, 0xc9, 0x83, 0xce, 0x4f, 0x68, 0x18, 0xb2, 0x5c, 0x85, 0x7b, 0x41, 0x1f, 0x00, 0xf0, 0x98, 0xea, 0x8a, 0xfc, 0xa6, 0x14, 0x56, 0x91, 0xf8, 0x34, 0x24, 0xf4,
0x21, 0xf0, 0x7d, 0x80, 0x8b, 0x80, 0x5d, 0xaa, 0x06, 0x46, 0x96, 0x1b, 0x03, 0xc2, 0xa3, 0x59, 0x31, 0x2c, 0x25, 0x5a, 0x12, 0x4d, 0x55, 0x85, 0xae, 0x4c, 0xb0, 0x26, 0x26, 0xfe, 0xa3, 0x03,
0xac, 0xd2, 0xe0, 0x62, 0xb7, 0x0c, 0x3d, 0x13, 0xc4, 0x31, 0xb2, 0x84, 0x45, 0x7d, 0x45, 0x42, 0xab, 0x3f, 0xa2, 0x41, 0xc0, 0x32, 0x15, 0xee, 0xb9, 0xc0, 0x0f, 0x01, 0x2e, 0x7d, 0x76, 0xa5,
0xfe, 0x71, 0x60, 0x82, 0x44, 0x90, 0x89, 0xa5, 0x22, 0x22, 0x1f, 0xa2, 0x2d, 0x18, 0xfe, 0xba, 0xba, 0x10, 0x59, 0x6e, 0x34, 0x08, 0x8f, 0x66, 0xb1, 0x4a, 0xfc, 0xcb, 0x83, 0x22, 0xf4, 0x74,
0x26, 0xf2, 0x9e, 0x4c, 0x0a, 0x45, 0x28, 0x5f, 0xd7, 0x3c, 0xd8, 0x3a, 0xae, 0x4d, 0xe8, 0x78, 0x10, 0xc7, 0x48, 0x63, 0x16, 0xf6, 0x14, 0x09, 0xf9, 0xaf, 0x83, 0x0e, 0x12, 0x41, 0x26, 0x96,
0xda, 0x0c, 0x52, 0x4c, 0xd6, 0x33, 0xc6, 0x64, 0x5d, 0x15, 0xb1, 0xee, 0xbf, 0x48, 0xf6, 0x44, 0x8a, 0x88, 0x7c, 0xc5, 0x36, 0x60, 0xf8, 0xeb, 0x9a, 0xc8, 0x7b, 0x32, 0x29, 0xe4, 0xa1, 0x7c,
0x07, 0xee, 0x44, 0xa7, 0x3a, 0x2c, 0x99, 0x0e, 0x16, 0xca, 0x0e, 0xcb, 0x2f, 0x5a, 0x3e, 0xd5, 0x53, 0xf3, 0x60, 0xea, 0xb8, 0x36, 0xa1, 0xe3, 0x69, 0xb3, 0x46, 0x3e, 0x41, 0xcf, 0x6a, 0x13,
0xd0, 0xb4, 0xac, 0x86, 0xc6, 0xfa, 0x03, 0x69, 0xd1, 0xf9, 0x03, 0xe9, 0xf1, 0xef, 0x6b, 0x30, 0x74, 0x55, 0xc4, 0xda, 0x7f, 0x41, 0x99, 0x93, 0x1b, 0xd8, 0x93, 0x9b, 0x6a, 0x2c, 0x65, 0x3a,
0x67, 0xfc, 0x11, 0x7a, 0x70, 0x1a, 0x5f, 0x2a, 0xe5, 0x70, 0xd5, 0xb7, 0x4b, 0xcb, 0x9f, 0x1f, 0x58, 0x2c, 0x1a, 0x4b, 0x2f, 0xef, 0xdb, 0x54, 0x43, 0xd3, 0x34, 0x1a, 0x1a, 0xa3, 0x99, 0x5d,
0xe4, 0x69, 0x10, 0x9d, 0x74, 0xef, 0xe8, 0x90, 0x73, 0xc6, 0x56, 0x7c, 0x0b, 0xfd, 0x08, 0x16, 0xb2, 0x9a, 0xd9, 0x27, 0xbf, 0xab, 0xc1, 0xbc, 0xf6, 0x2f, 0xea, 0xf1, 0x59, 0x74, 0xa5, 0x94,
0xcc, 0x60, 0x5e, 0xd1, 0xa7, 0x0d, 0x70, 0x77, 0xc5, 0x8d, 0x5a, 0x01, 0xc6, 0xb7, 0xd0, 0x16, 0xc3, 0x55, 0xdf, 0x2a, 0x2c, 0x7f, 0x71, 0x9c, 0x25, 0x7e, 0xd8, 0x6f, 0xdf, 0x2b, 0x43, 0xce,
0x2c, 0xda, 0xc1, 0xf2, 0xae, 0x26, 0x60, 0x6d, 0x74, 0xf5, 0x86, 0x1d, 0x5e, 0xf8, 0x16, 0x7a, 0x1a, 0x4f, 0xf1, 0x0c, 0xfa, 0x01, 0x2c, 0xea, 0xc1, 0xbc, 0x56, 0x9e, 0xd6, 0xc0, 0xed, 0x35,
0x01, 0x1d, 0x69, 0x63, 0x42, 0x2f, 0x8d, 0x54, 0x8d, 0x34, 0xe3, 0xae, 0x0f, 0x74, 0x2b, 0x2a, 0x3b, 0x6a, 0x05, 0x18, 0xcf, 0xa0, 0x5d, 0x58, 0x32, 0x83, 0xe5, 0x9d, 0x92, 0x80, 0xb1, 0xd1,
0x2e, 0xbe, 0x75, 0x34, 0x2b, 0xfe, 0xb4, 0xfe, 0xc1, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0xc3, 0x2e, 0x37, 0xcc, 0xf0, 0xc2, 0x33, 0xe8, 0x05, 0xac, 0x4a, 0x1b, 0x13, 0x7a, 0xa5, 0xa5, 0x6a,
0x82, 0x9d, 0xff, 0xed, 0x1e, 0x00, 0x00, 0x54, 0x32, 0x6e, 0xfb, 0x40, 0xbb, 0xa2, 0xe2, 0xe2, 0x99, 0xee, 0x9c, 0xf8, 0xc7, 0xfb, 0x7b,
0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0x8c, 0x61, 0xaa, 0x59, 0x2a, 0x1f, 0x00, 0x00,
} }
...@@ -364,7 +364,7 @@ buildInput 构建隐私交易的输入信息 ...@@ -364,7 +364,7 @@ buildInput 构建隐私交易的输入信息
func (policy *privacyPolicy) buildInput(privacykeyParirs *privacy.Privacy, buildInfo *buildInputInfo) (*privacytypes.PrivacyInput, []*privacytypes.UTXOBasics, []*privacytypes.RealKeyInput, []*txOutputInfo, error) { func (policy *privacyPolicy) buildInput(privacykeyParirs *privacy.Privacy, buildInfo *buildInputInfo) (*privacytypes.PrivacyInput, []*privacytypes.UTXOBasics, []*privacytypes.RealKeyInput, []*txOutputInfo, error) {
operater := policy.getWalletOperate() operater := policy.getWalletOperate()
//挑选满足额度的utxo //挑选满足额度的utxo
selectedUtxo, err := policy.selectUTXO(buildInfo.tokenname, buildInfo.sender, buildInfo.amount) selectedUtxo, err := policy.selectUTXO(buildInfo.assetSymbol, buildInfo.sender, buildInfo.amount)
if err != nil { if err != nil {
bizlog.Error("buildInput", "Failed to selectOutput for amount", buildInfo.amount, bizlog.Error("buildInput", "Failed to selectOutput for amount", buildInfo.amount,
"Due to cause", err) "Due to cause", err)
...@@ -375,7 +375,8 @@ func (policy *privacyPolicy) buildInput(privacykeyParirs *privacy.Privacy, build ...@@ -375,7 +375,8 @@ func (policy *privacyPolicy) buildInput(privacykeyParirs *privacy.Privacy, build
}) })
reqGetGlobalIndex := privacytypes.ReqUTXOGlobalIndex{ reqGetGlobalIndex := privacytypes.ReqUTXOGlobalIndex{
Tokenname: buildInfo.tokenname, AssetExec: buildInfo.assetExec,
AssetSymbol: buildInfo.assetSymbol,
MixCount: 0, MixCount: 0,
} }
...@@ -562,7 +563,8 @@ func (policy *privacyPolicy) createPrivacy2PrivacyTx(req *privacytypes.ReqCreate ...@@ -562,7 +563,8 @@ func (policy *privacyPolicy) createPrivacy2PrivacyTx(req *privacytypes.ReqCreate
utxoBurnedAmount = privacytypes.PrivacyTxFee utxoBurnedAmount = privacytypes.PrivacyTxFee
} }
buildInfo := &buildInputInfo{ buildInfo := &buildInputInfo{
tokenname: req.GetTokenname(), assetExec: req.GetAssetExec(),
assetSymbol: req.GetTokenname(),
sender: req.GetFrom(), sender: req.GetFrom(),
amount: req.GetAmount() + utxoBurnedAmount, amount: req.GetAmount() + utxoBurnedAmount,
mixcount: req.GetMixcount(), mixcount: req.GetMixcount(),
...@@ -652,7 +654,8 @@ func (policy *privacyPolicy) createPrivacy2PublicTx(req *privacytypes.ReqCreateP ...@@ -652,7 +654,8 @@ func (policy *privacyPolicy) createPrivacy2PublicTx(req *privacytypes.ReqCreateP
utxoBurnedAmount = privacytypes.PrivacyTxFee utxoBurnedAmount = privacytypes.PrivacyTxFee
} }
buildInfo := &buildInputInfo{ buildInfo := &buildInputInfo{
tokenname: req.GetTokenname(), assetExec: req.GetAssetExec(),
assetSymbol: req.GetTokenname(),
sender: req.GetFrom(), sender: req.GetFrom(),
amount: req.GetAmount() + utxoBurnedAmount, amount: req.GetAmount() + utxoBurnedAmount,
mixcount: req.GetMixcount(), mixcount: req.GetMixcount(),
......
...@@ -16,7 +16,8 @@ type addrAndprivacy struct { ...@@ -16,7 +16,8 @@ type addrAndprivacy struct {
// buildInputInfo 构建隐私交易输入的参数结构 // buildInputInfo 构建隐私交易输入的参数结构
type buildInputInfo struct { type buildInputInfo struct {
tokenname string assetExec string
assetSymbol string
sender string sender string
amount int64 amount int64
mixcount int32 mixcount int32
......
...@@ -40,7 +40,6 @@ message PrepareRetrieve { ...@@ -40,7 +40,6 @@ message PrepareRetrieve {
string defaultAddress = 2; string defaultAddress = 2;
} }
message AssetSymbol { message AssetSymbol {
string exec = 1; string exec = 1;
string symbol = 2; string symbol = 2;
......
...@@ -76,9 +76,7 @@ message EncryptShareNotaryStorage { ...@@ -76,9 +76,7 @@ message EncryptShareNotaryStorage {
bytes nonce = 5; bytes nonce = 5;
} }
service storage { service storage {}
}
//根据txhash去状态数据库中查询存储内容 //根据txhash去状态数据库中查询存储内容
message QueryStorage { message QueryStorage {
string txHash = 1; string txHash = 1;
......
...@@ -18,7 +18,7 @@ message Ticket { ...@@ -18,7 +18,7 @@ message Ticket {
string minerAddress = 6; string minerAddress = 6;
// return wallet // return wallet
string returnAddress = 7; string returnAddress = 7;
//miner Price // miner Price
int64 price = 9; int64 price = 9;
} }
...@@ -41,9 +41,9 @@ message TicketMiner { ...@@ -41,9 +41,9 @@ message TicketMiner {
bytes modify = 4; bytes modify = 4;
//挖到区块时公开 //挖到区块时公开
bytes privHash = 5; bytes privHash = 5;
//VRF计算得到的hash // VRF计算得到的hash
bytes vrfHash = 6; bytes vrfHash = 6;
//VRF计算得到的proof // VRF计算得到的proof
bytes vrfProof = 7; bytes vrfProof = 7;
} }
......
...@@ -87,7 +87,6 @@ message State { ...@@ -87,7 +87,6 @@ message State {
bytes AppHash = 12; bytes AppHash = 12;
} }
message TendermintBlockHeader { message TendermintBlockHeader {
string chainID = 1; string chainID = 1;
int64 height = 2; int64 height = 2;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment