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{
int64 cycle = 1;
int64 stopHeight = 2;
string stopHash = 3;
// CycleBoundaryInfo cycle边界信息
message CycleBoundaryInfo {
int64 cycle = 1;
int64 stopHeight = 2;
string stopHash = 3;
}
//SuperNode 超级节点信息
message SuperNode{
bytes address = 1;
bytes pubKey = 2;
// SuperNode 超级节点信息
message SuperNode {
bytes address = 1;
bytes pubKey = 2;
}
//VoteItem 投票信息
// VoteItem 投票信息
message VoteItem {
int32 votedNodeIndex = 1; //被投票的节点索引
bytes votedNodeAddress = 2; //被投票的节点地址
int64 cycle = 3; //大周期序号
int64 cycleStart = 4; //大周期起始时间
int64 cycleStop = 5; //大周期终止时间
int64 periodStart = 6; //新节点负责出块的起始时间
int64 periodStop = 7; //新节点负责出块的终止时间
int64 height = 8; //新节点负责出块的起始高度
bytes voteID = 9; //选票ID
CycleBoundaryInfo lastCBInfo = 10;
int64 shuffleType = 11;
repeated SuperNode validators = 12;
repeated SuperNode vrfValidators = 13;
int32 votedNodeIndex = 1; //被投票的节点索引
bytes votedNodeAddress = 2; //被投票的节点地址
int64 cycle = 3; //大周期序号
int64 cycleStart = 4; //大周期起始时间
int64 cycleStop = 5; //大周期终止时间
int64 periodStart = 6; //新节点负责出块的起始时间
int64 periodStop = 7; //新节点负责出块的终止时间
int64 height = 8; //新节点负责出块的起始高度
bytes voteID = 9; //选票ID
CycleBoundaryInfo lastCBInfo = 10;
int64 shuffleType = 11;
repeated SuperNode validators = 12;
repeated SuperNode vrfValidators = 13;
repeated SuperNode noVrfValidators = 14;
}
//DPosVote Dpos共识的节点投票,为达成共识用。
// DPosVote Dpos共识的节点投票,为达成共识用。
message DPosVote {
VoteItem voteItem = 1;
int64 voteTimestamp = 2; //发起投票的时间
int32 voterNodeIndex = 3; //投票节点索引
bytes voterNodeAddress = 4; //投票节点地址
bytes signature = 5; //投票者签名
VoteItem voteItem = 1;
int64 voteTimestamp = 2; //发起投票的时间
int32 voterNodeIndex = 3; //投票节点索引
bytes voterNodeAddress = 4; //投票节点地址
bytes signature = 5; //投票者签名
}
//DPosVoteReply 投票响应。
// DPosVoteReply 投票响应。
message DPosVoteReply {
DPosVote vote = 1;
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 signature = 7; //通知节点的签名
VoteItem vote = 1;
int64 heightStop = 2; //新节点负责出块的结束高度
bytes hashStop = 3; //新节点负责出块的结束hash
int64 notifyTimestamp = 4; //发起通知的时间
int32 notifyNodeIndex = 5; //通知节点的索引
bytes notifyNodeAddress = 6; //通知节点的地址
bytes signature = 7; //通知节点的签名
}
//DPosCBInfo Cycle boundary注册信息。
// DPosCBInfo Cycle boundary注册信息。
message DPosCBInfo {
int64 cycle = 1;
int64 stopHeight = 2;
string stopHash = 3;
string pubkey = 4;
string signature = 5;
int64 cycle = 1;
int64 stopHeight = 2;
string stopHash = 3;
string pubkey = 4;
string signature = 5;
}
\ No newline at end of file
......@@ -4,7 +4,7 @@
syntax = "proto3";
//import "common.proto";
// import "common.proto";
import "board.proto";
import "project.proto";
import "rule.proto";
......@@ -27,13 +27,13 @@ message AutonomyAction {
PubVoteProposalProject pubVotePropProject = 8;
TerminateProposalProject tmintPropProject = 9;
// 提案规则修改相关
ProposalRule propRule = 10;
RevokeProposalRule rvkPropRule = 11;
VoteProposalRule votePropRule = 12;
TerminateProposalRule tmintPropRule = 13;
ProposalRule propRule = 10;
RevokeProposalRule rvkPropRule = 11;
VoteProposalRule votePropRule = 12;
TerminateProposalRule tmintPropRule = 13;
// 发展基金转自治系统合约
TransferFund transfer = 14;
Comment commentProp = 15;
TransferFund transfer = 14;
Comment commentProp = 15;
// 提案改变董事会成员
ProposalChange propChange = 16;
RevokeProposalChange rvkPropChange = 17;
......
......@@ -8,21 +8,20 @@ import "lcommon.proto";
package types;
message AutonomyProposalBoard {
ProposalBoard propBoard = 1;
ProposalBoard propBoard = 1;
// 投票该提案的规则
RuleConfig curRule = 2;
RuleConfig curRule = 2;
// 投票董事会
ActiveBoard board = 3;
ActiveBoard board = 3;
// 全体持票人投票结果
VoteResult voteResult = 4;
VoteResult voteResult = 4;
// 状态
int32 status = 5;
string address = 6;
int64 height = 7;
int32 index = 8;
string proposalID = 9;
int32 status = 5;
string address = 6;
int64 height = 7;
int32 index = 8;
string proposalID = 9;
}
// action
......@@ -37,9 +36,9 @@ message ProposalBoard {
// 提案董事会成员
repeated string boards = 5;
// 投票相关
// 投票相关
int64 startBlockHeight = 6; // 提案开始投票高度
int64 endBlockHeight = 7; // 提案结束投票高度
int64 endBlockHeight = 7; // 提案结束投票高度
int64 realEndBlockHeight = 8; // 实际提案结束投票高度
}
......@@ -48,8 +47,8 @@ message RevokeProposalBoard {
}
message VoteProposalBoard {
string proposalID = 1;
bool approve = 2;
string proposalID = 1;
bool approve = 2;
repeated string originAddr = 3;
}
......@@ -79,5 +78,5 @@ message ReqQueryProposalBoard {
}
message ReplyQueryProposalBoard {
repeated AutonomyProposalBoard propBoards = 1;
repeated AutonomyProposalBoard propBoards = 1;
}
\ No newline at end of file
......@@ -8,21 +8,20 @@ import "lcommon.proto";
package types;
message AutonomyProposalChange {
ProposalChange propChange = 1;
ProposalChange propChange = 1;
// 投票该提案的规则
RuleConfig curRule = 2;
RuleConfig curRule = 2;
// 投票董事会
ActiveBoard board = 3;
ActiveBoard board = 3;
// 全体持票人投票结果
VoteResult voteResult = 4;
VoteResult voteResult = 4;
// 状态
int32 status = 5;
string address = 6;
int64 height = 7;
int32 index = 8;
string proposalID = 9;
int32 status = 5;
string address = 6;
int64 height = 7;
int32 index = 8;
string proposalID = 9;
}
// action
......@@ -33,11 +32,11 @@ message ProposalChange {
int32 day = 3;
// 修改董事会成员
repeated Change changes = 4;
repeated Change changes = 4;
// 投票相关
// 投票相关
int64 startBlockHeight = 5; // 提案开始投票高度
int64 endBlockHeight = 6; // 提案结束投票高度
int64 endBlockHeight = 6; // 提案结束投票高度
int64 realEndBlockHeight = 7; // 实际提案结束投票高度
}
......@@ -68,7 +67,7 @@ message ReceiptProposalChange {
message LocalProposalChange {
AutonomyProposalChange propBd = 1;
repeated string comments = 2;
repeated string comments = 2;
}
// query
......@@ -82,5 +81,5 @@ message ReqQueryProposalChange {
}
message ReplyQueryProposalChange {
repeated AutonomyProposalChange propChanges = 1;
repeated AutonomyProposalChange propChanges = 1;
}
\ No newline at end of file
......@@ -8,24 +8,24 @@ package types;
message VoteResult {
// 总票数
int32 totalVotes = 1;
int32 totalVotes = 1;
// 赞成票
int32 approveVotes = 2;
int32 approveVotes = 2;
// 反对票
int32 opposeVotes = 3;
int32 opposeVotes = 3;
// 是否通过
bool pass = 4;
bool pass = 4;
}
message PublicVote {
// 是否需要公示
bool publicity = 1;
bool publicity = 1;
// 总票数
int32 totalVotes = 2;
int32 totalVotes = 2;
// 全体持票人反对票
int32 opposeVotes = 3;
int32 opposeVotes = 3;
// 是否通过
bool pubPass = 4;
bool pubPass = 4;
}
message VotesRecord {
......@@ -34,15 +34,15 @@ message VotesRecord {
message RuleConfig {
// 董事会成员赞成率,以%为单位,只保留整数部分
int32 boardApproveRatio = 1;
int32 boardApproveRatio = 1;
// 全体持票人否决率
int32 pubOpposeRatio = 2;
int32 pubOpposeRatio = 2;
// 提案金额
int64 proposalAmount = 3;
int64 proposalAmount = 3;
// 重大项目公示金额阈值
int64 largeProjectAmount = 4;
int64 largeProjectAmount = 4;
// 重大项目公示时间(以区块数为单位)
int32 publicPeriod = 5;
int32 publicPeriod = 5;
}
message ActiveBoard {
......
......@@ -9,21 +9,21 @@ import "lcommon.proto";
package types;
message AutonomyProposalProject {
ProposalProject propProject = 1;
ProposalProject propProject = 1;
// 投票该提案的规则
RuleConfig curRule = 2;
RuleConfig curRule = 2;
// 投票该提案的董事会成员
repeated string boards = 3;
repeated string boards = 3;
// 董事会投票结果
VoteResult boardVoteRes = 4;
VoteResult boardVoteRes = 4;
// 公示投票
PublicVote pubVote = 5;
PublicVote pubVote = 5;
// 状态
int32 status = 6;
string address = 7;
int64 height = 8;
int32 index = 9;
string proposalID = 10;
int32 status = 6;
string address = 7;
int64 height = 8;
int32 index = 9;
string proposalID = 10;
}
message ProposalProject {
......@@ -42,7 +42,7 @@ message ProposalProject {
string amountDetail = 10; // 经费细则
// 支付相关
string toAddr = 11; // 收款地址
string toAddr = 11; // 收款地址
// 投票相关
int64 startBlockHeight = 12; // 提案开始投票高度
......@@ -61,8 +61,8 @@ message VoteProposalProject {
}
message PubVoteProposalProject {
string proposalID = 1;
bool oppose = 2;
string proposalID = 1;
bool oppose = 2;
repeated string originAddr = 3;
}
......@@ -77,8 +77,8 @@ message ReceiptProposalProject {
}
message LocalProposalProject {
AutonomyProposalProject propPrj = 1;
repeated string comments = 2;
AutonomyProposalProject propPrj = 1;
repeated string comments = 2;
}
// query
......
......@@ -9,16 +9,16 @@ import "lcommon.proto";
package types;
message AutonomyProposalRule {
ProposalRule propRule = 1;
RuleConfig curRule = 2;
ProposalRule propRule = 1;
RuleConfig curRule = 2;
// 全体持票人投票结果
VoteResult voteResult = 3;
VoteResult voteResult = 3;
// 状态
int32 status = 4;
string address = 5;
int64 height = 6;
int32 index = 7;
string proposalID = 8;
int32 status = 4;
string address = 5;
int64 height = 6;
int32 index = 7;
string proposalID = 8;
}
message ProposalRule {
......@@ -28,7 +28,7 @@ message ProposalRule {
int32 day = 3;
// 规则可修改项,如果某项不修改则置为-1
RuleConfig ruleCfg = 4;
RuleConfig ruleCfg = 4;
// 投票相关
int64 startBlockHeight = 5; // 提案开始投票高度
int64 endBlockHeight = 6; // 提案结束投票高度
......@@ -40,8 +40,8 @@ message RevokeProposalRule {
}
message VoteProposalRule {
string proposalID = 1;
bool approve = 2;
string proposalID = 1;
bool approve = 2;
repeated string originAddr = 3;
}
......@@ -51,13 +51,13 @@ message TerminateProposalRule {
// receipt
message ReceiptProposalRule {
AutonomyProposalRule prev = 1;
AutonomyProposalRule current = 2;
AutonomyProposalRule prev = 1;
AutonomyProposalRule current = 2;
}
message LocalProposalRule {
AutonomyProposalRule propRule = 1;
repeated string comments = 2;
repeated string comments = 2;
}
// query
......@@ -76,8 +76,8 @@ message ReplyQueryProposalRule {
// TransferFund action
message TransferFund {
int64 amount = 1;
string note = 2;
int64 amount = 1;
string note = 2;
}
// Comment action
......
......@@ -4,68 +4,68 @@ package types;
// 放贷信息
message Collateralize {
string collateralizeId = 1; //放贷ID,一期放贷对应一个ID
int64 totalBalance = 2; //当期放贷的总金额(ccny)
int64 debtCeiling = 3; //单用户可借出的限额(ccny)
int64 liquidationRatio = 4; //清算比例
int64 stabilityFeeRatio = 5; //稳定费率
string createAddr = 6; //创建人地址
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;//上一个状态
string collateralizeId = 1; //放贷ID,一期放贷对应一个ID
int64 totalBalance = 2; //当期放贷的总金额(ccny)
int64 debtCeiling = 3; //单用户可借出的限额(ccny)
int64 liquidationRatio = 4; //清算比例
int64 stabilityFeeRatio = 5; //稳定费率
string createAddr = 6; //创建人地址
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; //上一个状态
}
// 借出记录
message BorrowRecord {
string accountAddr = 1; //借贷人地址
int64 startTime = 2; //借贷时间
int64 collateralValue = 3; //抵押物价值(bty)
int64 collateralPrice = 4; //抵押物价格
int64 debtValue = 5; //债务价值(ccny)
int64 liquidationPrice = 6; //抵押物清算价格
int32 status = 7; //抵押状态,是否被清算
int64 liquidateTime = 8; //清算时间
int64 expireTime = 9; //超时清算时间
int32 preStatus = 10;//上一次抵押状态,用于告警恢复
string recordId = 11;//借贷id,标识一次借出记录
string collateralizeId = 12;//放贷id
string accountAddr = 1; //借贷人地址
int64 startTime = 2; //借贷时间
int64 collateralValue = 3; //抵押物价值(bty)
int64 collateralPrice = 4; //抵押物价格
int64 debtValue = 5; //债务价值(ccny)
int64 liquidationPrice = 6; //抵押物清算价格
int32 status = 7; //抵押状态,是否被清算
int64 liquidateTime = 8; //清算时间
int64 expireTime = 9; //超时清算时间
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 recordTime = 1; //价格记录时间
int64 btyPrice = 2; // bty价格
int64 btcPrice = 3; // btc价格
int64 ethPrice = 4; // eth价格
}
// action
message CollateralizeAction {
oneof value {
CollateralizeCreate create = 1; //创建一期借贷
CollateralizeBorrow borrow = 2; //借贷
CollateralizeRepay repay = 3; //清算
CollateralizeAppend append = 4; //追加
CollateralizeFeed feed = 5; //喂价
CollateralizeRetrieve retrieve = 6; //收回
CollateralizeManage manage = 7; //全局配置
CollateralizeCreate create = 1; //创建一期借贷
CollateralizeBorrow borrow = 2; //借贷
CollateralizeRepay repay = 3; //清算
CollateralizeAppend append = 4; //追加
CollateralizeFeed feed = 5; //喂价
CollateralizeRetrieve retrieve = 6; //收回
CollateralizeManage manage = 7; //全局配置
}
int32 ty = 10;
}
message CollateralizeManage {
int64 debtCeiling = 1; //单用户可借出的限额(ccny)
int64 liquidationRatio = 2; //清算比例
int64 stabilityFeeRatio = 3; //稳定费
int64 period = 4; //合约期限
int64 totalBalance = 5; //放贷总量
int64 currentTime = 6; //设置时间
int64 debtCeiling = 1; //单用户可借出的限额(ccny)
int64 liquidationRatio = 2; //清算比例
int64 stabilityFeeRatio = 3; //稳定费
int64 period = 4; //合约期限
int64 totalBalance = 5; //放贷总量
int64 currentTime = 6; //设置时间
}
message CollateralizeAddr {
......@@ -73,13 +73,13 @@ message CollateralizeAddr {
}
// 创建放贷
message CollateralizeCreate {
int64 totalBalance = 1; //可借贷总金额
int64 totalBalance = 1; //可借贷总金额
}
// 质押借出
message CollateralizeBorrow {
string collateralizeId = 1; //借贷期数ID
int64 value = 2; //借贷价值(ccny)
string collateralizeId = 1; //借贷期数ID
int64 value = 2; //借贷价值(ccny)
}
// 质押清算
......@@ -90,31 +90,31 @@ message CollateralizeRepay {
// 追加抵押物
message CollateralizeAppend {
string collateralizeId = 1; //借贷期数ID
string recordId = 2; //借贷ID
int64 collateralValue = 3; //追加价值(bty)
string collateralizeId = 1; //借贷期数ID
string recordId = 2; //借贷ID
int64 collateralValue = 3; //追加价值(bty)
}
// 喂价
message CollateralizeFeed {
int32 collType = 1; //抵押物价格类型(1,bty,2,btc,3,eth...)
repeated int64 price = 2; //喂价
repeated int64 volume = 3; //成交量
int32 collType = 1; //抵押物价格类型(1,bty,2,btc,3,eth...)
repeated int64 price = 2; //喂价
repeated int64 volume = 3; //成交量
}
// 收回
message CollateralizeRetrieve {
string collateralizeId = 1; //借贷期数ID
int64 balance = 2; //收回金额
string collateralizeId = 1; //借贷期数ID
int64 balance = 2; //收回金额
}
// exec_local 放贷信息
message ReceiptCollateralize {
string collateralizeId = 1;
string accountAddr = 3;
string recordId = 4;
int32 status = 5;
}
string collateralizeId = 1;
string accountAddr = 3;
string recordId = 4;
int32 status = 5;
}
// exec_local 放贷记录信息列表
message CollateralizeRecords {
......@@ -128,17 +128,17 @@ message ReqCollateralizeInfo {
// 返回一期放贷信息
message RepCollateralizeCurrentInfo {
int32 status = 1;//当期借贷的状态,是否关闭
int64 totalBalance = 2; //当期可借贷的总金额(ccny)
int64 debtCeiling = 3; //单用户可借出的限额(ccny)
int64 liquidationRatio = 4; //清算比例
int64 stabilityFeeRatio = 5; //稳定费
string createAddr = 6; //创建人地址
int64 balance = 7; //剩余可借贷金额(ccny)
int64 period = 8; //合约期限
string collateralizeId = 9; //放贷ID
int64 collBalance = 10;//抵押bty
repeated BorrowRecord borrowRecords = 11;//借贷记录
int32 status = 1; //当期借贷的状态,是否关闭
int64 totalBalance = 2; //当期可借贷的总金额(ccny)
int64 debtCeiling = 3; //单用户可借出的限额(ccny)
int64 liquidationRatio = 4; //清算比例
int64 stabilityFeeRatio = 5; //稳定费
string createAddr = 6; //创建人地址
int64 balance = 7; //剩余可借贷金额(ccny)
int64 period = 8; //合约期限
string collateralizeId = 9; //放贷ID
int64 collBalance = 10; //抵押bty
repeated BorrowRecord borrowRecords = 11; //借贷记录
}
// 根据ID列表查询多期放贷信息
......@@ -153,14 +153,14 @@ message RepCollateralizeCurrentInfos {
// 根据放贷状态查询
message ReqCollateralizeByStatus {
int32 status = 1;
int32 status = 1;
string collID = 2;
}
// 根据用户地址查询
message ReqCollateralizeByAddr {
string addr = 1;
int32 status = 2;
string addr = 1;
int32 status = 2;
string collID = 3;
}
......@@ -173,7 +173,7 @@ message RepCollateralizeIDs {
message ReqCollateralizeRecordByAddr {
string collateralizeId = 1;
string addr = 2;
int32 status = 3;
int32 status = 3;
string recordId = 4;
}
......@@ -202,13 +202,13 @@ message RepCollateralizeRecord {
// 返回放贷配置
message RepCollateralizeConfig {
int64 debtCeiling = 1; //单用户可借出的限额(ccny)
int64 liquidationRatio = 2; //清算比例
int64 stabilityFeeRatio = 3; //稳定费
int64 period = 4; //合约期限
int64 totalBalance = 5; //放贷总量
int64 balance = 6; //剩余放贷额度
int64 currentTime = 7; //设置时间
int64 debtCeiling = 1; //单用户可借出的限额(ccny)
int64 liquidationRatio = 2; //清算比例
int64 stabilityFeeRatio = 3; //稳定费
int64 period = 4; //合约期限
int64 totalBalance = 5; //放贷总量
int64 balance = 6; //剩余放贷额度
int64 currentTime = 7; //设置时间
}
// 返回最新抵押物价格
......
......@@ -2,327 +2,324 @@ syntax = "proto3";
package types;
//CandidatorInfo 候选节点信息
// CandidatorInfo 候选节点信息
message CandidatorInfo {
bytes pubkey = 1; //候选节点的公钥
string address = 2; //后续节点的地址
string IP = 3; //候选节点的运行IP
int64 votes = 4; //候选节点的投票数
int64 status = 5; //候选节点的状态,0:注册,1:当选,2:取消注册
int64 preStatus = 6;
int64 startTime = 7; //创建候选者的时间
int64 startHeight = 8; //创建候选者的时间
string startTxHash = 9; //创建候选者的交易hash
int64 startIndex = 10; //创建候选者的交易index
int64 index = 11;
int64 preIndex = 12;
repeated DposVoter voters = 13;
}
//DposVoter 投票者信息
message DposVoter{
bytes pubkey = 1; //候选节点的公钥
string address = 2; //后续节点的地址
string IP = 3; //候选节点的运行IP
int64 votes = 4; //候选节点的投票数
int64 status = 5; //候选节点的状态,0:注册,1:当选,2:取消注册
int64 preStatus = 6;
int64 startTime = 7; //创建候选者的时间
int64 startHeight = 8; //创建候选者的时间
string startTxHash = 9; //创建候选者的交易hash
int64 startIndex = 10; //创建候选者的交易index
int64 index = 11;
int64 preIndex = 12;
repeated DposVoter voters = 13;
}
// DposVoter 投票者信息
message DposVoter {
string fromAddr = 1;
bytes pubkey = 2; //候选节点的公钥
int64 votes = 3; //投给候选节点的票数,不能超过锁在合约中的未使用票数
bytes pubkey = 2; //候选节点的公钥
int64 votes = 3; //投给候选节点的票数,不能超过锁在合约中的未使用票数
int64 index = 4;
int64 time = 5;
}
//Candidator 候选节点信息
// Candidator 候选节点信息
message Candidator {
bytes pubkey = 1; //候选节点的公钥
string address = 2; //后续节点的地址
string IP = 3; //候选节点的运行IP
int64 votes = 4; //候选节点的投票数
int64 status = 5; //候选节点的状态,0:注册,1:当选,2:取消注册
bytes pubkey = 1; //候选节点的公钥
string address = 2; //后续节点的地址
string IP = 3; //候选节点的运行IP
int64 votes = 4; //候选节点的投票数
int64 status = 5; //候选节点的状态,0:注册,1:当选,2:取消注册
}
//DposCandidatorRegist 注册Dpos候选节点,必须抵押一定数量的币,比如:10000个币
message DposCandidatorRegist{
string pubkey = 1; //候选节点的公钥
string address = 2; //候选节点的地址
string IP = 3; //候选节点的共识IP地址
// DposCandidatorRegist 注册Dpos候选节点,必须抵押一定数量的币,比如:10000个币
message DposCandidatorRegist {
string pubkey = 1; //候选节点的公钥
string address = 2; //候选节点的地址
string IP = 3; //候选节点的共识IP地址
}
//DposCandidatorCancelRegist 注销Dpos候选节点,解冻抵押的币
message DposCandidatorCancelRegist{
string pubkey = 1; //候选节点的公钥
string address = 2; //候选节点的地址
// DposCandidatorCancelRegist 注销Dpos候选节点,解冻抵押的币
message DposCandidatorCancelRegist {
string pubkey = 1; //候选节点的公钥
string address = 2; //候选节点的地址
}
//DposVote 为Dpos候选节点投票
message DposVote{
string fromAddr = 1;
string pubkey = 2; //候选节点的公钥
int64 votes = 3; //投给候选节点的票数,不能超过锁在合约中的未使用票数
// DposVote 为Dpos候选节点投票
message DposVote {
string fromAddr = 1;
string pubkey = 2; //候选节点的公钥
int64 votes = 3; //投给候选节点的票数,不能超过锁在合约中的未使用票数
}
//DposCancelVote 撤销为Dpos候选节点投票
message DposCancelVote{
string pubkey = 1; //候选节点的公钥
int64 index = 3;
// DposCancelVote 撤销为Dpos候选节点投票
message DposCancelVote {
string pubkey = 1; //候选节点的公钥
int64 index = 3;
}
//DposVoteAction DposVote动作
// DposVoteAction DposVote动作
message DposVoteAction {
oneof value {
DposCandidatorRegist regist = 1;
DposCandidatorRegist regist = 1;
DposCandidatorCancelRegist cancelRegist = 2;
DposCandidatorRegist reRegist = 3;
DposVote vote = 4;
DposCancelVote cancelVote = 5;
CandidatorQuery candidatorQuery = 6;
DposVoteQuery voteQuery = 7;
DposVrfMRegist registVrfM = 8;
DposVrfRPRegist registVrfRP = 9;
DposVrfQuery vrfQuery = 10;
DposCBInfo recordCB = 11;
DposCBQuery cbQuery = 12;
TopNCandidatorRegist registTopN = 13;
TopNCandidatorsQuery topNQuery = 14;
DposCandidatorRegist reRegist = 3;
DposVote vote = 4;
DposCancelVote cancelVote = 5;
CandidatorQuery candidatorQuery = 6;
DposVoteQuery voteQuery = 7;
DposVrfMRegist registVrfM = 8;
DposVrfRPRegist registVrfRP = 9;
DposVrfQuery vrfQuery = 10;
DposCBInfo recordCB = 11;
DposCBQuery cbQuery = 12;
TopNCandidatorRegist registTopN = 13;
TopNCandidatorsQuery topNQuery = 14;
}
int32 ty = 15;
}
//CandidatorQuery 候选节点查询
message CandidatorQuery{
repeated string pubkeys = 1; //候选节点公钥集合
int32 topN = 2; //topN
int32 ty = 3; //1:按公钥集合查询,2:按topN票数查询
// CandidatorQuery 候选节点查询
message CandidatorQuery {
repeated string pubkeys = 1; //候选节点公钥集合
int32 topN = 2; // topN
int32 ty = 3; // 1:按公钥集合查询,2:按topN票数查询
}
//JSONCandidator 候选节点Json格式信息
// JSONCandidator 候选节点Json格式信息
message JSONCandidator {
string pubkey = 1; //候选节点的公钥
string address = 2; //后续节点的地址
string IP = 3; //候选节点的运行IP
int64 votes = 4; //候选节点的投票数
int64 status = 5; //候选节点的状态,0:注册,1:当选,2:取消注册
string pubkey = 1; //候选节点的公钥
string address = 2; //后续节点的地址
string IP = 3; //候选节点的运行IP
int64 votes = 4; //候选节点的投票数
int64 status = 5; //候选节点的状态,0:注册,1:当选,2:取消注册
}
//CandidatorReply 候选节点查询响应
message CandidatorReply{
repeated JSONCandidator candidators = 1; //候选节点
// CandidatorReply 候选节点查询响应
message CandidatorReply {
repeated JSONCandidator candidators = 1; //候选节点
}
//DposVoteQuery 投票查询
message DposVoteQuery{
repeated string pubkeys = 1; //候选节点的公钥,如果为空,则查询所有,否则,查询该地址给具体候选节点的投票
string addr = 2; //要查询的地址
// 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; //投给候选节点的票数,不能超过锁在合约中的未使用票数
string pubkey = 2; //候选节点的公钥
int64 votes = 3; //投给候选节点的票数,不能超过锁在合约中的未使用票数
int64 index = 4;
int64 time = 5;
}
//DposVoteReply 投票查询响应
message DposVoteReply{
repeated JSONDposVoter votes = 1; //某地址对具体候选节点的投票情况
// DposVoteReply 投票查询响应
message DposVoteReply {
repeated JSONDposVoter votes = 1; //某地址对具体候选节点的投票情况
}
//ReceiptCandicator 候选者收据信息
// ReceiptCandicator 候选者收据信息
message ReceiptCandicator {
int64 Index = 1;
bytes pubkey = 2;
string address = 3;
int64 status = 4;
int64 preStatus = 5;
bool statusChange = 6;
int32 voteType = 7;
DposVoter vote = 8;
string fromAddr = 9;
CandidatorInfo candInfo = 10;
int64 time = 11;
}
//DposVrfM VrfM信息
message DposVrfM{
int64 Index = 1;
bytes pubkey = 2;
int64 cycle = 3;
int64 height = 4;
bytes m = 5; //vrf的输入
int64 time = 6;
int64 cycleStart = 7;
int64 cycleMiddle = 8;
int64 cycleStop = 9;
}
//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
int64 time = 8;
int64 cycleStart = 9;
int64 cycleMiddle = 10;
int64 cycleStop = 11;
}
//DposVrfMRegist VrfM注册请求
message DposVrfMRegist{
string pubkey = 1;
int64 cycle = 2;
string m = 3; //vrf的输入
}
//DposVrfRPRegist VrfRP注册请求
message DposVrfRPRegist{
string pubkey = 1;
int64 cycle = 2;
string r = 3; //vrf的hash
string p = 4; //vrf的hash的proof
}
//ReceiptVrf vrf收据信息
int64 Index = 1;
bytes pubkey = 2;
string address = 3;
int64 status = 4;
int64 preStatus = 5;
bool statusChange = 6;
int32 voteType = 7;
DposVoter vote = 8;
string fromAddr = 9;
CandidatorInfo candInfo = 10;
int64 time = 11;
}
// DposVrfM VrfM信息
message DposVrfM {
int64 Index = 1;
bytes pubkey = 2;
int64 cycle = 3;
int64 height = 4;
bytes m = 5; // vrf的输入
int64 time = 6;
int64 cycleStart = 7;
int64 cycleMiddle = 8;
int64 cycleStop = 9;
}
// 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
int64 time = 8;
int64 cycleStart = 9;
int64 cycleMiddle = 10;
int64 cycleStop = 11;
}
// DposVrfMRegist VrfM注册请求
message DposVrfMRegist {
string pubkey = 1;
int64 cycle = 2;
string m = 3; // vrf的输入
}
// DposVrfRPRegist VrfRP注册请求
message DposVrfRPRegist {
string pubkey = 1;
int64 cycle = 2;
string r = 3; // vrf的hash
string p = 4; // vrf的hash的proof
}
// ReceiptVrf vrf收据信息
message ReceiptVrf {
int64 Index = 1;
bytes pubkey = 2;
int64 status = 3;
int64 cycle = 4;
int64 height = 5;
bytes m = 6;
bytes r = 7;
bytes p = 8;
int64 time = 9;
int64 cycleStart = 10;
int64 cycleMiddle = 11;
int64 cycleStop = 12;
}
//VrfInfo vrf信息
int64 Index = 1;
bytes pubkey = 2;
int64 status = 3;
int64 cycle = 4;
int64 height = 5;
bytes m = 6;
bytes r = 7;
bytes p = 8;
int64 time = 9;
int64 cycleStart = 10;
int64 cycleMiddle = 11;
int64 cycleStop = 12;
}
// VrfInfo vrf信息
message VrfInfo {
int64 Index = 1;
bytes pubkey = 2;
int64 cycle = 4;
int64 height = 5;
bytes m = 6;
bytes r = 7;
bytes p = 8;
int64 time = 9;
int64 Index = 1;
bytes pubkey = 2;
int64 cycle = 4;
int64 height = 5;
bytes m = 6;
bytes r = 7;
bytes p = 8;
int64 time = 9;
}
//DposVrfQuery vrf查询请求
message DposVrfQuery{
repeated string pubkeys = 1;
int64 ty = 2;
int64 timestamp = 3;
int64 cycle = 4;
// 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;
int64 cycle = 4;
int64 height = 5;
string m = 6;
string r = 7;
string p = 8;
int64 time = 9;
}
//DposVrfReply vrf查询响应
message DposVrfReply{
int64 Index = 1;
string pubkey = 2;
int64 cycle = 4;
int64 height = 5;
string m = 6;
string r = 7;
string p = 8;
int64 time = 9;
}
// DposVrfReply vrf查询响应
message DposVrfReply {
repeated JSONVrfInfo vrf = 1;
}
//DposCycleBoundaryInfo cycle边界信息
// DposCycleBoundaryInfo cycle边界信息
message DposCycleBoundaryInfo {
int64 cycle = 1;
int64 stopHeight = 2;
bytes stopHash = 3;
bytes pubkey = 4;
bytes signature = 5;
int64 cycle = 1;
int64 stopHeight = 2;
bytes stopHash = 3;
bytes pubkey = 4;
bytes signature = 5;
}
//DposCBInfo cycle边界记录请求消息
// DposCBInfo cycle边界记录请求消息
message DposCBInfo {
int64 cycle = 1;
int64 stopHeight = 2;
string stopHash = 3;
string pubkey = 4;
string signature = 5;
int64 cycle = 1;
int64 stopHeight = 2;
string stopHash = 3;
string pubkey = 4;
string signature = 5;
}
//DposCBQuery cycle边界记录查询请求
// DposCBQuery cycle边界记录查询请求
message DposCBQuery {
int64 cycle = 1;
int64 stopHeight = 2;
string stopHash = 3;
int32 ty = 4;
int64 cycle = 1;
int64 stopHeight = 2;
string stopHash = 3;
int32 ty = 4;
}
//DposCBReply cycle边界记录查询响应
// DposCBReply cycle边界记录查询响应
message DposCBReply {
DposCBInfo cbInfo = 1;
}
//ReceiptCB CycleBoundary收据信息
// ReceiptCB CycleBoundary收据信息
message ReceiptCB {
int64 Index = 1;
bytes pubkey = 2;
int64 status = 3;
int64 cycle = 4;
int64 height = 5;
int64 time = 6;
int64 cycleStart = 7;
int64 cycleMiddle = 8;
int64 cycleStop = 9;
DposCycleBoundaryInfo cbInfo = 10;
}
//TopNCandidator topN候选者
message TopNCandidator{
repeated Candidator cands = 1;
bytes hash = 2;
int64 height = 3;
bytes signerPubkey = 4;
bytes signature = 5;
}
//TopNCandidators topN候选者(复数)
message TopNCandidators{
int64 Index = 1;
bytes pubkey = 2;
int64 status = 3;
int64 cycle = 4;
int64 height = 5;
int64 time = 6;
int64 cycleStart = 7;
int64 cycleMiddle = 8;
int64 cycleStop = 9;
DposCycleBoundaryInfo cbInfo = 10;
}
// TopNCandidator topN候选者
message TopNCandidator {
repeated Candidator cands = 1;
bytes hash = 2;
int64 height = 3;
bytes signerPubkey = 4;
bytes signature = 5;
}
// TopNCandidators topN候选者(复数)
message TopNCandidators {
repeated TopNCandidator candsVotes = 1;
int64 version = 2;
int64 status = 3;
int64 version = 2;
int64 status = 3;
repeated Candidator finalCands = 4;
}
//TopNCandidatorRegist topN候选者注册请求
message TopNCandidatorRegist{
TopNCandidator cand = 1;
// TopNCandidatorRegist topN候选者注册请求
message TopNCandidatorRegist {
TopNCandidator cand = 1;
}
//TopNCandidatorsQuery topN候选者查询请求
message TopNCandidatorsQuery{
int64 version = 1;
// TopNCandidatorsQuery topN候选者查询请求
message TopNCandidatorsQuery {
int64 version = 1;
}
//TopNCandidatorsReply topN候选者查询响应
message TopNCandidatorsReply{
TopNCandidators topN = 1;
// TopNCandidatorsReply topN候选者查询响应
message TopNCandidatorsReply {
TopNCandidators topN = 1;
}
//ReceiptTopN topN注册的收据信息
// ReceiptTopN topN注册的收据信息
message ReceiptTopN {
int64 Index = 1;
bytes pubkey = 2;
int64 status = 3;
int64 version = 4;
int64 height = 5;
int64 time = 6;
TopNCandidator topN = 10;
int64 Index = 1;
bytes pubkey = 2;
int64 status = 3;
int64 version = 4;
int64 height = 5;
int64 time = 6;
TopNCandidator topN = 10;
}
......@@ -3,38 +3,38 @@ package echo;
// ping操作action
message Ping {
string msg = 1;
string msg = 1;
}
// pang操作action
message Pang {
string msg = 1;
string msg = 1;
}
// 本执行器的统一Action结构
message EchoAction {
oneof value {
Ping ping = 1;
Pang pang = 2;
Ping ping = 1;
Pang pang = 2;
}
int32 ty = 3;
}
// ping操作生成的日志结构
message PingLog {
string msg = 1;
string echo = 2;
int32 count = 3;
string msg = 1;
string echo = 2;
int32 count = 3;
}
// pang操作生成的日志结构
message PangLog {
string msg = 1;
string echo = 2;
int32 count = 3;
string msg = 1;
string echo = 2;
int32 count = 3;
}
// 查询请求结构
message Query {
string msg = 1;
string msg = 1;
}
// 查询结果结构
message QueryResult {
string msg = 1;
int32 count = 2;
string msg = 1;
int32 count = 2;
}
\ No newline at end of file
......@@ -149,33 +149,33 @@ message EvmQueryResp {
}
message EvmContractCreateReq {
string code = 1;
int64 fee = 2;
string note = 3;
string alias = 4;
string caller = 5;
string abi = 6;
string expire = 7;
string paraName = 8;
string code = 1;
int64 fee = 2;
string note = 3;
string alias = 4;
string caller = 5;
string abi = 6;
string expire = 7;
string paraName = 8;
}
message EvmContractCallReq {
uint64 amount = 1;
string code = 2;
int64 fee = 3;
string note = 4;
string caller = 5;
string abi = 6;
string exec = 7;
string expire = 8;
string paraName = 9;
uint64 amount = 1;
string code = 2;
int64 fee = 3;
string note = 4;
string caller = 5;
string abi = 6;
string exec = 7;
string expire = 8;
string paraName = 9;
}
message EvmContractTransferReq {
string caller = 1;
float amount = 2;
string exec = 3;
string expire = 4;
bool isWithdraw = 5;
string paraName = 6;
string caller = 1;
float amount = 2;
string exec = 3;
string expire = 4;
bool isWithdraw = 5;
string paraName = 6;
}
\ No newline at end of file
syntax = "proto3";
package types;
message Exchange {
}
message Exchange {}
message ExchangeAction {
oneof value {
LimitOrder limitOrder = 1;
LimitOrder limitOrder = 1;
MarketOrder marketOrder = 2;
RevokeOrder revokeOrder = 3;
}
......@@ -15,11 +14,11 @@ message ExchangeAction {
//限价订单
message LimitOrder {
//交易对
asset leftAsset = 1;
asset leftAsset = 1;
//交易对
asset rightAsset = 2;
asset rightAsset = 2;
//价格
int64 price = 3;
int64 price = 3;
//总量
int64 amount = 4;
//操作, 1为买,2为卖
......@@ -29,7 +28,7 @@ message LimitOrder {
//市价委托
message MarketOrder {
//资产1
asset leftAsset = 1;
asset leftAsset = 1;
//资产2
asset rightAsset = 2;
//总量
......@@ -41,7 +40,7 @@ message MarketOrder {
//撤回订单
message RevokeOrder {
//订单号
int64 orderID = 1;
int64 orderID = 1;
}
//资产类型
message asset {
......@@ -51,9 +50,9 @@ message asset {
//订单信息
message Order {
int64 orderID = 1;
int64 orderID = 1;
oneof value {
LimitOrder limitOrder = 2;
LimitOrder limitOrder = 2;
MarketOrder marketOrder = 3;
}
//挂单类型
......@@ -63,7 +62,7 @@ message Order {
//成交均价
int64 AVG_price = 6;
//余额
int64 balance = 7;
int64 balance = 7;
//状态,0 挂单中ordered, 1 完成completed, 2撤回 revoked
int32 status = 8;
//用户地址
......@@ -77,24 +76,24 @@ message Order {
//查询接口
message QueryMarketDepth {
//资产1
asset leftAsset = 1;
asset leftAsset = 1;
//资产2
asset rightAsset = 2;
//操作, 1为买,2为卖
int32 op = 3;
// 这里用价格作为索引值
string primaryKey = 4;
string primaryKey = 4;
//单页返回多少条记录,默认返回10条,为了系统安全最多单次只能返回20条
int32 count = 5;
}
//市场深度
message MarketDepth {
//资产1
asset leftAsset = 1;
asset leftAsset = 1;
//资产2
asset rightAsset = 2;
//价格
int64 price = 3;
int64 price = 3;
//总量
int64 amount = 4;
//操作, 1为买,2为卖
......@@ -102,14 +101,14 @@ message MarketDepth {
}
//查询接口返回的市场深度列表
message MarketDepthList {
repeated MarketDepth list = 1;
string primaryKey = 2;
repeated MarketDepth list = 1;
string primaryKey = 2;
}
//查询最新得成交信息,外部接口
message QueryHistoryOrderList {
//资产1
asset leftAsset = 1;
asset leftAsset = 1;
//资产2
asset rightAsset = 2;
// 索引值
......@@ -122,7 +121,7 @@ message QueryHistoryOrderList {
//根据orderID去查询订单信息
message QueryOrder {
int64 orderID = 1;
int64 orderID = 1;
}
//根据地址,状态查询用户自己的挂单信息
message QueryOrderList {
......@@ -139,17 +138,14 @@ message QueryOrderList {
}
//订单列表
message OrderList {
repeated Order list = 1;
string primaryKey = 2;
repeated Order list = 1;
string primaryKey = 2;
}
//exchange执行票据日志
// exchange执行票据日志
message ReceiptExchange {
Order order = 1;
Order order = 1;
repeated Order matchOrders = 2;
int64 index = 3;
}
service exchange {
int64 index = 3;
}
service exchange {}
......@@ -4,235 +4,234 @@ import "transaction.proto";
package types;
//GuessGame 竞猜游戏详情
// GuessGame 竞猜游戏详情
message GuessGame {
string gameID = 1; //游戏ID
int32 status = 2; //游戏的状态:创建->投注->截止投注->开奖
int32 preStatus = 3;
int64 startTime = 4; //创建游戏的时间
int64 startHeight = 5; //创建游戏的时间
string startTxHash = 6; //创建游戏的交易hash
int64 startIndex = 7; //创建游戏的交易index
string topic = 8; //主题
string category = 9; //分类
string options = 10; //选项
int64 maxBetHeight = 11; //截止下注的块高
int64 maxBetsOneTime = 12; //单次可以下多少注,默认100
int64 maxBetsNumber = 13; //最多可以下多少注
int64 devFeeFactor = 14; //开发者抽成比例
string devFeeAddr = 15; //开发者地址
int64 platFeeFactor = 16; //平台抽成比例
string platFeeAddr = 17; //平台地址
int64 expireHeight = 18; //游戏过期区块高度
string adminAddr = 19; //游戏创建者地址,只有该地址可以开奖
int64 betsNumber = 20; //已下注数,如果数量达到maxBetsNumber,则不允许再下注
repeated GuessPlayer plays = 21; //参与游戏下注的玩家投注信息
string result = 22; //公布的中奖结果
GuessBetStat betStat = 23;
int64 index = 24;
int64 preIndex = 25;
bool drivenByAdmin = 26;
}
//GuessPlayer 竞猜玩家信息
string gameID = 1; //游戏ID
int32 status = 2; //游戏的状态:创建->投注->截止投注->开奖
int32 preStatus = 3;
int64 startTime = 4; //创建游戏的时间
int64 startHeight = 5; //创建游戏的时间
string startTxHash = 6; //创建游戏的交易hash
int64 startIndex = 7; //创建游戏的交易index
string topic = 8; //主题
string category = 9; //分类
string options = 10; //选项
int64 maxBetHeight = 11; //截止下注的块高
int64 maxBetsOneTime = 12; //单次可以下多少注,默认100
int64 maxBetsNumber = 13; //最多可以下多少注
int64 devFeeFactor = 14; //开发者抽成比例
string devFeeAddr = 15; //开发者地址
int64 platFeeFactor = 16; //平台抽成比例
string platFeeAddr = 17; //平台地址
int64 expireHeight = 18; //游戏过期区块高度
string adminAddr = 19; //游戏创建者地址,只有该地址可以开奖
int64 betsNumber = 20; //已下注数,如果数量达到maxBetsNumber,则不允许再下注
repeated GuessPlayer plays = 21; //参与游戏下注的玩家投注信息
string result = 22; //公布的中奖结果
GuessBetStat betStat = 23;
int64 index = 24;
int64 preIndex = 25;
bool drivenByAdmin = 26;
}
// GuessPlayer 竞猜玩家信息
message GuessPlayer {
string addr = 1;
GuessBet bet = 2;
string addr = 1;
GuessBet bet = 2;
}
//GuessBet 竞猜下注信息
// GuessBet 竞猜下注信息
message GuessBet {
string option = 1;
string option = 1;
int64 betsNumber = 2;
bool isWinner = 3;
int64 profit = 4;
int64 index = 5;
int64 preIndex = 6;
bool isWinner = 3;
int64 profit = 4;
int64 index = 5;
int64 preIndex = 6;
}
//GuessBetStat 竞猜下注统计信息
// GuessBetStat 竞猜下注统计信息
message GuessBetStat {
int64 totalBetTimes = 1;
int64 totalBetsNumber = 2;
int64 totalBetTimes = 1;
int64 totalBetsNumber = 2;
repeated GuessBetStatItem items = 3;
}
//GuessBetStat 竞猜下注子选项统计信息
// GuessBetStat 竞猜下注子选项统计信息
message GuessBetStatItem {
string option = 1;
int64 betsNumber = 2;
int64 betsTimes = 3;
string option = 1;
int64 betsNumber = 2;
int64 betsTimes = 3;
}
//GuessGameAction 竞猜游戏动作
// GuessGameAction 竞猜游戏动作
message GuessGameAction {
oneof value {
GuessGameStart start = 1;
GuessGameBet bet = 2;
GuessGameStart start = 1;
GuessGameBet bet = 2;
GuessGameStopBet stopBet = 3;
GuessGameAbort abort = 4;
GuessGameAbort abort = 4;
GuessGamePublish publish = 5;
GuessGameQuery query = 6;
GuessGameQuery query = 6;
}
int32 ty = 7;
}
//GuessGameStart 游戏创建
message GuessGameStart{
string topic = 1;
string options = 2;
string category = 3;
int64 maxBetHeight = 4;
int64 maxBetsOneTime= 5;
int64 maxBetsNumber = 6;
int64 devFeeFactor = 7; //开发者抽成比例
string devFeeAddr = 8; //开发者地址
int64 platFeeFactor = 9; //平台抽成比例
string platFeeAddr = 10; //平台地址
int64 expireHeight = 11;
bool drivenByAdmin = 12;
}
//GuessGameBet 参与游戏下注
message GuessGameBet{
string gameID = 1;
string option = 2;
int64 betsNum = 3;
// GuessGameStart 游戏创建
message GuessGameStart {
string topic = 1;
string options = 2;
string category = 3;
int64 maxBetHeight = 4;
int64 maxBetsOneTime = 5;
int64 maxBetsNumber = 6;
int64 devFeeFactor = 7; //开发者抽成比例
string devFeeAddr = 8; //开发者地址
int64 platFeeFactor = 9; //平台抽成比例
string platFeeAddr = 10; //平台地址
int64 expireHeight = 11;
bool drivenByAdmin = 12;
}
//GuessGameStopBet 游戏停止下注
message GuessGameStopBet{
string gameID = 1;
// GuessGameBet 参与游戏下注
message GuessGameBet {
string gameID = 1;
string option = 2;
int64 betsNum = 3;
}
//GuessGameAbort 游戏异常终止,退还下注
message GuessGameAbort{
string gameID = 1;
// GuessGameStopBet 游戏停止下注
message GuessGameStopBet {
string gameID = 1;
}
//GuessGamePublish 游戏结果揭晓
message GuessGamePublish{
string gameID = 1;
string result = 2;
// GuessGameAbort 游戏异常终止,退还下注
message GuessGameAbort {
string gameID = 1;
}
//GuessGameQuery 查询游戏结果
message GuessGameQuery{
string gameID = 1;
uint32 ty = 2;
// GuessGamePublish 游戏结果揭晓
message GuessGamePublish {
string gameID = 1;
string result = 2;
}
//QueryGuessGameInfo 游戏信息查询消息
message QueryGuessGameInfo {
// GuessGameQuery 查询游戏结果
message GuessGameQuery {
string gameID = 1;
string addr = 2;
int32 status = 3;
int64 index = 4;
string adminAddr = 5;
string category = 6;
string primaryKey = 7;
uint32 ty = 2;
}
//ReplyGuessGameInfo 游戏信息查询响应消息
// QueryGuessGameInfo 游戏信息查询消息
message QueryGuessGameInfo {
string gameID = 1;
string addr = 2;
int32 status = 3;
int64 index = 4;
string adminAddr = 5;
string category = 6;
string primaryKey = 7;
}
// 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;
int32 preStatus = 3;
int32 status = 4;
string addr = 5;
string adminAddr = 6;
int64 preIndex = 7;
int64 index = 8;
string category = 9;
bool statusChange = 10;
bool bet = 11;
string option = 12;
int64 betsNumber = 13;
GuessGame game = 14;
}
//UserBet 用户下注信息
int64 startIndex = 1;
string gameID = 2;
int32 preStatus = 3;
int32 status = 4;
string addr = 5;
string adminAddr = 6;
int64 preIndex = 7;
int64 index = 8;
string category = 9;
bool statusChange = 10;
bool bet = 11;
string option = 12;
int64 betsNumber = 13;
GuessGame game = 14;
}
// UserBet 用户下注信息
message UserBet {
int64 startIndex = 1;
int64 index = 2;
string gameID = 3;
string addr = 4;
string option = 5;
int64 betsNumber = 6;
int64 startIndex = 1;
int64 index = 2;
string gameID = 3;
string addr = 4;
string option = 5;
int64 betsNumber = 6;
}
//GuessStartTxReq 构造start交易的请求
// GuessStartTxReq 构造start交易的请求
message GuessStartTxReq {
string topic = 1;
string options = 2;
string category = 3;
int64 maxHeight = 4;
int64 maxBetHeight = 5;
int64 maxBetsOneTime = 6;
int64 maxBetsNumber = 7;
int64 devFeeFactor = 8;
string devFeeAddr = 9;
int64 platFeeFactor = 10;
string platFeeAddr = 11;
int64 expireHeight = 12;
int64 fee = 13;
}
//GuessBetTxReq 构造bet交易的请求
string topic = 1;
string options = 2;
string category = 3;
int64 maxHeight = 4;
int64 maxBetHeight = 5;
int64 maxBetsOneTime = 6;
int64 maxBetsNumber = 7;
int64 devFeeFactor = 8;
string devFeeAddr = 9;
int64 platFeeFactor = 10;
string platFeeAddr = 11;
int64 expireHeight = 12;
int64 fee = 13;
}
// GuessBetTxReq 构造bet交易的请求
message GuessBetTxReq {
string gameID = 1;
string option = 2;
int64 bets = 3;
int64 fee = 4;
string gameID = 1;
string option = 2;
int64 bets = 3;
int64 fee = 4;
}
//GuessStopBetTxReq 构造stopBet交易的请求
// GuessStopBetTxReq 构造stopBet交易的请求
message GuessStopBetTxReq {
string gameID = 1;
int64 fee = 2;
string gameID = 1;
int64 fee = 2;
}
//GuessAbortTxReq 构造abort交易的请求
// GuessAbortTxReq 构造abort交易的请求
message GuessAbortTxReq {
string gameID = 1;
int64 fee = 2;
string gameID = 1;
int64 fee = 2;
}
//GuessPublishTxReq 构造publish交易的请求
// GuessPublishTxReq 构造publish交易的请求
message GuessPublishTxReq {
string gameID = 1;
string result = 2;
int64 fee = 3;
string gameID = 1;
string result = 2;
int64 fee = 3;
}
// GuessGameRecord game信息查询记录
message GuessGameRecord {
string gameID = 1;
int64 startIndex = 2;
string gameID = 1;
int64 startIndex = 2;
}
// GuessGameRecords game信息查询记录集
message GuessGameRecords {
repeated GuessGameRecord records = 1;
string primaryKey = 2;
repeated GuessGameRecord records = 1;
string primaryKey = 2;
}
// service guess 为guess 对外提供服务的接口
service guess {
//游戏开始
......
......@@ -4,54 +4,54 @@ package types;
// 发行信息
message Issuance {
string issuanceId = 1; //发行ID,一期发行对应一个ID
int64 totalBalance = 2; //当期发行的总金额(ccny)
int64 debtCeiling = 3; //单用户可借出的限额(ccny)
int64 liquidationRatio = 4; //清算比例
int64 collateralValue = 5; //抵押物总数量(bty)
int64 debtValue = 6; //产生的ccny数量
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;//发行地址
string issuanceId = 1; //发行ID,一期发行对应一个ID
int64 totalBalance = 2; //当期发行的总金额(ccny)
int64 debtCeiling = 3; //单用户可借出的限额(ccny)
int64 liquidationRatio = 4; //清算比例
int64 collateralValue = 5; //抵押物总数量(bty)
int64 debtValue = 6; //产生的ccny数量
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; //发行地址
}
// 抵押记录
message DebtRecord {
string accountAddr = 1; //抵押人地址
int64 startTime = 2; //抵押时间
int64 collateralValue = 3; //抵押物价值(bty)
int64 collateralPrice = 4; //抵押物价格
int64 debtValue = 5; //债务价值(ccny)
int64 liquidationPrice = 6; //抵押物清算价格
int32 status = 7; //抵押状态,是否被清算
int64 liquidateTime = 8; //清算时间
int64 expireTime = 9; //超时清算时间
int32 preStatus = 10;//上一次抵押状态,用于告警恢复
string debtId = 11;//借贷id
string issuId = 12;//发行id
string accountAddr = 1; //抵押人地址
int64 startTime = 2; //抵押时间
int64 collateralValue = 3; //抵押物价值(bty)
int64 collateralPrice = 4; //抵押物价格
int64 debtValue = 5; //债务价值(ccny)
int64 liquidationPrice = 6; //抵押物清算价格
int32 status = 7; //抵押状态,是否被清算
int64 liquidateTime = 8; //清算时间
int64 expireTime = 9; //超时清算时间
int32 preStatus = 10; //上一次抵押状态,用于告警恢复
string debtId = 11; //借贷id
string issuId = 12; //发行id
}
// 资产价格记录
message IssuanceAssetPriceRecord {
int64 recordTime = 1; //价格记录时间
int64 btyPrice = 2; //bty价格
int64 recordTime = 1; //价格记录时间
int64 btyPrice = 2; // bty价格
}
// action
message IssuanceAction {
oneof value {
IssuanceCreate create = 1; //创建一期发行
IssuanceDebt debt = 2; //抵押
IssuanceRepay repay = 3; //清算
IssuanceFeed feed = 4; //喂价
IssuanceClose close = 5; //关闭
IssuanceManage manage = 6; //全局配置
IssuanceCreate create = 1; //创建一期发行
IssuanceDebt debt = 2; //抵押
IssuanceRepay repay = 3; //清算
IssuanceFeed feed = 4; //喂价
IssuanceClose close = 5; //关闭
IssuanceManage manage = 6; //全局配置
}
int32 ty = 10;
}
......@@ -62,10 +62,10 @@ message IssuanceManage {
// 创建发行
message IssuanceCreate {
int64 totalBalance = 1; //发行总金额
int64 debtCeiling = 2; //单用户可借出的限额(ccny)
int64 liquidationRatio = 3; //清算比例
int64 period = 4; //发行最大期限
int64 totalBalance = 1; //发行总金额
int64 debtCeiling = 2; //单用户可借出的限额(ccny)
int64 liquidationRatio = 3; //清算比例
int64 period = 4; //发行最大期限
}
// 抵押
......@@ -82,9 +82,9 @@ message IssuanceRepay {
// 喂价
message IssuanceFeed {
int32 collType = 1; //抵押物价格类型(1,bty,2,btc,3,eth...)
repeated int64 price = 2; //喂价
repeated int64 volume = 3; //成交量
int32 collType = 1; //抵押物价格类型(1,bty,2,btc,3,eth...)
repeated int64 price = 2; //喂价
repeated int64 volume = 3; //成交量
}
// 借贷关闭
......@@ -94,16 +94,16 @@ message IssuanceClose {
// exec_local 发行信息
message ReceiptIssuance {
string issuanceId = 1;
string accountAddr = 2;
string debtId = 3;
int32 status = 4;
string issuanceId = 1;
string accountAddr = 2;
string debtId = 3;
int32 status = 4;
}
// exec_local issuid记录信息
message ReceiptIssuanceID {
string issuanceId = 1;
int32 status = 2;
string issuanceId = 1;
int32 status = 2;
}
// exec_local 抵押记录信息列表
......@@ -118,16 +118,16 @@ message ReqIssuanceInfo {
// 返回一期发行信息
message RepIssuanceCurrentInfo {
int32 status = 1; //当期发行的状态,是否关闭
int64 totalBalance = 2; //当期发行总金额(ccny)
int64 debtCeiling = 3; //单用户可借出的限额(ccny)
int64 liquidationRatio = 4; //清算比例
int64 balance = 5; //剩余可借贷金额(ccny)
int64 collateralValue = 6; //抵押物总数量(bty)
int64 debtValue = 7; //产生的ccny数量
int64 period = 8; //发行最大期限
string issuId = 9; //发行ID
int64 createTime = 10;//创建时间
int32 status = 1; //当期发行的状态,是否关闭
int64 totalBalance = 2; //当期发行总金额(ccny)
int64 debtCeiling = 3; //单用户可借出的限额(ccny)
int64 liquidationRatio = 4; //清算比例
int64 balance = 5; //剩余可借贷金额(ccny)
int64 collateralValue = 6; //抵押物总数量(bty)
int64 debtValue = 7; //产生的ccny数量
int64 period = 8; //发行最大期限
string issuId = 9; //发行ID
int64 createTime = 10; //创建时间
}
// 根据ID列表查询多期发行信息
......@@ -142,7 +142,7 @@ message RepIssuanceCurrentInfos {
// 根据发行状态查询
message ReqIssuanceByStatus {
int32 status = 1;
int32 status = 1;
string issuanceId = 2;
}
......@@ -155,7 +155,7 @@ message RepIssuanceIDs {
message ReqIssuanceRecords {
string issuanceId = 1;
string addr = 2;
int32 status = 3;
int32 status = 3;
string debtId = 4;
}
......
......@@ -9,15 +9,15 @@ 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 {
oneof value {
Create create = 1;
Call call = 2;
Create create = 1;
Call call = 2;
}
int32 ty = 3;
}
......
......@@ -17,28 +17,28 @@ message PurchaseRecords {
}
message Lottery {
string lotteryId = 1;
int32 status = 2;
int64 createHeight = 3;
int64 fund = 4;
int64 purBlockNum = 5;
int64 drawBlockNum = 6;
int64 lastTransToPurState = 7;
int64 lastTransToDrawState = 8;
//map<string, PurchaseRecords> records = 9;
int64 totalPurchasedTxNum = 10;
string createAddr = 11;
int64 round = 12;
int64 luckyNumber = 13;
int64 createOnMain = 14;
int64 lastTransToPurStateOnMain = 15;
int64 lastTransToDrawStateOnMain = 16;
repeated MissingRecord missingRecords = 17;
int64 opRewardRatio = 18;
int64 devRewardRatio = 19;
repeated PurchaseRecords purRecords = 20;
int64 totalAddrNum = 21;
int64 buyAmount = 22;
string lotteryId = 1;
int32 status = 2;
int64 createHeight = 3;
int64 fund = 4;
int64 purBlockNum = 5;
int64 drawBlockNum = 6;
int64 lastTransToPurState = 7;
int64 lastTransToDrawState = 8;
// map<string, PurchaseRecords> records = 9;
int64 totalPurchasedTxNum = 10;
string createAddr = 11;
int64 round = 12;
int64 luckyNumber = 13;
int64 createOnMain = 14;
int64 lastTransToPurStateOnMain = 15;
int64 lastTransToDrawStateOnMain = 16;
repeated MissingRecord missingRecords = 17;
int64 opRewardRatio = 18;
int64 devRewardRatio = 19;
repeated PurchaseRecords purRecords = 20;
int64 totalAddrNum = 21;
int64 buyAmount = 22;
}
message MissingRecord {
......@@ -152,8 +152,8 @@ message ReplyLotteryCurrentInfo {
int64 purBlockNum = 10;
int64 drawBlockNum = 11;
repeated MissingRecord missingRecords = 12;
int64 totalAddrNum = 13;
int64 buyAmount = 14;
int64 totalAddrNum = 13;
int64 buyAmount = 14;
}
message ReplyLotteryHistoryLuckyNumber {
......@@ -218,21 +218,21 @@ message ReplyLotteryPurchaseAddr {
repeated string address = 1;
}
message LotteryGainInfos{
message LotteryGainInfos {
repeated LotteryGainInfo gains = 1;
}
message LotteryGainInfo{
string addr = 1;
int64 buyAmount = 2;
int64 fundAmount = 3;
message LotteryGainInfo {
string addr = 1;
int64 buyAmount = 2;
int64 fundAmount = 3;
}
message LotteryGainRecord{
string addr = 1;
int64 buyAmount = 2;
int64 fundAmount = 3;
int64 round = 4;
message LotteryGainRecord {
string addr = 1;
int64 buyAmount = 2;
int64 fundAmount = 3;
int64 round = 4;
}
message LotteryGainRecords {
......@@ -252,4 +252,3 @@ message ReqLotteryGainInfo {
string addr = 2;
int64 round = 3;
}
......@@ -6,143 +6,139 @@ 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;
repeated Owner owners = 3;
repeated DailyLimit dailyLimits = 4;
uint64 txCount = 5;
uint64 requiredWeight = 6;
string createAddr = 1;
string multiSigAddr = 2;
repeated Owner owners = 3;
repeated DailyLimit dailyLimits = 4;
uint64 txCount = 5;
uint64 requiredWeight = 6;
}
//这个地址是否已经确认某个交易
message ConfirmedOwner {
repeated Owner confirmedOwner = 1;
repeated Owner confirmedOwner = 1;
}
//记录提交的交易详情,在满足确认条件后执行data中的交易
//txHash:用于存贮提交的确认交易。存贮在localdb中,通过txhash可以获取
// txHash:用于存贮提交的确认交易。存贮在localdb中,通过txhash可以获取
message MultiSigTx {
uint64 txid = 1;
string txHash = 2;
bool executed = 3;
uint64 txType = 4;
string multiSigAddr = 5;
repeated Owner confirmedOwner = 6;
uint64 txid = 1;
string txHash = 2;
bool executed = 3;
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
MultiSigAccCreate multiSigAccCreate = 1;
MultiSigOwnerOperate multiSigOwnerOperate = 2;
MultiSigAccOperate multiSigAccOperate = 3;
MultiSigConfirmTx multiSigConfirmTx = 4; //确认或者撤销已确认
MultiSigExecTransferTo multiSigExecTransferTo = 5; //合约中外部账户转账到多重签名账户,Addr --->multiSigAddr
MultiSigExecTransferFrom multiSigExecTransferFrom = 6; //合约中多重签名账户转账到外部账户,multiSigAddr--->Addr
}
int32 Ty = 7;
}
//创建多重签名账户时需要的信息:创建时最少初始化两个owners,资产的每日限额初始时可以不设置
message MultiSigAccCreate {
repeated Owner owners = 1;
uint64 requiredWeight = 2;
SymbolDailyLimit dailyLimit = 3;
repeated Owner owners = 1;
uint64 requiredWeight = 2;
SymbolDailyLimit dailyLimit = 3;
}
//对MultiSigAccount账户owner的操作:add/del/replace/modify
message MultiSigOwnerOperate {
string multiSigAccAddr = 1;
string oldOwner = 2;
string newOwner = 3;
uint64 newWeight = 4;
uint64 operateFlag = 5;
string multiSigAccAddr = 1;
string oldOwner = 2;
string newOwner = 3;
uint64 newWeight = 4;
uint64 operateFlag = 5;
}
//对MultiSigAccount账户的操作:modify/add:SymbolDailyLimit,requiredweight
//修改或者添加每日限额,或者请求权重的值。
message MultiSigAccOperate {
string multiSigAccAddr = 1;
SymbolDailyLimit dailyLimit = 2;
uint64 newRequiredWeight = 3;
bool operateFlag = 4;
string multiSigAccAddr = 1;
SymbolDailyLimit dailyLimit = 2;
uint64 newRequiredWeight = 3;
bool operateFlag = 4;
}
//多重签名合约中账户之间转币操作:增加一个from的字段实现MultiSigAddr--->addr之间的转账
//需要判断from地址是否是多重签名地址
//将MultiSig合约中from地址上execname+symbol的资产转移到to地址
message MultiSigExecTransferFrom {
string symbol = 1;
int64 amount = 2;
string note = 3;
string execname = 4;
string to = 5;
string from = 6;
string symbol = 1;
int64 amount = 2;
string note = 3;
string execname = 4;
string to = 5;
string from = 6;
}
//多重签名合约中账户之间转币操作: addr --->MultiSigAddr之间的转账
//需要判断to地址是否是多重签名地址
//将MultiSig合约中签名地址上execname+symbol的资产转移到to地址
message MultiSigExecTransferTo {
string symbol = 1;
int64 amount = 2;
string note = 3;
string execname = 4;
string to = 5;
string symbol = 1;
int64 amount = 2;
string note = 3;
string execname = 4;
string to = 5;
}
//多重签名账户withdraw交易的确认或者取消确认
//multisigaccaddr:多重签名账户地址
//transactionid:多重签名账户上的withdraw交易的内部id
// multisigaccaddr:多重签名账户地址
// transactionid:多重签名账户上的withdraw交易的内部id
message MultiSigConfirmTx {
string multiSigAccAddr = 1;
uint64 txId = 2;
bool confirmOrRevoke = 3;
string multiSigAccAddr = 1;
uint64 txId = 2;
bool confirmOrRevoke = 3;
}
//query的接口:
// query的接口:
//第一步:获取所有多重签名账号
//第二步:获取指定多重签名账号的状态信息:包含创建者,owners,weight权重,以及各个资产的每日限量
//第三步:获取指定多重签名账户下的peding或者executed的交易id
......@@ -151,8 +147,8 @@ message MultiSigConfirmTx {
//获取所有多重签名账号
message ReqMultiSigAccs {
int64 start = 1;
int64 end = 2;
int64 start = 1;
int64 end = 2;
}
message ReplyMultiSigAccs {
......@@ -161,192 +157,189 @@ message ReplyMultiSigAccs {
//获取指定多重签名账号的状态信息
message ReqMultiSigAccInfo {
string multiSigAccAddr = 1;
string multiSigAccAddr = 1;
}
//指定多重签名账号的状态信息
message ReplyMultiSigAccInfo {
string createAddr = 1;
string multiSigAddr = 2;
repeated Owner owners = 3;
repeated DailyLimit dailyLimits = 4;
uint64 txCount = 5;
uint64 requiredWeight = 6;
string createAddr = 1;
string multiSigAddr = 2;
repeated Owner owners = 3;
repeated DailyLimit dailyLimits = 4;
uint64 txCount = 5;
uint64 requiredWeight = 6;
}
//获取txids设置过滤条件和区间,pending, executed
message ReqMultiSigTxids {
string multiSigAddr = 1;
uint64 fromTxId = 2;
uint64 toTxId = 3;
bool pending = 4;
bool executed = 5;
string multiSigAddr = 1;
uint64 fromTxId = 2;
uint64 toTxId = 3;
bool pending = 4;
bool executed = 5;
}
message ReplyMultiSigTxids {
string multiSigAddr = 1;
repeated uint64 txids = 2;
string multiSigAddr = 1;
repeated uint64 txids = 2;
}
//获取txid交易的信息,以及参与确认的owner信息
message ReqMultiSigTxInfo {
string multiSigAddr = 1;
uint64 txId = 2;
string multiSigAddr = 1;
uint64 txId = 2;
}
message ReplyMultiSigTxInfo {
MultiSigTx multiSigTxInfo = 1;
MultiSigTx multiSigTxInfo = 1;
}
//获取指定资产当日剩余的免多重签名的余额
message ReqMultiSigAccUnSpentToday {
string multiSigAddr = 1;
string execer = 2;
string symbol = 3;
string multiSigAddr = 1;
string execer = 2;
string symbol = 3;
}
message ReplyUnSpentAssets {
repeated UnSpentAssets unSpentAssets = 3;
repeated UnSpentAssets unSpentAssets = 3;
}
message UnSpentAssets {
Assets assets = 1;
uint64 amount = 2;
Assets assets = 1;
uint64 amount = 2;
}
//交易执行结果的Receipt信息:
//TyLogMultiSigAccCreate交易的执行Receipt
message ReceiptMultiSig {
string multiSigAddr = 1;
// 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;
Owner owner = 2;
bool addOrDel = 3;
message ReceiptOwnerAddOrDel {
string multiSigAddr = 1;
Owner owner = 2;
bool addOrDel = 3;
}
//TyLogMultiSigOwnerModify = 10003 //输出modify的owner:preweight以及currentweight
//TyLogMultiSigOwnerReplace = 10004 //输出old的owner的信息:以及当前的owner信息:addr+weight
message ReceiptOwnerModOrRep {
string multiSigAddr = 1;
Owner prevOwner = 2;
Owner currentOwner = 3;
bool modOrRep = 4;
}
// TyLogMultiSigOwnerModify = 10003 //输出modify的owner:preweight以及currentweight
// TyLogMultiSigOwnerReplace = 10004 //输出old的owner的信息:以及当前的owner信息:addr+weight
message ReceiptOwnerModOrRep {
string multiSigAddr = 1;
Owner prevOwner = 2;
Owner currentOwner = 3;
bool modOrRep = 4;
}
//多重签名账户的操作:ReqWeight,AssetDailyLimit
//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
message ReceiptDailyLimitOperate {
string multiSigAddr = 1;
DailyLimit prevDailyLimit = 2;
DailyLimit curDailyLimit = 3;
bool addOrModify = 4;
}
// 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
message ReceiptDailyLimitOperate {
string multiSigAddr = 1;
DailyLimit prevDailyLimit = 2;
DailyLimit curDailyLimit = 3;
bool addOrModify = 4;
}
//交易确认或者撤销(撤销值针对未执行的交易)
//TyLogMultiSigConfirmTx = 10008 //输出确认的交易id,以及owner信息:addr+weight
//TyLogMultiSigConfirmTxRevoke = 10009 //输出撤销确认的交易id,以及owner信息:addr+weight
message ReceiptConfirmTx {
MultiSigTxOwner multiSigTxOwner = 1;
bool confirmeOrRevoke = 2;
// TyLogMultiSigConfirmTx = 10008 //输出确认的交易id,以及owner信息:addr+weight
// TyLogMultiSigConfirmTxRevoke = 10009 //输出撤销确认的交易id,以及owner信息:addr+weight
message ReceiptConfirmTx {
MultiSigTxOwner multiSigTxOwner = 1;
bool confirmeOrRevoke = 2;
}
//可能会修改dailyLimit的相关属性
message ReceiptAccDailyLimitUpdate {
string multiSigAddr = 1;
DailyLimit prevDailyLimit = 2;
DailyLimit curDailyLimit = 3;
message ReceiptAccDailyLimitUpdate {
string multiSigAddr = 1;
DailyLimit prevDailyLimit = 2;
DailyLimit curDailyLimit = 3;
}
//执行MultiSigAcc相关的交易可能会修改tx的执行状态和增加确认owner
message ReceiptMultiSigTx {
MultiSigTxOwner multiSigTxOwner = 1;
bool prevExecuted = 2;
bool curExecuted = 3;
bool submitOrConfirm = 4;
string txHash = 5;
uint64 txType = 6;
message ReceiptMultiSigTx {
MultiSigTxOwner multiSigTxOwner = 1;
bool prevExecuted = 2;
bool curExecuted = 3;
bool submitOrConfirm = 4;
string txHash = 5;
uint64 txType = 6;
}
message ReceiptTxCountUpdate {
string multiSigAddr = 1;
uint64 curTxCount = 2;
message ReceiptTxCountUpdate {
string multiSigAddr = 1;
uint64 curTxCount = 2;
}
message MultiSigTxOwner {
string multiSigAddr = 1;
uint64 txid = 2;
Owner confirmedOwner = 3;
message MultiSigTxOwner {
string multiSigAddr = 1;
uint64 txid = 2;
Owner confirmedOwner = 3;
}
//具体转币的处理;
//TyLogMultiSigExecTransfer = 10010
// TyLogMultiSigExecTransfer = 10010
//入币:将from地址在MultiSig合约中的币转移到指定的多重签名账户ExecTransfer中,并将其冻结ExecFrozen
//注释:使用chain33/types中定义的ReceiptExecAccountTransfer即可
//TyLogMultiSigWithdraw = 10011
// TyLogMultiSigWithdraw = 10011
//出币:将多重签名地址上冻结的币转给MultiSig合约中TO地址上ExecTransferFrozen
//注释:使用chain33/types中定义的ReceiptExecAccountTransfer即可
//注释:使用chain33/types中定义的ReceiptExecAccountTransfer即可
message Uint64 {
uint64 data = 1;
uint64 data = 1;
}
//记录账户收到固定资产的数量
message AccountAssets {
string multiSigAddr = 1;
Assets assets = 2;
int64 amount = 3;
string multiSigAddr = 1;
Assets assets = 2;
int64 amount = 3;
}
//获取多重签名账户上的指定资产或者所有资产
message ReqAccAssets {
string multiSigAddr = 1;
Assets assets = 2;
bool isAll = 3;
string multiSigAddr = 1;
Assets assets = 2;
bool isAll = 3;
}
message ReplyAccAssets {
repeated AccAssets accAssets = 1;
repeated AccAssets accAssets = 1;
}
//账户资产信息
message AccAssets {
Assets assets = 1;
int64 recvAmount = 2;
Account account = 3;
Assets assets = 1;
int64 recvAmount = 2;
Account account = 3;
}
message Assets {
string execer = 1;
string symbol = 2;
string execer = 1;
string symbol = 2;
}
//账户地址列表
message AccAddress {
repeated string address = 1;
repeated string address = 1;
}
//owner拥有的多重签名账户信息
// owner拥有的多重签名账户信息
message OwnerAttr {
string multiSigAddr = 1;
string ownerAddr = 2;
uint64 weight = 3;
string multiSigAddr = 1;
string ownerAddr = 2;
uint64 weight = 3;
}
message OwnerAttrs {
repeated OwnerAttr items = 1;
repeated OwnerAttr items = 1;
}
\ No newline at end of file
......@@ -2,10 +2,10 @@ syntax = "proto3";
package types;
message Norm {
bytes normId = 1;
int64 createTime = 2;
bytes normId = 1;
int64 createTime = 2;
bytes key = 3;
bytes value = 4;
bytes value = 4;
}
message NormAction {
......@@ -17,7 +17,7 @@ message NormAction {
message NormPut {
bytes key = 1;
bytes value = 2;
bytes value = 2;
}
message NormGetKey {
......
......@@ -4,34 +4,34 @@ package types;
//事件
message OracleStatus {
string eventID = 1; //事件ID
string addr = 2; //发布者地址
string type = 3; //游戏类别
string subType = 4; //游戏子类别
int64 time = 5; //结果公布参考时间
string content = 6; //事件内容
string introduction = 7; //事件描述
EventStatus status = 8; //操作状态
string source = 9; //数据来源
string result = 10; //事件结果
EventStatus preStatus=11; //上次操作后状态及操作者地址
string eventID = 1; //事件ID
string addr = 2; //发布者地址
string type = 3; //游戏类别
string subType = 4; //游戏子类别
int64 time = 5; //结果公布参考时间
string content = 6; //事件内容
string introduction = 7; //事件描述
EventStatus status = 8; //操作状态
string source = 9; //数据来源
string result = 10; //事件结果
EventStatus preStatus = 11; //上次操作后状态及操作者地址
}
// action
message OracleAction {
oneof value {
EventPublish eventPublish = 1;
EventAbort eventAbort = 2;
ResultPrePublish resultPrePublish = 3;
ResultPublish resultPublish = 4;
ResultAbort resultAbort = 5;
EventPublish eventPublish = 1;
EventAbort eventAbort = 2;
ResultPrePublish resultPrePublish = 3;
ResultPublish resultPublish = 4;
ResultAbort resultAbort = 5;
}
int32 Ty = 7;
}
message EventStatus {
string opAddr = 1; //修改事件状态的地址
int32 status = 2; //事件状态
int32 status = 2; //事件状态
}
message EventPublish {
......@@ -43,23 +43,23 @@ message EventPublish {
}
message EventAbort {
string eventID = 2; //发布事件的ID
string eventID = 2; //发布事件的ID
}
message ResultPrePublish {
string eventID = 2; //发布事件的ID
string source = 3; //数据来源
string result = 4; //发布数据
string eventID = 2; //发布事件的ID
string source = 3; //数据来源
string result = 4; //发布数据
}
message ResultPublish {
string eventID = 2; //发布事件的ID
string source = 3; //数据来源
string result = 4; //发布数据
string eventID = 2; //发布事件的ID
string source = 3; //数据来源
string result = 4; //发布数据
}
message ResultAbort {
string eventID = 2; //发布事件的ID
string eventID = 2; //发布事件的ID
}
// localDB
......@@ -72,22 +72,22 @@ message QueryOracleInfos {
}
message ReplyEventIDs {
repeated string eventID = 1; //发布事件的ID
repeated string eventID = 1; //发布事件的ID
}
message QueryEventID {
int32 status = 1; //事件状态
string addr = 2; //事件发布者的地址
string type = 3; //事件类型
string eventID = 4; //事件ID
int32 status = 1; //事件状态
string addr = 2; //事件发布者的地址
string type = 3; //事件类型
string eventID = 4; //事件ID
}
message ReceiptOracle {
string eventID = 1; //发布事件ID
int32 status = 2; //事件状态
string addr = 3; //事件发布者的地址
string type = 4; //事件类型
int32 preStatus = 6;//事件的前一个状态
string eventID = 1; //发布事件ID
int32 status = 2; //事件状态
string addr = 3; //事件发布者的地址
string type = 4; //事件类型
int32 preStatus = 6; //事件的前一个状态
}
message ReplyOracleStatusList {
......
......@@ -8,46 +8,43 @@ package types;
// stateDB
message ParacrossStatusDetails {
repeated string addrs = 1;
repeated bytes blockHash = 2;
repeated string addrs = 1;
repeated bytes blockHash = 2;
}
//记录不同blockHash的详细数据
message ParacrossStatusBlockDetails {
repeated bytes blockHashs = 1;
repeated bytes txResults = 2;
repeated bytes blockHashs = 1;
repeated bytes txResults = 2;
}
message ParacrossHeightStatus {
// ing, done
int32 status = 1;
string title = 2;
int64 height = 3;
ParacrossStatusDetails details = 4;
int64 mainHeight = 5;
bytes mainHash = 6;
int32 status = 1;
string title = 2;
int64 height = 3;
ParacrossStatusDetails details = 4;
int64 mainHeight = 5;
bytes mainHash = 6;
ParacrossStatusBlockDetails blockDetails = 7;
}
message ParacrossHeightStatusRsp {
int32 status = 1;
string title = 2;
int64 height = 3;
int64 mainHeight = 4;
string mainHash = 5;
repeated string commitAddrs = 6;
repeated string commitBlockHash = 7;
int32 status = 1;
string title = 2;
int64 height = 3;
int64 mainHeight = 4;
string mainHash = 5;
repeated string commitAddrs = 6;
repeated string commitBlockHash = 7;
}
message ParacrossStatus {
string title = 1;
int64 height = 2;
bytes blockHash = 3;
int64 mainHeight = 4;
bytes mainHash = 5;
string title = 1;
int64 height = 2;
bytes blockHash = 3;
int64 mainHeight = 4;
bytes mainHash = 5;
}
message ParacrossConsensusStatus {
......@@ -58,99 +55,93 @@ message ParacrossConsensusStatus {
}
message ParaNodeAddrConfig {
string title = 1;
uint32 op = 2;
string id = 3;
string addr = 4;
uint32 value = 5;
int64 coinsFrozen = 6;
string title = 1;
uint32 op = 2;
string id = 3;
string addr = 4;
uint32 value = 5;
int64 coinsFrozen = 6;
}
message ParaNodeVoteDetail {
repeated string addrs = 1;
repeated string votes = 2;
repeated string addrs = 1;
repeated string votes = 2;
}
message ParaNodeAddrIdStatus {
string addr = 1;
string proposalId = 2;
string quitId = 3;
int32 status = 4;
string title = 5;
string addr = 1;
string proposalId = 2;
string quitId = 3;
int32 status = 4;
string title = 5;
}
message ParaNodeIdStatus {
string id = 1;
int32 status = 2;
string title = 3;
string targetAddr = 4;
int64 coinsFrozen = 5;
ParaNodeVoteDetail votes = 6;
string fromAddr = 7;
int64 height = 8;
string id = 1;
int32 status = 2;
string title = 3;
string targetAddr = 4;
int64 coinsFrozen = 5;
ParaNodeVoteDetail votes = 6;
string fromAddr = 7;
int64 height = 8;
}
message ReceiptParaNodeConfig {
string addr = 1;
ParaNodeAddrConfig config = 2;
ParaNodeIdStatus prev = 3;
ParaNodeIdStatus current = 4;
string addr = 1;
ParaNodeAddrConfig config = 2;
ParaNodeIdStatus prev = 3;
ParaNodeIdStatus current = 4;
}
message ReceiptParaNodeAddrStatUpdate {
string fromAddr = 1;
ParaNodeAddrIdStatus prev = 2;
ParaNodeAddrIdStatus current = 3;
string fromAddr = 1;
ParaNodeAddrIdStatus prev = 2;
ParaNodeAddrIdStatus current = 3;
}
message ReceiptParaNodeVoteDone {
string id = 1;
string title = 2;
string targetAddr = 3;
int32 totalNodes = 4;
int32 totalVote = 5;
int32 mostVote = 6;
string voteRst = 7;
int32 doneStatus = 8;
string id = 1;
string title = 2;
string targetAddr = 3;
int32 totalNodes = 4;
int32 totalVote = 5;
int32 mostVote = 6;
string voteRst = 7;
int32 doneStatus = 8;
}
message ParaNodeGroupConfig {
string title = 1;
uint32 op = 2;
string id = 3;
string addrs = 4;
int64 coinsFrozen = 5;
string title = 1;
uint32 op = 2;
string id = 3;
string addrs = 4;
int64 coinsFrozen = 5;
}
message ParaNodeGroupStatus {
string id = 1;
int32 status = 2;
string title = 3;
string targetAddrs = 4;
int64 coinsFrozen = 5;
string fromAddr = 6;
int64 height = 7;
string id = 1;
int32 status = 2;
string title = 3;
string targetAddrs = 4;
int64 coinsFrozen = 5;
string fromAddr = 6;
int64 height = 7;
}
message ReceiptParaNodeGroupConfig {
string addr = 1;
ParaNodeGroupConfig config = 2;
ParaNodeGroupStatus prev = 3;
ParaNodeGroupStatus current = 4;
string addr = 1;
ParaNodeGroupConfig config = 2;
ParaNodeGroupStatus prev = 3;
ParaNodeGroupStatus current = 4;
}
// node query
message ReqParacrossNodeInfo {
string title = 1;
string id = 2;
string addr = 3;
int32 status = 4;
}
message RespParacrossNodeAddrs {
......@@ -174,53 +165,49 @@ message ParaBlock2MainInfo {
// action
message ParacrossNodeStatus {
bytes mainBlockHash = 1;
int64 mainBlockHeight = 2;
string title = 3;
int64 height = 4;
bytes preBlockHash = 5;
bytes blockHash = 6;
bytes preStateHash = 7;
bytes stateHash = 8;
uint32 txCounts = 9;
bytes txResult = 10;
repeated bytes txHashs = 11;
bytes crossTxResult = 12;
repeated bytes crossTxHashs = 13;
uint32 nonCommitTxCounts = 14;
bytes mainBlockHash = 1;
int64 mainBlockHeight = 2;
string title = 3;
int64 height = 4;
bytes preBlockHash = 5;
bytes blockHash = 6;
bytes preStateHash = 7;
bytes stateHash = 8;
uint32 txCounts = 9;
bytes txResult = 10;
repeated bytes txHashs = 11;
bytes crossTxResult = 12;
repeated bytes crossTxHashs = 13;
uint32 nonCommitTxCounts = 14;
}
message SelfConsensStages {
repeated SelfConsensStage items = 1;
}
message SelfConsensStage {
int64 startHeight = 1;
uint32 enable = 2;
int64 startHeight = 1;
uint32 enable = 2;
}
message SelfConsensStageInfo {
string id = 1;
uint32 status = 2;
SelfConsensStage stage = 3;
string fromAddr = 4;
int64 execHeight = 5;
ParaNodeVoteDetail votes = 6;
string id = 1;
uint32 status = 2;
SelfConsensStage stage = 3;
string fromAddr = 4;
int64 execHeight = 5;
ParaNodeVoteDetail votes = 6;
}
message LocalSelfConsStageInfo {
SelfConsensStageInfo stage = 1;
string txIndex = 2;
SelfConsensStageInfo stage = 1;
string txIndex = 2;
}
message ConfigVoteInfo {
string id = 1;
string id = 1;
// 投票值 1:ok 2:nok
uint32 value = 2;
uint32 value = 2;
}
message ConfigCancelInfo {
......@@ -229,74 +216,70 @@ message ConfigCancelInfo {
//广义配置类型
message ParaStageConfig {
string title = 1;
string title = 1;
// 配置类型
uint32 op = 2;
uint32 op = 2;
oneof value {
SelfConsensStage stage = 10;
ConfigVoteInfo vote = 11;
ConfigCancelInfo cancel= 12;
SelfConsensStage stage = 10;
ConfigVoteInfo vote = 11;
ConfigCancelInfo cancel = 12;
}
}
message ReceiptSelfConsStageConfig {
SelfConsensStageInfo prev = 1;
SelfConsensStageInfo current = 2;
SelfConsensStageInfo prev = 1;
SelfConsensStageInfo current = 2;
}
message ReceiptSelfConsStageVoteDone {
string id = 1;
SelfConsensStage stage = 2;
int32 totalNodes = 3;
int32 totalVote = 4;
int32 mostVote = 5;
string voteRst = 6;
string id = 1;
SelfConsensStage stage = 2;
int32 totalNodes = 3;
int32 totalVote = 4;
int32 mostVote = 5;
string voteRst = 6;
}
message ReceiptSelfConsStagesUpdate{
SelfConsensStages prev = 1;
SelfConsensStages current = 2;
message ReceiptSelfConsStagesUpdate {
SelfConsensStages prev = 1;
SelfConsensStages current = 2;
}
// query
message ReqQuerySelfStages {
uint32 status = 1;
string id = 2;
int32 count = 3;
int32 direction = 4;
int64 height = 5;
int32 index = 6;
uint32 status = 1;
string id = 2;
int32 count = 3;
int32 direction = 4;
int64 height = 5;
int32 index = 6;
}
message ReplyQuerySelfStages {
repeated SelfConsensStageInfo stageInfo = 1;
}
message ParacrossCommitAction {
ParacrossNodeStatus status = 1;
}
message ParacrossMinerAction {
ParacrossNodeStatus status = 1;
bool isSelfConsensus = 2;
ParacrossNodeStatus status = 1;
bool isSelfConsensus = 2;
}
message ParacrossAction {
oneof value {
ParacrossCommitAction commit = 1;
ParacrossMinerAction miner = 3;
AssetsTransfer assetTransfer = 4;
AssetsWithdraw assetWithdraw = 5;
AssetsTransfer transfer = 6;
AssetsWithdraw withdraw = 7;
AssetsTransferToExec transferToExec = 8;
ParaNodeAddrConfig nodeConfig = 9;
ParacrossCommitAction commit = 1;
ParacrossMinerAction miner = 3;
AssetsTransfer assetTransfer = 4;
AssetsWithdraw assetWithdraw = 5;
AssetsTransfer transfer = 6;
AssetsWithdraw withdraw = 7;
AssetsTransferToExec transferToExec = 8;
ParaNodeAddrConfig nodeConfig = 9;
ParaNodeGroupConfig nodeGroupConfig = 10;
ParaStageConfig selfStageConfig = 11;
}
int32 ty = 2;
}
......@@ -314,21 +297,21 @@ message ReceiptParacrossMiner {
}
message ReceiptParacrossDone {
int32 totalNodes = 1;
int32 totalCommit = 2;
int32 mostSameCommit = 3;
string title = 4;
int64 height = 5;
bytes stateHash = 6;
uint32 txCounts = 7;
bytes txResult = 8;
bytes blockHash = 9;
repeated bytes txHashs = 10;
bytes crossTxResult = 11;
repeated bytes crossTxHashs = 12;
bytes mainBlockHash = 13;
int64 mainBlockHeight = 14;
int64 chainExecHeight = 15;
int32 totalNodes = 1;
int32 totalCommit = 2;
int32 mostSameCommit = 3;
string title = 4;
int64 height = 5;
bytes stateHash = 6;
uint32 txCounts = 7;
bytes txResult = 8;
bytes blockHash = 9;
repeated bytes txHashs = 10;
bytes crossTxResult = 11;
repeated bytes crossTxHashs = 12;
bytes mainBlockHash = 13;
int64 mainBlockHeight = 14;
int64 chainExecHeight = 15;
}
message ReceiptParacrossRecord {
......@@ -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 {
......@@ -366,8 +349,8 @@ message RespParacrossTitles {
}
message ReqParacrossTitleHash {
string title = 1;
bytes blockHash = 2;
string title = 1;
bytes blockHash = 2;
}
// 跨链转账相关
......@@ -390,37 +373,37 @@ message ParacrossAsset {
message ParacrossAssetRsp {
// input
string from = 1;
string to = 2;
string isWithdraw = 3;
string txHash = 4;
int64 amount = 5;
string exec = 6;
string symbol = 7;
string from = 1;
string to = 2;
string isWithdraw = 3;
string txHash = 4;
int64 amount = 5;
string exec = 6;
string symbol = 7;
// 主链部分
int64 height = 10;
int64 height = 10;
// 平行链部分
int64 commitDoneHeight = 21;
int64 paraHeight = 22;
string success = 23;
int64 commitDoneHeight = 21;
int64 paraHeight = 22;
string success = 23;
}
message ParaLocalDbBlock {
int64 height = 1;
bytes mainHash = 2;
int64 mainHeight = 3;
bytes parentMainHash = 4;
int64 blockTime = 5;
int64 height = 1;
bytes mainHash = 2;
int64 mainHeight = 3;
bytes parentMainHash = 4;
int64 blockTime = 5;
repeated Transaction txs = 6;
}
message ParaLocalDbBlockInfo {
int64 height = 1;
string mainHash = 2;
int64 mainHeight = 3;
string parentMainHash = 4;
int64 blockTime = 5;
repeated string txs = 6;
int64 height = 1;
string mainHash = 2;
int64 mainHeight = 3;
string parentMainHash = 4;
int64 blockTime = 5;
repeated string txs = 6;
}
service paracross {
......
......@@ -4,40 +4,40 @@ package types;
//斗牛游戏内容
message PokerBull {
string gameId = 1; //默认是由创建这局游戏的txHash作为gameId
int32 status = 2; // Start 1 -> Continue 2 -> Quit 3
int64 startTime = 3; //开始时间
string startTxHash = 4; //游戏启动交易hash
int64 value = 5; //赌注
PBPoker poker = 6; //扑克牌
repeated PBPlayer players = 7; //玩家历史牌和结果集
int32 playerNum = 8; //玩家数
repeated PBResult results = 9; //游戏结果集
int64 index = 10; //索引
int64 prevIndex = 11; //上级索引
int64 quitTime = 12; //游戏结束时间
string quitTxHash = 13; //游戏结束交易hash
string dealerAddr = 14; //下局庄家地址
bool isWaiting = 15; //游戏是否处于等待状态
int32 preStatus = 16; //上一index的状态
int32 round = 17; //当前游戏回合数
string gameId = 1; //默认是由创建这局游戏的txHash作为gameId
int32 status = 2; // Start 1 -> Continue 2 -> Quit 3
int64 startTime = 3; //开始时间
string startTxHash = 4; //游戏启动交易hash
int64 value = 5; //赌注
PBPoker poker = 6; //扑克牌
repeated PBPlayer players = 7; //玩家历史牌和结果集
int32 playerNum = 8; //玩家数
repeated PBResult results = 9; //游戏结果集
int64 index = 10; //索引
int64 prevIndex = 11; //上级索引
int64 quitTime = 12; //游戏结束时间
string quitTxHash = 13; //游戏结束交易hash
string dealerAddr = 14; //下局庄家地址
bool isWaiting = 15; //游戏是否处于等待状态
int32 preStatus = 16; //上一index的状态
int32 round = 17; //当前游戏回合数
}
//一把牌
message PBHand {
repeated int32 cards = 1; //一把牌,五张
int32 result = 2; //斗牛结果 (没牛:0, 牛1-9:1-9, 牛牛:10)
string address = 3; //玩家地址
bool isWin = 4; //是否赢庄家
int32 leverage = 5; //赌注倍数
repeated int32 cards = 1; //一把牌,五张
int32 result = 2; //斗牛结果 (没牛:0, 牛1-9:1-9, 牛牛:10)
string address = 3; //玩家地址
bool isWin = 4; //是否赢庄家
int32 leverage = 5; //赌注倍数
}
//玩家
message PBPlayer {
repeated PBHand hands = 1; //历史发牌和斗牛结果
string address = 2; //玩家地址
int64 txHash = 3; //发牌随机数因子txhash的整数格式
bool ready = 4; //continue状态下,是否ready
repeated PBHand hands = 1; //历史发牌和斗牛结果
string address = 2; //玩家地址
int64 txHash = 3; //发牌随机数因子txhash的整数格式
bool ready = 4; // continue状态下,是否ready
}
//本局游戏结果
......@@ -58,11 +58,11 @@ message PBPoker {
//游戏状态
message PBGameAction {
oneof value {
PBGameStart start = 1;
PBGameStart start = 1;
PBGameContinue continue = 2;
PBGameQuit quit = 3;
PBGameQuery query = 4;
PBGamePlay play = 5;
PBGameQuit quit = 3;
PBGameQuery query = 4;
PBGamePlay play = 5;
}
int32 ty = 10;
}
......@@ -90,9 +90,9 @@ message PBGameQuery {
//已匹配玩家直接游戏
message PBGamePlay {
string gameId = 1; //游戏id
int32 round = 2; //当前游戏回合数
int64 value = 3; //当前游戏赌注
string gameId = 1; //游戏id
int32 round = 2; //当前游戏回合数
int64 value = 3; //当前游戏赌注
repeated string address = 4; //玩家地址
}
......@@ -150,13 +150,13 @@ message QueryPBGameByRound {
// ReplyPBGameByRound 某一回合游戏结果
message ReplyPBGameByRound {
string gameId = 1;
int32 status = 2;
PBResult result = 3;
bool isWaiting = 4;
int64 value = 5;
repeated PBPlayer players = 6;
int64 return = 7;
string gameId = 1;
int32 status = 2;
PBResult result = 3;
bool isWaiting = 4;
int64 value = 5;
repeated PBPlayer players = 6;
int64 return = 7;
}
message ReceiptPBGame {
......@@ -169,8 +169,8 @@ message ReceiptPBGame {
int64 value = 7;
bool isWaiting = 8;
repeated string players = 9;
int32 preStatus = 10;
int32 round = 11;
int32 preStatus = 10;
int32 round = 11;
}
message PBStartTxReq {
......@@ -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,16 +398,20 @@ 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,
Amount: amountInt64,
AssetExec: exec,
AssetSymbol: symbol,
Amount: amountInt64,
}
var params rpctypes.Query4Jrpc
params.Execer = pty.PrivacyX
......
......@@ -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,21 +101,23 @@ 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",
Amount: types.Coin,
AssetSymbol: "bty",
Amount: types.Coin,
},
disableReplyCheck: true,
},
}
for _, tc := range queryCases {
req := tc.params.(*pty.ReqPrivacyToken)
req.AssetExec = "coins"
tc.funcName = "ShowUTXOs4SpecifiedAmount"
}
testQuery(mock, queryCases, t)
......@@ -139,9 +143,9 @@ func TestPrivacy_Query_GetUTXOGlobalIndex(t *testing.T) {
{
index: 2,
params: &pty.ReqUTXOGlobalIndex{
Tokenname: "btc",
MixCount: 1,
Amount: []int64{types.Coin},
AssetSymbol: "btc",
MixCount: 1,
Amount: []int64{types.Coin},
},
disableReplyCheck: true,
expectErr: types.ErrNotFound,
......@@ -149,9 +153,9 @@ func TestPrivacy_Query_GetUTXOGlobalIndex(t *testing.T) {
{
index: 3,
params: &pty.ReqUTXOGlobalIndex{
Tokenname: "bty",
MixCount: 1,
Amount: []int64{types.Coin, types.Coin * 2},
AssetSymbol: "bty",
MixCount: 1,
Amount: []int64{types.Coin, types.Coin * 2},
},
disableReplyCheck: true,
expectErr: types.ErrNotFound,
......@@ -159,15 +163,19 @@ func TestPrivacy_Query_GetUTXOGlobalIndex(t *testing.T) {
{
index: 4,
params: &pty.ReqUTXOGlobalIndex{
Tokenname: "bty",
MixCount: 1,
Amount: []int64{types.Coin},
AssetSymbol: "bty",
MixCount: 1,
Amount: []int64{types.Coin},
},
disableReplyCheck: true,
},
}
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;
}
......@@ -402,9 +403,9 @@ message WalletAccountPrivacy {
message ReqCreatePrivacyTx {
string tokenname = 1;
// 构建交易类型
int32 actionType = 2;
int64 amount = 3;
string note = 4;
int32 actionType = 2;
int64 amount = 3;
string note = 4;
// 普通交易的发送方
string from = 5;
// 普通交易的接收方
......
......@@ -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,8 +106,9 @@ func testShowAmountsOfUTXO(t *testing.T, jrpc *jsonclient.JSONClient) error {
func testShowUTXOs4SpecifiedAmount(t *testing.T, jrpc *jsonclient.JSONClient) error {
reqPrivacyToken := pty.ReqPrivacyToken{
Token: types.BTY,
Amount: 123456,
AssetExec: "coins",
AssetSymbol: types.BTY,
Amount: 123456,
}
var params rpctypes.Query4Jrpc
params.Execer = pty.PrivacyX
......
......@@ -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,8 +375,9 @@ func (policy *privacyPolicy) buildInput(privacykeyParirs *privacy.Privacy, build
})
reqGetGlobalIndex := privacytypes.ReqUTXOGlobalIndex{
Tokenname: buildInfo.tokenname,
MixCount: 0,
AssetExec: buildInfo.assetExec,
AssetSymbol: buildInfo.assetSymbol,
MixCount: 0,
}
if buildInfo.mixcount > 0 {
......@@ -562,10 +563,11 @@ func (policy *privacyPolicy) createPrivacy2PrivacyTx(req *privacytypes.ReqCreate
utxoBurnedAmount = privacytypes.PrivacyTxFee
}
buildInfo := &buildInputInfo{
tokenname: req.GetTokenname(),
sender: req.GetFrom(),
amount: req.GetAmount() + utxoBurnedAmount,
mixcount: req.GetMixcount(),
assetExec: req.GetAssetExec(),
assetSymbol: req.GetTokenname(),
sender: req.GetFrom(),
amount: req.GetAmount() + utxoBurnedAmount,
mixcount: req.GetMixcount(),
}
privacyInfo, err := policy.getPrivacykeyPair(req.GetFrom())
if err != nil {
......@@ -652,10 +654,11 @@ func (policy *privacyPolicy) createPrivacy2PublicTx(req *privacytypes.ReqCreateP
utxoBurnedAmount = privacytypes.PrivacyTxFee
}
buildInfo := &buildInputInfo{
tokenname: req.GetTokenname(),
sender: req.GetFrom(),
amount: req.GetAmount() + utxoBurnedAmount,
mixcount: req.GetMixcount(),
assetExec: req.GetAssetExec(),
assetSymbol: req.GetTokenname(),
sender: req.GetFrom(),
amount: req.GetAmount() + utxoBurnedAmount,
mixcount: req.GetMixcount(),
}
privacyInfo, err := policy.getPrivacykeyPair(req.GetFrom())
if err != nil {
......
......@@ -16,10 +16,11 @@ type addrAndprivacy struct {
// buildInputInfo 构建隐私交易输入的参数结构
type buildInputInfo struct {
tokenname string
sender string
amount int64
mixcount int32
assetExec string
assetSymbol string
sender string
amount int64
mixcount int32
}
// txOutputInfo 存储当前钱包地址下被选中的UTXO信息
......
......@@ -40,15 +40,14 @@ message PrepareRetrieve {
string defaultAddress = 2;
}
message AssetSymbol {
string exec = 1;
string exec = 1;
string symbol = 2;
}
message PerformRetrieve {
string backupAddress = 1;
string defaultAddress = 2;
string backupAddress = 1;
string defaultAddress = 2;
repeated AssetSymbol assets = 3;
}
......@@ -60,8 +59,8 @@ message CancelRetrieve {
message ReqRetrieveInfo {
string backupAddress = 1;
string defaultAddress = 2;
string assetExec = 3;
string assetSymbol = 4;
string assetExec = 3;
string assetSymbol = 4;
}
message RetrieveQuery {
......
......@@ -3,20 +3,20 @@ package types;
//后面如果有其他数据模型可继续往上面添加
message Storage {
oneof value {
ContentOnlyNotaryStorage contentStorage = 1;
HashOnlyNotaryStorage hashStorage = 2;
LinkNotaryStorage linkStorage = 3;
EncryptNotaryStorage encryptStorage = 4;
ContentOnlyNotaryStorage contentStorage = 1;
HashOnlyNotaryStorage hashStorage = 2;
LinkNotaryStorage linkStorage = 3;
EncryptNotaryStorage encryptStorage = 4;
EncryptShareNotaryStorage encryptShareStorage = 5;
}
}
message StorageAction {
oneof value {
ContentOnlyNotaryStorage contentStorage = 1;
HashOnlyNotaryStorage hashStorage = 2;
LinkNotaryStorage linkStorage = 3;
EncryptNotaryStorage encryptStorage = 4;
ContentOnlyNotaryStorage contentStorage = 1;
HashOnlyNotaryStorage hashStorage = 2;
LinkNotaryStorage linkStorage = 3;
EncryptNotaryStorage encryptStorage = 4;
EncryptShareNotaryStorage encryptShareStorage = 5;
}
int32 ty = 6;
......@@ -24,20 +24,20 @@ message StorageAction {
// 内容存证模型
message ContentOnlyNotaryStorage {
//长度需要小于512k
bytes content = 1;
bytes content = 1;
}
//哈希存证模型,推荐使用sha256哈希,限制256位得摘要值
message HashOnlyNotaryStorage {
//长度固定为32字节
bytes hash = 1;
bytes hash = 1;
}
// 链接存证模型
message LinkNotaryStorage {
//存证内容的链接,可以写入URL,或者其他可用于定位源文件得线索.
bytes link = 1;
bytes link = 1;
//源文件得hash值,推荐使用sha256哈希,限制256位得摘要值
bytes hash = 2;
}
......@@ -45,7 +45,7 @@ message LinkNotaryStorage {
// 隐私存证模型,如果一个文件需要存证,且不公开内容,可以选择将源文件通过对称加密算法加密后上链
message EncryptNotaryStorage {
//存证明文内容的hash值,推荐使用sha256哈希,限制256位得摘要值
bytes contentHash = 1;
bytes contentHash = 1;
//源文件得密文,由加密key及nonce对明文加密得到该值。
bytes encryptContent = 2;
//加密iv,通过AES进行加密时制定随机生成的iv,解密时需要使用该值
......@@ -54,7 +54,7 @@ message EncryptNotaryStorage {
// 隐私存证模型
message EncryptContentOnlyNotaryStorage {
//存证内容的hash值,推荐使用sha256哈希,限制256位得摘要值
// bytes contentHash = 1;
// bytes contentHash = 1;
//源文件得密文。
bytes encryptContent = 1;
//加密iv,通过AES进行加密时制定随机生成的iv,解密时需要使用该值
......@@ -64,7 +64,7 @@ message EncryptContentOnlyNotaryStorage {
// 分享隐私存证模型,需要完备的sdk或者相应的密钥库支持
message EncryptShareNotaryStorage {
//存证明文内容的hash值,推荐使用sha256哈希,限制256位得摘要值
bytes contentHash = 1;
bytes contentHash = 1;
//源文件得密文。
bytes encryptContent = 2;
//密钥的kdf推导路径。密钥tree父节点根据该路径可以推导出私钥key
......@@ -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;
}
......@@ -84,8 +84,8 @@ message TicketGenesis {
}
message TicketClose {
repeated string ticketId = 1;
string minerAddress = 2;
repeated string ticketId = 1;
string minerAddress = 2;
}
message TicketList {
......
......@@ -73,8 +73,8 @@ message ReceiptToken {
}
message ReceiptTokenAmount {
Token prev = 1;
Token current = 2;
Token prev = 1;
Token current = 2;
}
// local
......
......@@ -35,7 +35,7 @@ message TradeForSell {
// 资产来源
string assetExec = 9;
// 定价资产
string priceExec = 10;
string priceExec = 10;
string priceSymbol = 11;
}
......@@ -60,7 +60,7 @@ message TradeForBuyLimit {
int64 totalBoardlot = 5;
string assetExec = 6;
// 定价资产
string priceExec = 7;
string priceExec = 7;
string priceSymbol = 8;
}
......@@ -91,11 +91,11 @@ message SellOrder {
int64 stoptime = 9;
bool crowdfund = 10;
//此处使用tx的hash来指定
string sellID = 11;
int32 status = 12;
int64 height = 13;
string assetExec = 14;
string priceExec = 15;
string sellID = 11;
int32 status = 12;
int64 height = 13;
string assetExec = 14;
string priceExec = 15;
string priceSymbol = 16;
}
......@@ -112,8 +112,8 @@ message BuyLimitOrder {
int32 status = 9;
int64 height = 10;
string assetExec = 11;
string priceExec = 12;
string priceSymbol = 13;
string priceExec = 12;
string priceSymbol = 13;
}
// 执行器日志部分
......@@ -131,8 +131,8 @@ message ReceiptBuyBase {
string txHash = 11;
int64 height = 12;
string assetExec = 13;
string priceExec = 14;
string priceSymbol = 15;
string priceExec = 14;
string priceSymbol = 15;
}
message ReceiptSellBase {
......@@ -153,11 +153,11 @@ message ReceiptSellBase {
string sellID = 11;
string status = 12;
// buyid
string buyID = 13;
string txHash = 14;
int64 height = 15;
string assetExec = 16;
string priceExec = 17;
string buyID = 13;
string txHash = 14;
int64 height = 15;
string assetExec = 16;
string priceExec = 17;
string priceSymbol = 18;
}
......@@ -277,8 +277,8 @@ message ReplyTradeOrder {
int64 blockTime = 14;
bool isSellOrder = 15;
string assetExec = 16;
string priceExec = 17;
string priceSymbol = 18;
string priceExec = 17;
string priceSymbol = 18;
}
message ReplyTradeOrders {
......@@ -301,26 +301,26 @@ message ReqBuyToken {
}
message LocalOrder {
string assetSymbol = 1;
string owner = 2;
int64 amountPerBoardlot = 3;
int64 minBoardlot = 4;
int64 pricePerBoardlot = 5;
int64 totalBoardlot = 6;
int64 tradedBoardlot = 7;
string buyID = 8;
int32 status = 9;
string sellID = 10;
repeated string txHash = 11;
int64 height = 12;
string key = 13;
int64 blockTime = 14;
bool isSellOrder = 15;
string assetExec = 16;
string txIndex = 17;
bool isFinished = 18;
string priceExec = 19;
string priceSymbol = 20;
string assetSymbol = 1;
string owner = 2;
int64 amountPerBoardlot = 3;
int64 minBoardlot = 4;
int64 pricePerBoardlot = 5;
int64 totalBoardlot = 6;
int64 tradedBoardlot = 7;
string buyID = 8;
int32 status = 9;
string sellID = 10;
repeated string txHash = 11;
int64 height = 12;
string key = 13;
int64 blockTime = 14;
bool isSellOrder = 15;
string assetExec = 16;
string txIndex = 17;
bool isFinished = 18;
string priceExec = 19;
string priceSymbol = 20;
}
service trade {
......
......@@ -79,13 +79,13 @@ message UnfreezeTerminate {
// receipt
message ReceiptUnfreeze {
Unfreeze prev = 1;
Unfreeze current = 2;
Unfreeze prev = 1;
Unfreeze current = 2;
}
message LocalUnfreeze {
Unfreeze unfreeze = 1;
string txIndex = 2;
string txIndex = 2;
}
// query
......@@ -95,11 +95,11 @@ message ReplyQueryUnfreezeWithdraw {
}
message ReqUnfreezes {
int32 direction = 1;
int32 count = 2;
string fromKey = 3;
string initiator = 4;
string beneficiary = 5;
int32 direction = 1;
int32 count = 2;
string fromKey = 3;
string initiator = 4;
string beneficiary = 5;
}
message ReplyUnfreeze {
......@@ -124,8 +124,8 @@ message ReplyUnfreeze {
FixAmount fixAmount = 10;
LeftProportion leftProportion = 11;
}
bool terminated = 12;
string key = 13;
bool terminated = 12;
string key = 13;
}
message ReplyUnfreezes {
repeated ReplyUnfreeze unfreeze = 1;
......
......@@ -30,9 +30,9 @@ message TendermintCommit {
}
message TendermintBlockInfo {
State State = 2;
Proposal Proposal = 3;
TendermintBlock block = 4;
State State = 2;
Proposal Proposal = 3;
TendermintBlock block = 4;
}
message BlockSize {
......@@ -87,7 +87,6 @@ message State {
bytes AppHash = 12;
}
message TendermintBlockHeader {
string chainID = 1;
int64 height = 2;
......@@ -105,9 +104,9 @@ message TendermintBlockHeader {
}
message TendermintBlock {
TendermintBlockHeader header = 1;
Block data = 2;
TendermintCommit lastCommit = 4;
TendermintBlockHeader header = 1;
Block data = 2;
TendermintCommit lastCommit = 4;
}
message Proposal {
......@@ -132,7 +131,7 @@ message ValidBlockMsg {
int64 height = 1;
int32 round = 2;
bytes blockhash = 3;
bool isCommit = 4;
bool isCommit = 4;
}
message ProposalPOLMsg {
......
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