Commit 3ef9413b authored by jiangpeng's avatar jiangpeng

privacy:support multiple asset in exec query

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