Commit fe44a8a1 authored by jiangpeng's avatar jiangpeng

privacy:update code

* rename struct ReqCreatePricacyTx field "Type" to "ActionType" * move privacy constant reference in chain33 types to local types
parent 83b42f56
...@@ -127,7 +127,7 @@ func createPub2PrivTx(cmd *cobra.Command, args []string) { ...@@ -127,7 +127,7 @@ func createPub2PrivTx(cmd *cobra.Command, args []string) {
params := pty.ReqCreatePrivacyTx{ params := pty.ReqCreatePrivacyTx{
Tokenname: tokenname, Tokenname: tokenname,
Type: types.PrivacyTypePublic2Privacy, ActionType: pty.ActionPublic2Privacy,
Amount: amount, Amount: amount,
Note: note, Note: note,
Pubkeypair: pubkeypair, Pubkeypair: pubkeypair,
...@@ -192,7 +192,7 @@ func createPriv2PrivTx(cmd *cobra.Command, args []string) { ...@@ -192,7 +192,7 @@ func createPriv2PrivTx(cmd *cobra.Command, args []string) {
params := pty.ReqCreatePrivacyTx{ params := pty.ReqCreatePrivacyTx{
Tokenname: tokenname, Tokenname: tokenname,
Type: types.PrivacyTypePrivacy2Privacy, ActionType: pty.ActionPrivacy2Privacy,
Amount: amount, Amount: amount,
Note: note, Note: note,
Pubkeypair: pubkeypair, Pubkeypair: pubkeypair,
...@@ -259,7 +259,7 @@ func createPriv2PubTx(cmd *cobra.Command, args []string) { ...@@ -259,7 +259,7 @@ func createPriv2PubTx(cmd *cobra.Command, args []string) {
params := pty.ReqCreatePrivacyTx{ params := pty.ReqCreatePrivacyTx{
Tokenname: tokenname, Tokenname: tokenname,
Type: types.PrivacyTypePrivacy2Public, ActionType: pty.ActionPrivacy2Public,
Amount: amount, Amount: amount,
Note: note, Note: note,
From: from, From: from,
......
...@@ -181,7 +181,7 @@ func TestPrivacy_Exec_Public2Privacy(t *testing.T) { ...@@ -181,7 +181,7 @@ func TestPrivacy_Exec_Public2Privacy(t *testing.T) {
for _, tc := range tcArr { for _, tc := range tcArr {
req := tc.payload.(*pty.ReqCreatePrivacyTx) req := tc.payload.(*pty.ReqCreatePrivacyTx)
req.Type = types.PrivacyTypePublic2Privacy req.ActionType = pty.ActionPublic2Privacy
tc.testState = testStateExec tc.testState = testStateExec
} }
testExec(mock, tcArr, testPrivateKeys[0], t) testExec(mock, tcArr, testPrivateKeys[0], t)
...@@ -196,7 +196,7 @@ func TestPrivacy_Exec_Privacy2Privacy(t *testing.T) { ...@@ -196,7 +196,7 @@ func TestPrivacy_Exec_Privacy2Privacy(t *testing.T) {
{ {
index: 1, index: 1,
payload: &pty.ReqCreatePrivacyTx{ payload: &pty.ReqCreatePrivacyTx{
Type: types.PrivacyTypePublic2Privacy, ActionType: pty.ActionPublic2Privacy,
Amount: types.Coin * 9, Amount: types.Coin * 9,
Pubkeypair: testPubkeyPairs[0], Pubkeypair: testPubkeyPairs[0],
}, },
...@@ -213,8 +213,8 @@ func TestPrivacy_Exec_Privacy2Privacy(t *testing.T) { ...@@ -213,8 +213,8 @@ func TestPrivacy_Exec_Privacy2Privacy(t *testing.T) {
for _, tc := range tcArr { for _, tc := range tcArr {
req := tc.payload.(*pty.ReqCreatePrivacyTx) req := tc.payload.(*pty.ReqCreatePrivacyTx)
if req.Type == 0 { if req.ActionType == 0 {
req.Type = types.PrivacyTypePrivacy2Privacy req.ActionType = pty.ActionPrivacy2Privacy
} }
tc.testState = testStateExec tc.testState = testStateExec
} }
...@@ -230,7 +230,7 @@ func TestPrivacy_Exec_Privacy2Public(t *testing.T) { ...@@ -230,7 +230,7 @@ func TestPrivacy_Exec_Privacy2Public(t *testing.T) {
{ {
index: 1, index: 1,
payload: &pty.ReqCreatePrivacyTx{ payload: &pty.ReqCreatePrivacyTx{
Type: types.PrivacyTypePublic2Privacy, ActionType: pty.ActionPublic2Privacy,
Amount: types.Coin * 9, Amount: types.Coin * 9,
Pubkeypair: testPubkeyPairs[0], Pubkeypair: testPubkeyPairs[0],
}, },
...@@ -248,8 +248,8 @@ func TestPrivacy_Exec_Privacy2Public(t *testing.T) { ...@@ -248,8 +248,8 @@ func TestPrivacy_Exec_Privacy2Public(t *testing.T) {
for _, tc := range tcArr { for _, tc := range tcArr {
req := tc.payload.(*pty.ReqCreatePrivacyTx) req := tc.payload.(*pty.ReqCreatePrivacyTx)
if req.Type == 0 { if req.ActionType == 0 {
req.Type = types.PrivacyTypePrivacy2Public req.ActionType = pty.ActionPrivacy2Public
} }
tc.testState = testStateExec tc.testState = testStateExec
} }
...@@ -265,7 +265,7 @@ func TestPrivacy_ExecLocal(t *testing.T) { ...@@ -265,7 +265,7 @@ func TestPrivacy_ExecLocal(t *testing.T) {
{ {
index: 1, index: 1,
payload: &pty.ReqCreatePrivacyTx{ payload: &pty.ReqCreatePrivacyTx{
Type: types.PrivacyTypePublic2Privacy, ActionType: pty.ActionPublic2Privacy,
Amount: types.Coin * 9, Amount: types.Coin * 9,
Pubkeypair: testPubkeyPairs[0], Pubkeypair: testPubkeyPairs[0],
}, },
...@@ -273,7 +273,7 @@ func TestPrivacy_ExecLocal(t *testing.T) { ...@@ -273,7 +273,7 @@ func TestPrivacy_ExecLocal(t *testing.T) {
{ {
index: 2, index: 2,
payload: &pty.ReqCreatePrivacyTx{ payload: &pty.ReqCreatePrivacyTx{
Type: types.PrivacyTypePrivacy2Privacy, ActionType: pty.ActionPrivacy2Privacy,
Amount: types.Coin, Amount: types.Coin,
Pubkeypair: testPubkeyPairs[1], Pubkeypair: testPubkeyPairs[1],
From: testAddrs[0], From: testAddrs[0],
...@@ -282,7 +282,7 @@ func TestPrivacy_ExecLocal(t *testing.T) { ...@@ -282,7 +282,7 @@ func TestPrivacy_ExecLocal(t *testing.T) {
{ {
index: 3, index: 3,
payload: &pty.ReqCreatePrivacyTx{ payload: &pty.ReqCreatePrivacyTx{
Type: types.PrivacyTypePrivacy2Public, ActionType: pty.ActionPrivacy2Public,
Amount: types.Coin, Amount: types.Coin,
Pubkeypair: testPubkeyPairs[1], Pubkeypair: testPubkeyPairs[1],
From: testAddrs[0], From: testAddrs[0],
...@@ -306,7 +306,7 @@ func TestPrivacy_ExecDelLocal(t *testing.T) { ...@@ -306,7 +306,7 @@ func TestPrivacy_ExecDelLocal(t *testing.T) {
{ {
index: 1, index: 1,
payload: &pty.ReqCreatePrivacyTx{ payload: &pty.ReqCreatePrivacyTx{
Type: types.PrivacyTypePublic2Privacy, ActionType: pty.ActionPublic2Privacy,
Amount: types.Coin * 9, Amount: types.Coin * 9,
Pubkeypair: testPubkeyPairs[0], Pubkeypair: testPubkeyPairs[0],
}, },
...@@ -314,7 +314,7 @@ func TestPrivacy_ExecDelLocal(t *testing.T) { ...@@ -314,7 +314,7 @@ func TestPrivacy_ExecDelLocal(t *testing.T) {
{ {
index: 2, index: 2,
payload: &pty.ReqCreatePrivacyTx{ payload: &pty.ReqCreatePrivacyTx{
Type: types.PrivacyTypePrivacy2Privacy, ActionType: pty.ActionPrivacy2Privacy,
Amount: types.Coin, Amount: types.Coin,
Pubkeypair: testPubkeyPairs[1], Pubkeypair: testPubkeyPairs[1],
From: testAddrs[0], From: testAddrs[0],
...@@ -323,7 +323,7 @@ func TestPrivacy_ExecDelLocal(t *testing.T) { ...@@ -323,7 +323,7 @@ func TestPrivacy_ExecDelLocal(t *testing.T) {
{ {
index: 3, index: 3,
payload: &pty.ReqCreatePrivacyTx{ payload: &pty.ReqCreatePrivacyTx{
Type: types.PrivacyTypePrivacy2Public, ActionType: pty.ActionPrivacy2Public,
Amount: types.Coin, Amount: types.Coin,
Pubkeypair: testPubkeyPairs[1], Pubkeypair: testPubkeyPairs[1],
From: testAddrs[0], From: testAddrs[0],
......
...@@ -103,14 +103,14 @@ func (p *privacy) getGlobalUtxoIndex(getUtxoIndexReq *pty.ReqUTXOGlobalIndex) (t ...@@ -103,14 +103,14 @@ func (p *privacy) getGlobalUtxoIndex(getUtxoIndexReq *pty.ReqUTXOGlobalIndex) (t
tokenName := getUtxoIndexReq.Tokenname tokenName := getUtxoIndexReq.Tokenname
currentHeight := p.GetHeight() currentHeight := p.GetHeight()
for _, amount := range getUtxoIndexReq.Amount { for _, amount := range getUtxoIndexReq.Amount {
utxos, err := p.getUtxosByTokenAndAmount(tokenName, amount, types.UTXOCacheCount) utxos, err := p.getUtxosByTokenAndAmount(tokenName, amount, pty.UTXOCacheCount)
if err != nil { if err != nil {
return utxoGlobalIndexResp, err return utxoGlobalIndexResp, err
} }
index := len(utxos) - 1 index := len(utxos) - 1
for ; index >= 0; index-- { for ; index >= 0; index-- {
if utxos[index].GetHeight()+types.ConfirmedHeight <= currentHeight { if utxos[index].GetHeight()+pty.ConfirmedHeight <= currentHeight {
break break
} }
} }
......
...@@ -17,7 +17,7 @@ var ( ...@@ -17,7 +17,7 @@ var (
{ {
index: 1, index: 1,
payload: &pty.ReqCreatePrivacyTx{ payload: &pty.ReqCreatePrivacyTx{
Type: types.PrivacyTypePublic2Privacy, ActionType: pty.ActionPublic2Privacy,
Amount: types.Coin, Amount: types.Coin,
Pubkeypair: testPubkeyPairs[0], Pubkeypair: testPubkeyPairs[0],
}, },
......
...@@ -237,5 +237,5 @@ type walletMock struct { ...@@ -237,5 +237,5 @@ type walletMock struct {
} }
func (w *walletMock) GetBlockHeight() int64 { func (w *walletMock) GetBlockHeight() int64 {
return initHeight + types.PrivacyMaturityDegree return initHeight + pty.UtxoMaturityDegree
} }
File mode changed from 100644 to 100755
...@@ -402,10 +402,7 @@ message WalletAccountPrivacy { ...@@ -402,10 +402,7 @@ message WalletAccountPrivacy {
message ReqCreatePrivacyTx { message ReqCreatePrivacyTx {
string tokenname = 1; string tokenname = 1;
// 构建交易类型 // 构建交易类型
// 1:隐私交易 公开->隐私 int32 actionType = 2;
// 2:隐私交易 隐私->隐私
// 3:隐私交易 隐私->公开
int32 type = 2;
int64 amount = 3; int64 amount = 3;
string note = 4; string note = 4;
// 普通交易的发送方 // 普通交易的发送方
......
// Copyright Fuzamei Corp. 2018 All Rights Reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package types
import "github.com/33cn/chain33/types"
const (
// InvalidAction invalid action type
InvalidAction = 0
//action type for privacy
// ActionPublic2Privacy public to privacy action type
ActionPublic2Privacy = iota + 100
// ActionPrivacy2Privacy privacy to privacy action type
ActionPrivacy2Privacy
// ActionPrivacy2Public privacy to public action type
ActionPrivacy2Public
// log for privacy
// TyLogPrivacyFee privacy fee log type
TyLogPrivacyFee = 500
// TyLogPrivacyInput privacy input type
TyLogPrivacyInput = 501
// TyLogPrivacyOutput privacy output type
TyLogPrivacyOutput = 502
)
const (
//SignNameOnetimeED25519 privacy name of crypto
SignNameOnetimeED25519 = "privacy.onetimeed25519"
// SignNameRing signature name ring
SignNameRing = "privacy.RingSignatue"
// OnetimeED25519 one time ED25519
OnetimeED25519 = 4
// RingBaseonED25519 ring raseon ED25519
RingBaseonED25519 = 5
// PrivacyMaxCount max mix utxo cout
PrivacyMaxCount = 16
// PrivacyTxFee privacy tx fee
PrivacyTxFee = types.Coin
)
const (
// utxo缓存数量
UTXOCacheCount = 256
// UtxoMaturityDegree utxo 成熟度
UtxoMaturityDegree = 12
BTYDustThreshold = types.Coin
ConfirmedHeight = 12
SignatureSize = (4 + 33 + 65)
// Size1Kshiftlen tx消息大小1k
Size1Kshiftlen = 10
)
...@@ -14,41 +14,6 @@ import ( ...@@ -14,41 +14,6 @@ import (
// PrivacyX privacy executor name // PrivacyX privacy executor name
var PrivacyX = "privacy" var PrivacyX = "privacy"
const (
// InvalidAction invalid action type
InvalidAction = 0
//action type for privacy
// ActionPublic2Privacy public to privacy action type
ActionPublic2Privacy = iota + 100
// ActionPrivacy2Privacy privacy to privacy action type
ActionPrivacy2Privacy
// ActionPrivacy2Public privacy to public action type
ActionPrivacy2Public
// log for privacy
// TyLogPrivacyFee privacy fee log type
TyLogPrivacyFee = 500
// TyLogPrivacyInput privacy input type
TyLogPrivacyInput = 501
// TyLogPrivacyOutput privacy output type
TyLogPrivacyOutput = 502
//SignNameOnetimeED25519 privacy name of crypto
SignNameOnetimeED25519 = "privacy.onetimeed25519"
// SignNameRing signature name ring
SignNameRing = "privacy.RingSignatue"
// OnetimeED25519 one time ED25519
OnetimeED25519 = 4
// RingBaseonED25519 ring raseon ED25519
RingBaseonED25519 = 5
// PrivacyMaxCount max mix utxo cout
PrivacyMaxCount = 16
// PrivacyTxFee privacy tx fee
PrivacyTxFee = types.Coin
)
// RescanUtxoFlag // RescanUtxoFlag
const ( const (
UtxoFlagNoScan int32 = 0 UtxoFlagNoScan int32 = 0
......
...@@ -3,17 +3,13 @@ ...@@ -3,17 +3,13 @@
package types package types
import ( import proto "github.com/golang/protobuf/proto"
fmt "fmt" import fmt "fmt"
import math "math"
proto "github.com/golang/protobuf/proto" import types "github.com/33cn/chain33/types"
math "math"
types "github.com/33cn/chain33/types"
import (
context "golang.org/x/net/context" context "golang.org/x/net/context"
grpc "google.golang.org/grpc" grpc "google.golang.org/grpc"
) )
...@@ -48,7 +44,7 @@ func (m *PrivacyAction) Reset() { *m = PrivacyAction{} } ...@@ -48,7 +44,7 @@ func (m *PrivacyAction) Reset() { *m = PrivacyAction{} }
func (m *PrivacyAction) String() string { return proto.CompactTextString(m) } func (m *PrivacyAction) String() string { return proto.CompactTextString(m) }
func (*PrivacyAction) ProtoMessage() {} func (*PrivacyAction) ProtoMessage() {}
func (*PrivacyAction) Descriptor() ([]byte, []int) { func (*PrivacyAction) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{0} return fileDescriptor_privacy_b04022b2c709b5e6, []int{0}
} }
func (m *PrivacyAction) XXX_Unmarshal(b []byte) error { func (m *PrivacyAction) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PrivacyAction.Unmarshal(m, b) return xxx_messageInfo_PrivacyAction.Unmarshal(m, b)
...@@ -233,7 +229,7 @@ func (m *Public2Privacy) Reset() { *m = Public2Privacy{} } ...@@ -233,7 +229,7 @@ func (m *Public2Privacy) Reset() { *m = Public2Privacy{} }
func (m *Public2Privacy) String() string { return proto.CompactTextString(m) } func (m *Public2Privacy) String() string { return proto.CompactTextString(m) }
func (*Public2Privacy) ProtoMessage() {} func (*Public2Privacy) ProtoMessage() {}
func (*Public2Privacy) Descriptor() ([]byte, []int) { func (*Public2Privacy) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{1} return fileDescriptor_privacy_b04022b2c709b5e6, []int{1}
} }
func (m *Public2Privacy) XXX_Unmarshal(b []byte) error { func (m *Public2Privacy) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Public2Privacy.Unmarshal(m, b) return xxx_messageInfo_Public2Privacy.Unmarshal(m, b)
...@@ -304,7 +300,7 @@ func (m *Privacy2Privacy) Reset() { *m = Privacy2Privacy{} } ...@@ -304,7 +300,7 @@ func (m *Privacy2Privacy) Reset() { *m = Privacy2Privacy{} }
func (m *Privacy2Privacy) String() string { return proto.CompactTextString(m) } func (m *Privacy2Privacy) String() string { return proto.CompactTextString(m) }
func (*Privacy2Privacy) ProtoMessage() {} func (*Privacy2Privacy) ProtoMessage() {}
func (*Privacy2Privacy) Descriptor() ([]byte, []int) { func (*Privacy2Privacy) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{2} return fileDescriptor_privacy_b04022b2c709b5e6, []int{2}
} }
func (m *Privacy2Privacy) XXX_Unmarshal(b []byte) error { func (m *Privacy2Privacy) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Privacy2Privacy.Unmarshal(m, b) return xxx_messageInfo_Privacy2Privacy.Unmarshal(m, b)
...@@ -383,7 +379,7 @@ func (m *Privacy2Public) Reset() { *m = Privacy2Public{} } ...@@ -383,7 +379,7 @@ func (m *Privacy2Public) Reset() { *m = Privacy2Public{} }
func (m *Privacy2Public) String() string { return proto.CompactTextString(m) } func (m *Privacy2Public) String() string { return proto.CompactTextString(m) }
func (*Privacy2Public) ProtoMessage() {} func (*Privacy2Public) ProtoMessage() {}
func (*Privacy2Public) Descriptor() ([]byte, []int) { func (*Privacy2Public) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{3} return fileDescriptor_privacy_b04022b2c709b5e6, []int{3}
} }
func (m *Privacy2Public) XXX_Unmarshal(b []byte) error { func (m *Privacy2Public) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Privacy2Public.Unmarshal(m, b) return xxx_messageInfo_Privacy2Public.Unmarshal(m, b)
...@@ -466,7 +462,7 @@ func (m *UTXOGlobalIndex) Reset() { *m = UTXOGlobalIndex{} } ...@@ -466,7 +462,7 @@ func (m *UTXOGlobalIndex) Reset() { *m = UTXOGlobalIndex{} }
func (m *UTXOGlobalIndex) String() string { return proto.CompactTextString(m) } func (m *UTXOGlobalIndex) String() string { return proto.CompactTextString(m) }
func (*UTXOGlobalIndex) ProtoMessage() {} func (*UTXOGlobalIndex) ProtoMessage() {}
func (*UTXOGlobalIndex) Descriptor() ([]byte, []int) { func (*UTXOGlobalIndex) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{4} return fileDescriptor_privacy_b04022b2c709b5e6, []int{4}
} }
func (m *UTXOGlobalIndex) XXX_Unmarshal(b []byte) error { func (m *UTXOGlobalIndex) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UTXOGlobalIndex.Unmarshal(m, b) return xxx_messageInfo_UTXOGlobalIndex.Unmarshal(m, b)
...@@ -514,7 +510,7 @@ func (m *KeyInput) Reset() { *m = KeyInput{} } ...@@ -514,7 +510,7 @@ func (m *KeyInput) Reset() { *m = KeyInput{} }
func (m *KeyInput) String() string { return proto.CompactTextString(m) } func (m *KeyInput) String() string { return proto.CompactTextString(m) }
func (*KeyInput) ProtoMessage() {} func (*KeyInput) ProtoMessage() {}
func (*KeyInput) Descriptor() ([]byte, []int) { func (*KeyInput) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{5} return fileDescriptor_privacy_b04022b2c709b5e6, []int{5}
} }
func (m *KeyInput) XXX_Unmarshal(b []byte) error { func (m *KeyInput) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_KeyInput.Unmarshal(m, b) return xxx_messageInfo_KeyInput.Unmarshal(m, b)
...@@ -566,7 +562,7 @@ func (m *PrivacyInput) Reset() { *m = PrivacyInput{} } ...@@ -566,7 +562,7 @@ func (m *PrivacyInput) Reset() { *m = PrivacyInput{} }
func (m *PrivacyInput) String() string { return proto.CompactTextString(m) } func (m *PrivacyInput) String() string { return proto.CompactTextString(m) }
func (*PrivacyInput) ProtoMessage() {} func (*PrivacyInput) ProtoMessage() {}
func (*PrivacyInput) Descriptor() ([]byte, []int) { func (*PrivacyInput) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{6} return fileDescriptor_privacy_b04022b2c709b5e6, []int{6}
} }
func (m *PrivacyInput) XXX_Unmarshal(b []byte) error { func (m *PrivacyInput) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PrivacyInput.Unmarshal(m, b) return xxx_messageInfo_PrivacyInput.Unmarshal(m, b)
...@@ -606,7 +602,7 @@ func (m *KeyOutput) Reset() { *m = KeyOutput{} } ...@@ -606,7 +602,7 @@ func (m *KeyOutput) Reset() { *m = KeyOutput{} }
func (m *KeyOutput) String() string { return proto.CompactTextString(m) } func (m *KeyOutput) String() string { return proto.CompactTextString(m) }
func (*KeyOutput) ProtoMessage() {} func (*KeyOutput) ProtoMessage() {}
func (*KeyOutput) Descriptor() ([]byte, []int) { func (*KeyOutput) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{7} return fileDescriptor_privacy_b04022b2c709b5e6, []int{7}
} }
func (m *KeyOutput) XXX_Unmarshal(b []byte) error { func (m *KeyOutput) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_KeyOutput.Unmarshal(m, b) return xxx_messageInfo_KeyOutput.Unmarshal(m, b)
...@@ -652,7 +648,7 @@ func (m *PrivacyOutput) Reset() { *m = PrivacyOutput{} } ...@@ -652,7 +648,7 @@ func (m *PrivacyOutput) Reset() { *m = PrivacyOutput{} }
func (m *PrivacyOutput) String() string { return proto.CompactTextString(m) } func (m *PrivacyOutput) String() string { return proto.CompactTextString(m) }
func (*PrivacyOutput) ProtoMessage() {} func (*PrivacyOutput) ProtoMessage() {}
func (*PrivacyOutput) Descriptor() ([]byte, []int) { func (*PrivacyOutput) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{8} return fileDescriptor_privacy_b04022b2c709b5e6, []int{8}
} }
func (m *PrivacyOutput) XXX_Unmarshal(b []byte) error { func (m *PrivacyOutput) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PrivacyOutput.Unmarshal(m, b) return xxx_messageInfo_PrivacyOutput.Unmarshal(m, b)
...@@ -698,7 +694,7 @@ func (m *GroupUTXOGlobalIndex) Reset() { *m = GroupUTXOGlobalIndex{} } ...@@ -698,7 +694,7 @@ func (m *GroupUTXOGlobalIndex) Reset() { *m = GroupUTXOGlobalIndex{} }
func (m *GroupUTXOGlobalIndex) String() string { return proto.CompactTextString(m) } func (m *GroupUTXOGlobalIndex) String() string { return proto.CompactTextString(m) }
func (*GroupUTXOGlobalIndex) ProtoMessage() {} func (*GroupUTXOGlobalIndex) ProtoMessage() {}
func (*GroupUTXOGlobalIndex) Descriptor() ([]byte, []int) { func (*GroupUTXOGlobalIndex) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{9} return fileDescriptor_privacy_b04022b2c709b5e6, []int{9}
} }
func (m *GroupUTXOGlobalIndex) XXX_Unmarshal(b []byte) error { func (m *GroupUTXOGlobalIndex) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GroupUTXOGlobalIndex.Unmarshal(m, b) return xxx_messageInfo_GroupUTXOGlobalIndex.Unmarshal(m, b)
...@@ -747,7 +743,7 @@ func (m *LocalUTXOItem) Reset() { *m = LocalUTXOItem{} } ...@@ -747,7 +743,7 @@ func (m *LocalUTXOItem) Reset() { *m = LocalUTXOItem{} }
func (m *LocalUTXOItem) String() string { return proto.CompactTextString(m) } func (m *LocalUTXOItem) String() string { return proto.CompactTextString(m) }
func (*LocalUTXOItem) ProtoMessage() {} func (*LocalUTXOItem) ProtoMessage() {}
func (*LocalUTXOItem) Descriptor() ([]byte, []int) { func (*LocalUTXOItem) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{10} return fileDescriptor_privacy_b04022b2c709b5e6, []int{10}
} }
func (m *LocalUTXOItem) XXX_Unmarshal(b []byte) error { func (m *LocalUTXOItem) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_LocalUTXOItem.Unmarshal(m, b) return xxx_messageInfo_LocalUTXOItem.Unmarshal(m, b)
...@@ -814,7 +810,7 @@ func (m *ReqUTXOPubKeys) Reset() { *m = ReqUTXOPubKeys{} } ...@@ -814,7 +810,7 @@ func (m *ReqUTXOPubKeys) Reset() { *m = ReqUTXOPubKeys{} }
func (m *ReqUTXOPubKeys) String() string { return proto.CompactTextString(m) } func (m *ReqUTXOPubKeys) String() string { return proto.CompactTextString(m) }
func (*ReqUTXOPubKeys) ProtoMessage() {} func (*ReqUTXOPubKeys) ProtoMessage() {}
func (*ReqUTXOPubKeys) Descriptor() ([]byte, []int) { func (*ReqUTXOPubKeys) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{11} return fileDescriptor_privacy_b04022b2c709b5e6, []int{11}
} }
func (m *ReqUTXOPubKeys) XXX_Unmarshal(b []byte) error { func (m *ReqUTXOPubKeys) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqUTXOPubKeys.Unmarshal(m, b) return xxx_messageInfo_ReqUTXOPubKeys.Unmarshal(m, b)
...@@ -860,7 +856,7 @@ func (m *PublicKeyData) Reset() { *m = PublicKeyData{} } ...@@ -860,7 +856,7 @@ func (m *PublicKeyData) Reset() { *m = PublicKeyData{} }
func (m *PublicKeyData) String() string { return proto.CompactTextString(m) } func (m *PublicKeyData) String() string { return proto.CompactTextString(m) }
func (*PublicKeyData) ProtoMessage() {} func (*PublicKeyData) ProtoMessage() {}
func (*PublicKeyData) Descriptor() ([]byte, []int) { func (*PublicKeyData) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{12} return fileDescriptor_privacy_b04022b2c709b5e6, []int{12}
} }
func (m *PublicKeyData) XXX_Unmarshal(b []byte) error { func (m *PublicKeyData) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PublicKeyData.Unmarshal(m, b) return xxx_messageInfo_PublicKeyData.Unmarshal(m, b)
...@@ -900,7 +896,7 @@ func (m *GroupUTXOPubKey) Reset() { *m = GroupUTXOPubKey{} } ...@@ -900,7 +896,7 @@ func (m *GroupUTXOPubKey) Reset() { *m = GroupUTXOPubKey{} }
func (m *GroupUTXOPubKey) String() string { return proto.CompactTextString(m) } func (m *GroupUTXOPubKey) String() string { return proto.CompactTextString(m) }
func (*GroupUTXOPubKey) ProtoMessage() {} func (*GroupUTXOPubKey) ProtoMessage() {}
func (*GroupUTXOPubKey) Descriptor() ([]byte, []int) { func (*GroupUTXOPubKey) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{13} return fileDescriptor_privacy_b04022b2c709b5e6, []int{13}
} }
func (m *GroupUTXOPubKey) XXX_Unmarshal(b []byte) error { func (m *GroupUTXOPubKey) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GroupUTXOPubKey.Unmarshal(m, b) return xxx_messageInfo_GroupUTXOPubKey.Unmarshal(m, b)
...@@ -945,7 +941,7 @@ func (m *ResUTXOPubKeys) Reset() { *m = ResUTXOPubKeys{} } ...@@ -945,7 +941,7 @@ func (m *ResUTXOPubKeys) Reset() { *m = ResUTXOPubKeys{} }
func (m *ResUTXOPubKeys) String() string { return proto.CompactTextString(m) } func (m *ResUTXOPubKeys) String() string { return proto.CompactTextString(m) }
func (*ResUTXOPubKeys) ProtoMessage() {} func (*ResUTXOPubKeys) ProtoMessage() {}
func (*ResUTXOPubKeys) Descriptor() ([]byte, []int) { func (*ResUTXOPubKeys) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{14} return fileDescriptor_privacy_b04022b2c709b5e6, []int{14}
} }
func (m *ResUTXOPubKeys) XXX_Unmarshal(b []byte) error { func (m *ResUTXOPubKeys) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ResUTXOPubKeys.Unmarshal(m, b) return xxx_messageInfo_ResUTXOPubKeys.Unmarshal(m, b)
...@@ -984,7 +980,7 @@ func (m *ReqPrivacyToken) Reset() { *m = ReqPrivacyToken{} } ...@@ -984,7 +980,7 @@ func (m *ReqPrivacyToken) Reset() { *m = ReqPrivacyToken{} }
func (m *ReqPrivacyToken) String() string { return proto.CompactTextString(m) } func (m *ReqPrivacyToken) String() string { return proto.CompactTextString(m) }
func (*ReqPrivacyToken) ProtoMessage() {} func (*ReqPrivacyToken) ProtoMessage() {}
func (*ReqPrivacyToken) Descriptor() ([]byte, []int) { func (*ReqPrivacyToken) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{15} return fileDescriptor_privacy_b04022b2c709b5e6, []int{15}
} }
func (m *ReqPrivacyToken) XXX_Unmarshal(b []byte) error { func (m *ReqPrivacyToken) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqPrivacyToken.Unmarshal(m, b) return xxx_messageInfo_ReqPrivacyToken.Unmarshal(m, b)
...@@ -1030,7 +1026,7 @@ func (m *AmountDetail) Reset() { *m = AmountDetail{} } ...@@ -1030,7 +1026,7 @@ func (m *AmountDetail) Reset() { *m = AmountDetail{} }
func (m *AmountDetail) String() string { return proto.CompactTextString(m) } func (m *AmountDetail) String() string { return proto.CompactTextString(m) }
func (*AmountDetail) ProtoMessage() {} func (*AmountDetail) ProtoMessage() {}
func (*AmountDetail) Descriptor() ([]byte, []int) { func (*AmountDetail) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{16} return fileDescriptor_privacy_b04022b2c709b5e6, []int{16}
} }
func (m *AmountDetail) XXX_Unmarshal(b []byte) error { func (m *AmountDetail) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AmountDetail.Unmarshal(m, b) return xxx_messageInfo_AmountDetail.Unmarshal(m, b)
...@@ -1075,7 +1071,7 @@ func (m *ReplyPrivacyAmounts) Reset() { *m = ReplyPrivacyAmounts{} } ...@@ -1075,7 +1071,7 @@ func (m *ReplyPrivacyAmounts) Reset() { *m = ReplyPrivacyAmounts{} }
func (m *ReplyPrivacyAmounts) String() string { return proto.CompactTextString(m) } func (m *ReplyPrivacyAmounts) String() string { return proto.CompactTextString(m) }
func (*ReplyPrivacyAmounts) ProtoMessage() {} func (*ReplyPrivacyAmounts) ProtoMessage() {}
func (*ReplyPrivacyAmounts) Descriptor() ([]byte, []int) { func (*ReplyPrivacyAmounts) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{17} return fileDescriptor_privacy_b04022b2c709b5e6, []int{17}
} }
func (m *ReplyPrivacyAmounts) XXX_Unmarshal(b []byte) error { func (m *ReplyPrivacyAmounts) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReplyPrivacyAmounts.Unmarshal(m, b) return xxx_messageInfo_ReplyPrivacyAmounts.Unmarshal(m, b)
...@@ -1113,7 +1109,7 @@ func (m *ReplyUTXOsOfAmount) Reset() { *m = ReplyUTXOsOfAmount{} } ...@@ -1113,7 +1109,7 @@ func (m *ReplyUTXOsOfAmount) Reset() { *m = ReplyUTXOsOfAmount{} }
func (m *ReplyUTXOsOfAmount) String() string { return proto.CompactTextString(m) } func (m *ReplyUTXOsOfAmount) String() string { return proto.CompactTextString(m) }
func (*ReplyUTXOsOfAmount) ProtoMessage() {} func (*ReplyUTXOsOfAmount) ProtoMessage() {}
func (*ReplyUTXOsOfAmount) Descriptor() ([]byte, []int) { func (*ReplyUTXOsOfAmount) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{18} return fileDescriptor_privacy_b04022b2c709b5e6, []int{18}
} }
func (m *ReplyUTXOsOfAmount) XXX_Unmarshal(b []byte) error { func (m *ReplyUTXOsOfAmount) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReplyUTXOsOfAmount.Unmarshal(m, b) return xxx_messageInfo_ReplyUTXOsOfAmount.Unmarshal(m, b)
...@@ -1152,7 +1148,7 @@ func (m *ReceiptPrivacyOutput) Reset() { *m = ReceiptPrivacyOutput{} } ...@@ -1152,7 +1148,7 @@ func (m *ReceiptPrivacyOutput) Reset() { *m = ReceiptPrivacyOutput{} }
func (m *ReceiptPrivacyOutput) String() string { return proto.CompactTextString(m) } func (m *ReceiptPrivacyOutput) String() string { return proto.CompactTextString(m) }
func (*ReceiptPrivacyOutput) ProtoMessage() {} func (*ReceiptPrivacyOutput) ProtoMessage() {}
func (*ReceiptPrivacyOutput) Descriptor() ([]byte, []int) { func (*ReceiptPrivacyOutput) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{19} return fileDescriptor_privacy_b04022b2c709b5e6, []int{19}
} }
func (m *ReceiptPrivacyOutput) XXX_Unmarshal(b []byte) error { func (m *ReceiptPrivacyOutput) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReceiptPrivacyOutput.Unmarshal(m, b) return xxx_messageInfo_ReceiptPrivacyOutput.Unmarshal(m, b)
...@@ -1198,7 +1194,7 @@ func (m *AmountsOfUTXO) Reset() { *m = AmountsOfUTXO{} } ...@@ -1198,7 +1194,7 @@ func (m *AmountsOfUTXO) Reset() { *m = AmountsOfUTXO{} }
func (m *AmountsOfUTXO) String() string { return proto.CompactTextString(m) } func (m *AmountsOfUTXO) String() string { return proto.CompactTextString(m) }
func (*AmountsOfUTXO) ProtoMessage() {} func (*AmountsOfUTXO) ProtoMessage() {}
func (*AmountsOfUTXO) Descriptor() ([]byte, []int) { func (*AmountsOfUTXO) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{20} return fileDescriptor_privacy_b04022b2c709b5e6, []int{20}
} }
func (m *AmountsOfUTXO) XXX_Unmarshal(b []byte) error { func (m *AmountsOfUTXO) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AmountsOfUTXO.Unmarshal(m, b) return xxx_messageInfo_AmountsOfUTXO.Unmarshal(m, b)
...@@ -1236,7 +1232,7 @@ func (m *TokenNamesOfUTXO) Reset() { *m = TokenNamesOfUTXO{} } ...@@ -1236,7 +1232,7 @@ func (m *TokenNamesOfUTXO) Reset() { *m = TokenNamesOfUTXO{} }
func (m *TokenNamesOfUTXO) String() string { return proto.CompactTextString(m) } func (m *TokenNamesOfUTXO) String() string { return proto.CompactTextString(m) }
func (*TokenNamesOfUTXO) ProtoMessage() {} func (*TokenNamesOfUTXO) ProtoMessage() {}
func (*TokenNamesOfUTXO) Descriptor() ([]byte, []int) { func (*TokenNamesOfUTXO) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{21} return fileDescriptor_privacy_b04022b2c709b5e6, []int{21}
} }
func (m *TokenNamesOfUTXO) XXX_Unmarshal(b []byte) error { func (m *TokenNamesOfUTXO) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TokenNamesOfUTXO.Unmarshal(m, b) return xxx_messageInfo_TokenNamesOfUTXO.Unmarshal(m, b)
...@@ -1276,7 +1272,7 @@ func (m *UTXOGlobalIndex4Print) Reset() { *m = UTXOGlobalIndex4Print{} } ...@@ -1276,7 +1272,7 @@ func (m *UTXOGlobalIndex4Print) Reset() { *m = UTXOGlobalIndex4Print{} }
func (m *UTXOGlobalIndex4Print) String() string { return proto.CompactTextString(m) } func (m *UTXOGlobalIndex4Print) String() string { return proto.CompactTextString(m) }
func (*UTXOGlobalIndex4Print) ProtoMessage() {} func (*UTXOGlobalIndex4Print) ProtoMessage() {}
func (*UTXOGlobalIndex4Print) Descriptor() ([]byte, []int) { func (*UTXOGlobalIndex4Print) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{22} return fileDescriptor_privacy_b04022b2c709b5e6, []int{22}
} }
func (m *UTXOGlobalIndex4Print) XXX_Unmarshal(b []byte) error { func (m *UTXOGlobalIndex4Print) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UTXOGlobalIndex4Print.Unmarshal(m, b) return xxx_messageInfo_UTXOGlobalIndex4Print.Unmarshal(m, b)
...@@ -1323,7 +1319,7 @@ func (m *KeyInput4Print) Reset() { *m = KeyInput4Print{} } ...@@ -1323,7 +1319,7 @@ func (m *KeyInput4Print) Reset() { *m = KeyInput4Print{} }
func (m *KeyInput4Print) String() string { return proto.CompactTextString(m) } func (m *KeyInput4Print) String() string { return proto.CompactTextString(m) }
func (*KeyInput4Print) ProtoMessage() {} func (*KeyInput4Print) ProtoMessage() {}
func (*KeyInput4Print) Descriptor() ([]byte, []int) { func (*KeyInput4Print) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{23} return fileDescriptor_privacy_b04022b2c709b5e6, []int{23}
} }
func (m *KeyInput4Print) XXX_Unmarshal(b []byte) error { func (m *KeyInput4Print) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_KeyInput4Print.Unmarshal(m, b) return xxx_messageInfo_KeyInput4Print.Unmarshal(m, b)
...@@ -1376,7 +1372,7 @@ func (m *KeyOutput4Print) Reset() { *m = KeyOutput4Print{} } ...@@ -1376,7 +1372,7 @@ func (m *KeyOutput4Print) Reset() { *m = KeyOutput4Print{} }
func (m *KeyOutput4Print) String() string { return proto.CompactTextString(m) } func (m *KeyOutput4Print) String() string { return proto.CompactTextString(m) }
func (*KeyOutput4Print) ProtoMessage() {} func (*KeyOutput4Print) ProtoMessage() {}
func (*KeyOutput4Print) Descriptor() ([]byte, []int) { func (*KeyOutput4Print) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{24} return fileDescriptor_privacy_b04022b2c709b5e6, []int{24}
} }
func (m *KeyOutput4Print) XXX_Unmarshal(b []byte) error { func (m *KeyOutput4Print) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_KeyOutput4Print.Unmarshal(m, b) return xxx_messageInfo_KeyOutput4Print.Unmarshal(m, b)
...@@ -1421,7 +1417,7 @@ func (m *PrivacyInput4Print) Reset() { *m = PrivacyInput4Print{} } ...@@ -1421,7 +1417,7 @@ func (m *PrivacyInput4Print) Reset() { *m = PrivacyInput4Print{} }
func (m *PrivacyInput4Print) String() string { return proto.CompactTextString(m) } func (m *PrivacyInput4Print) String() string { return proto.CompactTextString(m) }
func (*PrivacyInput4Print) ProtoMessage() {} func (*PrivacyInput4Print) ProtoMessage() {}
func (*PrivacyInput4Print) Descriptor() ([]byte, []int) { func (*PrivacyInput4Print) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{25} return fileDescriptor_privacy_b04022b2c709b5e6, []int{25}
} }
func (m *PrivacyInput4Print) XXX_Unmarshal(b []byte) error { func (m *PrivacyInput4Print) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PrivacyInput4Print.Unmarshal(m, b) return xxx_messageInfo_PrivacyInput4Print.Unmarshal(m, b)
...@@ -1460,7 +1456,7 @@ func (m *PrivacyOutput4Print) Reset() { *m = PrivacyOutput4Print{} } ...@@ -1460,7 +1456,7 @@ func (m *PrivacyOutput4Print) Reset() { *m = PrivacyOutput4Print{} }
func (m *PrivacyOutput4Print) String() string { return proto.CompactTextString(m) } func (m *PrivacyOutput4Print) String() string { return proto.CompactTextString(m) }
func (*PrivacyOutput4Print) ProtoMessage() {} func (*PrivacyOutput4Print) ProtoMessage() {}
func (*PrivacyOutput4Print) Descriptor() ([]byte, []int) { func (*PrivacyOutput4Print) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{26} return fileDescriptor_privacy_b04022b2c709b5e6, []int{26}
} }
func (m *PrivacyOutput4Print) XXX_Unmarshal(b []byte) error { func (m *PrivacyOutput4Print) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PrivacyOutput4Print.Unmarshal(m, b) return xxx_messageInfo_PrivacyOutput4Print.Unmarshal(m, b)
...@@ -1508,7 +1504,7 @@ func (m *Public2Privacy4Print) Reset() { *m = Public2Privacy4Print{} } ...@@ -1508,7 +1504,7 @@ func (m *Public2Privacy4Print) Reset() { *m = Public2Privacy4Print{} }
func (m *Public2Privacy4Print) String() string { return proto.CompactTextString(m) } func (m *Public2Privacy4Print) String() string { return proto.CompactTextString(m) }
func (*Public2Privacy4Print) ProtoMessage() {} func (*Public2Privacy4Print) ProtoMessage() {}
func (*Public2Privacy4Print) Descriptor() ([]byte, []int) { func (*Public2Privacy4Print) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{27} return fileDescriptor_privacy_b04022b2c709b5e6, []int{27}
} }
func (m *Public2Privacy4Print) XXX_Unmarshal(b []byte) error { func (m *Public2Privacy4Print) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Public2Privacy4Print.Unmarshal(m, b) return xxx_messageInfo_Public2Privacy4Print.Unmarshal(m, b)
...@@ -1571,7 +1567,7 @@ func (m *Privacy2Privacy4Print) Reset() { *m = Privacy2Privacy4Print{} } ...@@ -1571,7 +1567,7 @@ func (m *Privacy2Privacy4Print) Reset() { *m = Privacy2Privacy4Print{} }
func (m *Privacy2Privacy4Print) String() string { return proto.CompactTextString(m) } func (m *Privacy2Privacy4Print) String() string { return proto.CompactTextString(m) }
func (*Privacy2Privacy4Print) ProtoMessage() {} func (*Privacy2Privacy4Print) ProtoMessage() {}
func (*Privacy2Privacy4Print) Descriptor() ([]byte, []int) { func (*Privacy2Privacy4Print) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{28} return fileDescriptor_privacy_b04022b2c709b5e6, []int{28}
} }
func (m *Privacy2Privacy4Print) XXX_Unmarshal(b []byte) error { func (m *Privacy2Privacy4Print) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Privacy2Privacy4Print.Unmarshal(m, b) return xxx_messageInfo_Privacy2Privacy4Print.Unmarshal(m, b)
...@@ -1641,7 +1637,7 @@ func (m *Privacy2Public4Print) Reset() { *m = Privacy2Public4Print{} } ...@@ -1641,7 +1637,7 @@ func (m *Privacy2Public4Print) Reset() { *m = Privacy2Public4Print{} }
func (m *Privacy2Public4Print) String() string { return proto.CompactTextString(m) } func (m *Privacy2Public4Print) String() string { return proto.CompactTextString(m) }
func (*Privacy2Public4Print) ProtoMessage() {} func (*Privacy2Public4Print) ProtoMessage() {}
func (*Privacy2Public4Print) Descriptor() ([]byte, []int) { func (*Privacy2Public4Print) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{29} return fileDescriptor_privacy_b04022b2c709b5e6, []int{29}
} }
func (m *Privacy2Public4Print) XXX_Unmarshal(b []byte) error { func (m *Privacy2Public4Print) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Privacy2Public4Print.Unmarshal(m, b) return xxx_messageInfo_Privacy2Public4Print.Unmarshal(m, b)
...@@ -1712,7 +1708,7 @@ func (m *PrivacyAction4Print) Reset() { *m = PrivacyAction4Print{} } ...@@ -1712,7 +1708,7 @@ func (m *PrivacyAction4Print) Reset() { *m = PrivacyAction4Print{} }
func (m *PrivacyAction4Print) String() string { return proto.CompactTextString(m) } func (m *PrivacyAction4Print) String() string { return proto.CompactTextString(m) }
func (*PrivacyAction4Print) ProtoMessage() {} func (*PrivacyAction4Print) ProtoMessage() {}
func (*PrivacyAction4Print) Descriptor() ([]byte, []int) { func (*PrivacyAction4Print) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{30} return fileDescriptor_privacy_b04022b2c709b5e6, []int{30}
} }
func (m *PrivacyAction4Print) XXX_Unmarshal(b []byte) error { func (m *PrivacyAction4Print) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PrivacyAction4Print.Unmarshal(m, b) return xxx_messageInfo_PrivacyAction4Print.Unmarshal(m, b)
...@@ -1896,7 +1892,7 @@ func (m *ReplyPrivacyPkPair) Reset() { *m = ReplyPrivacyPkPair{} } ...@@ -1896,7 +1892,7 @@ func (m *ReplyPrivacyPkPair) Reset() { *m = ReplyPrivacyPkPair{} }
func (m *ReplyPrivacyPkPair) String() string { return proto.CompactTextString(m) } func (m *ReplyPrivacyPkPair) String() string { return proto.CompactTextString(m) }
func (*ReplyPrivacyPkPair) ProtoMessage() {} func (*ReplyPrivacyPkPair) ProtoMessage() {}
func (*ReplyPrivacyPkPair) Descriptor() ([]byte, []int) { func (*ReplyPrivacyPkPair) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{31} return fileDescriptor_privacy_b04022b2c709b5e6, []int{31}
} }
func (m *ReplyPrivacyPkPair) XXX_Unmarshal(b []byte) error { func (m *ReplyPrivacyPkPair) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReplyPrivacyPkPair.Unmarshal(m, b) return xxx_messageInfo_ReplyPrivacyPkPair.Unmarshal(m, b)
...@@ -1942,7 +1938,7 @@ func (m *ReqPrivBal4AddrToken) Reset() { *m = ReqPrivBal4AddrToken{} } ...@@ -1942,7 +1938,7 @@ func (m *ReqPrivBal4AddrToken) Reset() { *m = ReqPrivBal4AddrToken{} }
func (m *ReqPrivBal4AddrToken) String() string { return proto.CompactTextString(m) } func (m *ReqPrivBal4AddrToken) String() string { return proto.CompactTextString(m) }
func (*ReqPrivBal4AddrToken) ProtoMessage() {} func (*ReqPrivBal4AddrToken) ProtoMessage() {}
func (*ReqPrivBal4AddrToken) Descriptor() ([]byte, []int) { func (*ReqPrivBal4AddrToken) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{32} return fileDescriptor_privacy_b04022b2c709b5e6, []int{32}
} }
func (m *ReqPrivBal4AddrToken) XXX_Unmarshal(b []byte) error { func (m *ReqPrivBal4AddrToken) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqPrivBal4AddrToken.Unmarshal(m, b) return xxx_messageInfo_ReqPrivBal4AddrToken.Unmarshal(m, b)
...@@ -1988,7 +1984,7 @@ func (m *ReplyPrivacyBalance) Reset() { *m = ReplyPrivacyBalance{} } ...@@ -1988,7 +1984,7 @@ func (m *ReplyPrivacyBalance) Reset() { *m = ReplyPrivacyBalance{} }
func (m *ReplyPrivacyBalance) String() string { return proto.CompactTextString(m) } func (m *ReplyPrivacyBalance) String() string { return proto.CompactTextString(m) }
func (*ReplyPrivacyBalance) ProtoMessage() {} func (*ReplyPrivacyBalance) ProtoMessage() {}
func (*ReplyPrivacyBalance) Descriptor() ([]byte, []int) { func (*ReplyPrivacyBalance) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{33} return fileDescriptor_privacy_b04022b2c709b5e6, []int{33}
} }
func (m *ReplyPrivacyBalance) XXX_Unmarshal(b []byte) error { func (m *ReplyPrivacyBalance) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReplyPrivacyBalance.Unmarshal(m, b) return xxx_messageInfo_ReplyPrivacyBalance.Unmarshal(m, b)
...@@ -2042,7 +2038,7 @@ func (m *PrivacyDBStore) Reset() { *m = PrivacyDBStore{} } ...@@ -2042,7 +2038,7 @@ func (m *PrivacyDBStore) Reset() { *m = PrivacyDBStore{} }
func (m *PrivacyDBStore) String() string { return proto.CompactTextString(m) } func (m *PrivacyDBStore) String() string { return proto.CompactTextString(m) }
func (*PrivacyDBStore) ProtoMessage() {} func (*PrivacyDBStore) ProtoMessage() {}
func (*PrivacyDBStore) Descriptor() ([]byte, []int) { func (*PrivacyDBStore) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{34} return fileDescriptor_privacy_b04022b2c709b5e6, []int{34}
} }
func (m *PrivacyDBStore) XXX_Unmarshal(b []byte) error { func (m *PrivacyDBStore) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PrivacyDBStore.Unmarshal(m, b) return xxx_messageInfo_PrivacyDBStore.Unmarshal(m, b)
...@@ -2144,7 +2140,7 @@ func (m *UTXO) Reset() { *m = UTXO{} } ...@@ -2144,7 +2140,7 @@ func (m *UTXO) Reset() { *m = UTXO{} }
func (m *UTXO) String() string { return proto.CompactTextString(m) } func (m *UTXO) String() string { return proto.CompactTextString(m) }
func (*UTXO) ProtoMessage() {} func (*UTXO) ProtoMessage() {}
func (*UTXO) Descriptor() ([]byte, []int) { func (*UTXO) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{35} return fileDescriptor_privacy_b04022b2c709b5e6, []int{35}
} }
func (m *UTXO) XXX_Unmarshal(b []byte) error { func (m *UTXO) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UTXO.Unmarshal(m, b) return xxx_messageInfo_UTXO.Unmarshal(m, b)
...@@ -2191,7 +2187,7 @@ func (m *UTXOHaveTxHash) Reset() { *m = UTXOHaveTxHash{} } ...@@ -2191,7 +2187,7 @@ func (m *UTXOHaveTxHash) Reset() { *m = UTXOHaveTxHash{} }
func (m *UTXOHaveTxHash) String() string { return proto.CompactTextString(m) } func (m *UTXOHaveTxHash) String() string { return proto.CompactTextString(m) }
func (*UTXOHaveTxHash) ProtoMessage() {} func (*UTXOHaveTxHash) ProtoMessage() {}
func (*UTXOHaveTxHash) Descriptor() ([]byte, []int) { func (*UTXOHaveTxHash) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{36} return fileDescriptor_privacy_b04022b2c709b5e6, []int{36}
} }
func (m *UTXOHaveTxHash) XXX_Unmarshal(b []byte) error { func (m *UTXOHaveTxHash) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UTXOHaveTxHash.Unmarshal(m, b) return xxx_messageInfo_UTXOHaveTxHash.Unmarshal(m, b)
...@@ -2243,7 +2239,7 @@ func (m *UTXOs) Reset() { *m = UTXOs{} } ...@@ -2243,7 +2239,7 @@ func (m *UTXOs) Reset() { *m = UTXOs{} }
func (m *UTXOs) String() string { return proto.CompactTextString(m) } func (m *UTXOs) String() string { return proto.CompactTextString(m) }
func (*UTXOs) ProtoMessage() {} func (*UTXOs) ProtoMessage() {}
func (*UTXOs) Descriptor() ([]byte, []int) { func (*UTXOs) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{37} return fileDescriptor_privacy_b04022b2c709b5e6, []int{37}
} }
func (m *UTXOs) XXX_Unmarshal(b []byte) error { func (m *UTXOs) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UTXOs.Unmarshal(m, b) return xxx_messageInfo_UTXOs.Unmarshal(m, b)
...@@ -2281,7 +2277,7 @@ func (m *UTXOHaveTxHashs) Reset() { *m = UTXOHaveTxHashs{} } ...@@ -2281,7 +2277,7 @@ func (m *UTXOHaveTxHashs) Reset() { *m = UTXOHaveTxHashs{} }
func (m *UTXOHaveTxHashs) String() string { return proto.CompactTextString(m) } func (m *UTXOHaveTxHashs) String() string { return proto.CompactTextString(m) }
func (*UTXOHaveTxHashs) ProtoMessage() {} func (*UTXOHaveTxHashs) ProtoMessage() {}
func (*UTXOHaveTxHashs) Descriptor() ([]byte, []int) { func (*UTXOHaveTxHashs) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{38} return fileDescriptor_privacy_b04022b2c709b5e6, []int{38}
} }
func (m *UTXOHaveTxHashs) XXX_Unmarshal(b []byte) error { func (m *UTXOHaveTxHashs) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UTXOHaveTxHashs.Unmarshal(m, b) return xxx_messageInfo_UTXOHaveTxHashs.Unmarshal(m, b)
...@@ -2321,7 +2317,7 @@ func (m *ReqUTXOGlobalIndex) Reset() { *m = ReqUTXOGlobalIndex{} } ...@@ -2321,7 +2317,7 @@ func (m *ReqUTXOGlobalIndex) Reset() { *m = ReqUTXOGlobalIndex{} }
func (m *ReqUTXOGlobalIndex) String() string { return proto.CompactTextString(m) } func (m *ReqUTXOGlobalIndex) String() string { return proto.CompactTextString(m) }
func (*ReqUTXOGlobalIndex) ProtoMessage() {} func (*ReqUTXOGlobalIndex) ProtoMessage() {}
func (*ReqUTXOGlobalIndex) Descriptor() ([]byte, []int) { func (*ReqUTXOGlobalIndex) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{39} return fileDescriptor_privacy_b04022b2c709b5e6, []int{39}
} }
func (m *ReqUTXOGlobalIndex) XXX_Unmarshal(b []byte) error { func (m *ReqUTXOGlobalIndex) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqUTXOGlobalIndex.Unmarshal(m, b) return xxx_messageInfo_ReqUTXOGlobalIndex.Unmarshal(m, b)
...@@ -2374,7 +2370,7 @@ func (m *UTXOBasic) Reset() { *m = UTXOBasic{} } ...@@ -2374,7 +2370,7 @@ func (m *UTXOBasic) Reset() { *m = UTXOBasic{} }
func (m *UTXOBasic) String() string { return proto.CompactTextString(m) } func (m *UTXOBasic) String() string { return proto.CompactTextString(m) }
func (*UTXOBasic) ProtoMessage() {} func (*UTXOBasic) ProtoMessage() {}
func (*UTXOBasic) Descriptor() ([]byte, []int) { func (*UTXOBasic) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{40} return fileDescriptor_privacy_b04022b2c709b5e6, []int{40}
} }
func (m *UTXOBasic) XXX_Unmarshal(b []byte) error { func (m *UTXOBasic) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UTXOBasic.Unmarshal(m, b) return xxx_messageInfo_UTXOBasic.Unmarshal(m, b)
...@@ -2420,7 +2416,7 @@ func (m *UTXOIndex4Amount) Reset() { *m = UTXOIndex4Amount{} } ...@@ -2420,7 +2416,7 @@ func (m *UTXOIndex4Amount) Reset() { *m = UTXOIndex4Amount{} }
func (m *UTXOIndex4Amount) String() string { return proto.CompactTextString(m) } func (m *UTXOIndex4Amount) String() string { return proto.CompactTextString(m) }
func (*UTXOIndex4Amount) ProtoMessage() {} func (*UTXOIndex4Amount) ProtoMessage() {}
func (*UTXOIndex4Amount) Descriptor() ([]byte, []int) { func (*UTXOIndex4Amount) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{41} return fileDescriptor_privacy_b04022b2c709b5e6, []int{41}
} }
func (m *UTXOIndex4Amount) XXX_Unmarshal(b []byte) error { func (m *UTXOIndex4Amount) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UTXOIndex4Amount.Unmarshal(m, b) return xxx_messageInfo_UTXOIndex4Amount.Unmarshal(m, b)
...@@ -2467,7 +2463,7 @@ func (m *ResUTXOGlobalIndex) Reset() { *m = ResUTXOGlobalIndex{} } ...@@ -2467,7 +2463,7 @@ func (m *ResUTXOGlobalIndex) Reset() { *m = ResUTXOGlobalIndex{} }
func (m *ResUTXOGlobalIndex) String() string { return proto.CompactTextString(m) } func (m *ResUTXOGlobalIndex) String() string { return proto.CompactTextString(m) }
func (*ResUTXOGlobalIndex) ProtoMessage() {} func (*ResUTXOGlobalIndex) ProtoMessage() {}
func (*ResUTXOGlobalIndex) Descriptor() ([]byte, []int) { func (*ResUTXOGlobalIndex) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{42} return fileDescriptor_privacy_b04022b2c709b5e6, []int{42}
} }
func (m *ResUTXOGlobalIndex) XXX_Unmarshal(b []byte) error { func (m *ResUTXOGlobalIndex) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ResUTXOGlobalIndex.Unmarshal(m, b) return xxx_messageInfo_ResUTXOGlobalIndex.Unmarshal(m, b)
...@@ -2524,7 +2520,7 @@ func (m *FTXOsSTXOsInOneTx) Reset() { *m = FTXOsSTXOsInOneTx{} } ...@@ -2524,7 +2520,7 @@ func (m *FTXOsSTXOsInOneTx) Reset() { *m = FTXOsSTXOsInOneTx{} }
func (m *FTXOsSTXOsInOneTx) String() string { return proto.CompactTextString(m) } func (m *FTXOsSTXOsInOneTx) String() string { return proto.CompactTextString(m) }
func (*FTXOsSTXOsInOneTx) ProtoMessage() {} func (*FTXOsSTXOsInOneTx) ProtoMessage() {}
func (*FTXOsSTXOsInOneTx) Descriptor() ([]byte, []int) { func (*FTXOsSTXOsInOneTx) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{43} return fileDescriptor_privacy_b04022b2c709b5e6, []int{43}
} }
func (m *FTXOsSTXOsInOneTx) XXX_Unmarshal(b []byte) error { func (m *FTXOsSTXOsInOneTx) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FTXOsSTXOsInOneTx.Unmarshal(m, b) return xxx_messageInfo_FTXOsSTXOsInOneTx.Unmarshal(m, b)
...@@ -2591,7 +2587,7 @@ func (m *RealKeyInput) Reset() { *m = RealKeyInput{} } ...@@ -2591,7 +2587,7 @@ func (m *RealKeyInput) Reset() { *m = RealKeyInput{} }
func (m *RealKeyInput) String() string { return proto.CompactTextString(m) } func (m *RealKeyInput) String() string { return proto.CompactTextString(m) }
func (*RealKeyInput) ProtoMessage() {} func (*RealKeyInput) ProtoMessage() {}
func (*RealKeyInput) Descriptor() ([]byte, []int) { func (*RealKeyInput) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{44} return fileDescriptor_privacy_b04022b2c709b5e6, []int{44}
} }
func (m *RealKeyInput) XXX_Unmarshal(b []byte) error { func (m *RealKeyInput) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RealKeyInput.Unmarshal(m, b) return xxx_messageInfo_RealKeyInput.Unmarshal(m, b)
...@@ -2636,7 +2632,7 @@ func (m *UTXOBasics) Reset() { *m = UTXOBasics{} } ...@@ -2636,7 +2632,7 @@ func (m *UTXOBasics) Reset() { *m = UTXOBasics{} }
func (m *UTXOBasics) String() string { return proto.CompactTextString(m) } func (m *UTXOBasics) String() string { return proto.CompactTextString(m) }
func (*UTXOBasics) ProtoMessage() {} func (*UTXOBasics) ProtoMessage() {}
func (*UTXOBasics) Descriptor() ([]byte, []int) { func (*UTXOBasics) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{45} return fileDescriptor_privacy_b04022b2c709b5e6, []int{45}
} }
func (m *UTXOBasics) XXX_Unmarshal(b []byte) error { func (m *UTXOBasics) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UTXOBasics.Unmarshal(m, b) return xxx_messageInfo_UTXOBasics.Unmarshal(m, b)
...@@ -2688,7 +2684,7 @@ func (m *CreateTransactionCache) Reset() { *m = CreateTransactionCache{} ...@@ -2688,7 +2684,7 @@ func (m *CreateTransactionCache) Reset() { *m = CreateTransactionCache{}
func (m *CreateTransactionCache) String() string { return proto.CompactTextString(m) } func (m *CreateTransactionCache) String() string { return proto.CompactTextString(m) }
func (*CreateTransactionCache) ProtoMessage() {} func (*CreateTransactionCache) ProtoMessage() {}
func (*CreateTransactionCache) Descriptor() ([]byte, []int) { func (*CreateTransactionCache) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{46} return fileDescriptor_privacy_b04022b2c709b5e6, []int{46}
} }
func (m *CreateTransactionCache) XXX_Unmarshal(b []byte) error { func (m *CreateTransactionCache) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CreateTransactionCache.Unmarshal(m, b) return xxx_messageInfo_CreateTransactionCache.Unmarshal(m, b)
...@@ -2783,7 +2779,7 @@ func (m *ReqCacheTxList) Reset() { *m = ReqCacheTxList{} } ...@@ -2783,7 +2779,7 @@ func (m *ReqCacheTxList) Reset() { *m = ReqCacheTxList{} }
func (m *ReqCacheTxList) String() string { return proto.CompactTextString(m) } func (m *ReqCacheTxList) String() string { return proto.CompactTextString(m) }
func (*ReqCacheTxList) ProtoMessage() {} func (*ReqCacheTxList) ProtoMessage() {}
func (*ReqCacheTxList) Descriptor() ([]byte, []int) { func (*ReqCacheTxList) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{47} return fileDescriptor_privacy_b04022b2c709b5e6, []int{47}
} }
func (m *ReqCacheTxList) XXX_Unmarshal(b []byte) error { func (m *ReqCacheTxList) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqCacheTxList.Unmarshal(m, b) return xxx_messageInfo_ReqCacheTxList.Unmarshal(m, b)
...@@ -2828,7 +2824,7 @@ func (m *ReplyCacheTxList) Reset() { *m = ReplyCacheTxList{} } ...@@ -2828,7 +2824,7 @@ func (m *ReplyCacheTxList) Reset() { *m = ReplyCacheTxList{} }
func (m *ReplyCacheTxList) String() string { return proto.CompactTextString(m) } func (m *ReplyCacheTxList) String() string { return proto.CompactTextString(m) }
func (*ReplyCacheTxList) ProtoMessage() {} func (*ReplyCacheTxList) ProtoMessage() {}
func (*ReplyCacheTxList) Descriptor() ([]byte, []int) { func (*ReplyCacheTxList) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{48} return fileDescriptor_privacy_b04022b2c709b5e6, []int{48}
} }
func (m *ReplyCacheTxList) XXX_Unmarshal(b []byte) error { func (m *ReplyCacheTxList) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReplyCacheTxList.Unmarshal(m, b) return xxx_messageInfo_ReplyCacheTxList.Unmarshal(m, b)
...@@ -2867,7 +2863,7 @@ func (m *ReqPrivacyAccount) Reset() { *m = ReqPrivacyAccount{} } ...@@ -2867,7 +2863,7 @@ func (m *ReqPrivacyAccount) Reset() { *m = ReqPrivacyAccount{} }
func (m *ReqPrivacyAccount) String() string { return proto.CompactTextString(m) } func (m *ReqPrivacyAccount) String() string { return proto.CompactTextString(m) }
func (*ReqPrivacyAccount) ProtoMessage() {} func (*ReqPrivacyAccount) ProtoMessage() {}
func (*ReqPrivacyAccount) Descriptor() ([]byte, []int) { func (*ReqPrivacyAccount) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{49} return fileDescriptor_privacy_b04022b2c709b5e6, []int{49}
} }
func (m *ReqPrivacyAccount) XXX_Unmarshal(b []byte) error { func (m *ReqPrivacyAccount) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqPrivacyAccount.Unmarshal(m, b) return xxx_messageInfo_ReqPrivacyAccount.Unmarshal(m, b)
...@@ -2919,7 +2915,7 @@ func (m *ReqPPrivacyAccount) Reset() { *m = ReqPPrivacyAccount{} } ...@@ -2919,7 +2915,7 @@ func (m *ReqPPrivacyAccount) Reset() { *m = ReqPPrivacyAccount{} }
func (m *ReqPPrivacyAccount) String() string { return proto.CompactTextString(m) } func (m *ReqPPrivacyAccount) String() string { return proto.CompactTextString(m) }
func (*ReqPPrivacyAccount) ProtoMessage() {} func (*ReqPPrivacyAccount) ProtoMessage() {}
func (*ReqPPrivacyAccount) Descriptor() ([]byte, []int) { func (*ReqPPrivacyAccount) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{50} return fileDescriptor_privacy_b04022b2c709b5e6, []int{50}
} }
func (m *ReqPPrivacyAccount) XXX_Unmarshal(b []byte) error { func (m *ReqPPrivacyAccount) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqPPrivacyAccount.Unmarshal(m, b) return xxx_messageInfo_ReqPPrivacyAccount.Unmarshal(m, b)
...@@ -2976,7 +2972,7 @@ func (m *ReplyPrivacyAccount) Reset() { *m = ReplyPrivacyAccount{} } ...@@ -2976,7 +2972,7 @@ func (m *ReplyPrivacyAccount) Reset() { *m = ReplyPrivacyAccount{} }
func (m *ReplyPrivacyAccount) String() string { return proto.CompactTextString(m) } func (m *ReplyPrivacyAccount) String() string { return proto.CompactTextString(m) }
func (*ReplyPrivacyAccount) ProtoMessage() {} func (*ReplyPrivacyAccount) ProtoMessage() {}
func (*ReplyPrivacyAccount) Descriptor() ([]byte, []int) { func (*ReplyPrivacyAccount) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{51} return fileDescriptor_privacy_b04022b2c709b5e6, []int{51}
} }
func (m *ReplyPrivacyAccount) XXX_Unmarshal(b []byte) error { func (m *ReplyPrivacyAccount) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReplyPrivacyAccount.Unmarshal(m, b) return xxx_messageInfo_ReplyPrivacyAccount.Unmarshal(m, b)
...@@ -3029,7 +3025,7 @@ func (m *ReqCreateCacheTxKey) Reset() { *m = ReqCreateCacheTxKey{} } ...@@ -3029,7 +3025,7 @@ func (m *ReqCreateCacheTxKey) Reset() { *m = ReqCreateCacheTxKey{} }
func (m *ReqCreateCacheTxKey) String() string { return proto.CompactTextString(m) } func (m *ReqCreateCacheTxKey) String() string { return proto.CompactTextString(m) }
func (*ReqCreateCacheTxKey) ProtoMessage() {} func (*ReqCreateCacheTxKey) ProtoMessage() {}
func (*ReqCreateCacheTxKey) Descriptor() ([]byte, []int) { func (*ReqCreateCacheTxKey) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{52} return fileDescriptor_privacy_b04022b2c709b5e6, []int{52}
} }
func (m *ReqCreateCacheTxKey) XXX_Unmarshal(b []byte) error { func (m *ReqCreateCacheTxKey) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqCreateCacheTxKey.Unmarshal(m, b) return xxx_messageInfo_ReqCreateCacheTxKey.Unmarshal(m, b)
...@@ -3083,7 +3079,7 @@ func (m *ReqPrivacyTransactionList) Reset() { *m = ReqPrivacyTransaction ...@@ -3083,7 +3079,7 @@ func (m *ReqPrivacyTransactionList) Reset() { *m = ReqPrivacyTransaction
func (m *ReqPrivacyTransactionList) String() string { return proto.CompactTextString(m) } func (m *ReqPrivacyTransactionList) String() string { return proto.CompactTextString(m) }
func (*ReqPrivacyTransactionList) ProtoMessage() {} func (*ReqPrivacyTransactionList) ProtoMessage() {}
func (*ReqPrivacyTransactionList) Descriptor() ([]byte, []int) { func (*ReqPrivacyTransactionList) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{53} return fileDescriptor_privacy_b04022b2c709b5e6, []int{53}
} }
func (m *ReqPrivacyTransactionList) XXX_Unmarshal(b []byte) error { func (m *ReqPrivacyTransactionList) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqPrivacyTransactionList.Unmarshal(m, b) return xxx_messageInfo_ReqPrivacyTransactionList.Unmarshal(m, b)
...@@ -3164,7 +3160,7 @@ func (m *ReqRescanUtxos) Reset() { *m = ReqRescanUtxos{} } ...@@ -3164,7 +3160,7 @@ func (m *ReqRescanUtxos) Reset() { *m = ReqRescanUtxos{} }
func (m *ReqRescanUtxos) String() string { return proto.CompactTextString(m) } func (m *ReqRescanUtxos) String() string { return proto.CompactTextString(m) }
func (*ReqRescanUtxos) ProtoMessage() {} func (*ReqRescanUtxos) ProtoMessage() {}
func (*ReqRescanUtxos) Descriptor() ([]byte, []int) { func (*ReqRescanUtxos) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{54} return fileDescriptor_privacy_b04022b2c709b5e6, []int{54}
} }
func (m *ReqRescanUtxos) XXX_Unmarshal(b []byte) error { func (m *ReqRescanUtxos) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqRescanUtxos.Unmarshal(m, b) return xxx_messageInfo_ReqRescanUtxos.Unmarshal(m, b)
...@@ -3210,7 +3206,7 @@ func (m *RepRescanResult) Reset() { *m = RepRescanResult{} } ...@@ -3210,7 +3206,7 @@ func (m *RepRescanResult) Reset() { *m = RepRescanResult{} }
func (m *RepRescanResult) String() string { return proto.CompactTextString(m) } func (m *RepRescanResult) String() string { return proto.CompactTextString(m) }
func (*RepRescanResult) ProtoMessage() {} func (*RepRescanResult) ProtoMessage() {}
func (*RepRescanResult) Descriptor() ([]byte, []int) { func (*RepRescanResult) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{55} return fileDescriptor_privacy_b04022b2c709b5e6, []int{55}
} }
func (m *RepRescanResult) XXX_Unmarshal(b []byte) error { func (m *RepRescanResult) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RepRescanResult.Unmarshal(m, b) return xxx_messageInfo_RepRescanResult.Unmarshal(m, b)
...@@ -3256,7 +3252,7 @@ func (m *RepRescanUtxos) Reset() { *m = RepRescanUtxos{} } ...@@ -3256,7 +3252,7 @@ func (m *RepRescanUtxos) Reset() { *m = RepRescanUtxos{} }
func (m *RepRescanUtxos) String() string { return proto.CompactTextString(m) } func (m *RepRescanUtxos) String() string { return proto.CompactTextString(m) }
func (*RepRescanUtxos) ProtoMessage() {} func (*RepRescanUtxos) ProtoMessage() {}
func (*RepRescanUtxos) Descriptor() ([]byte, []int) { func (*RepRescanUtxos) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{56} return fileDescriptor_privacy_b04022b2c709b5e6, []int{56}
} }
func (m *RepRescanUtxos) XXX_Unmarshal(b []byte) error { func (m *RepRescanUtxos) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RepRescanUtxos.Unmarshal(m, b) return xxx_messageInfo_RepRescanUtxos.Unmarshal(m, b)
...@@ -3301,7 +3297,7 @@ func (m *ReqEnablePrivacy) Reset() { *m = ReqEnablePrivacy{} } ...@@ -3301,7 +3297,7 @@ func (m *ReqEnablePrivacy) Reset() { *m = ReqEnablePrivacy{} }
func (m *ReqEnablePrivacy) String() string { return proto.CompactTextString(m) } func (m *ReqEnablePrivacy) String() string { return proto.CompactTextString(m) }
func (*ReqEnablePrivacy) ProtoMessage() {} func (*ReqEnablePrivacy) ProtoMessage() {}
func (*ReqEnablePrivacy) Descriptor() ([]byte, []int) { func (*ReqEnablePrivacy) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{57} return fileDescriptor_privacy_b04022b2c709b5e6, []int{57}
} }
func (m *ReqEnablePrivacy) XXX_Unmarshal(b []byte) error { func (m *ReqEnablePrivacy) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqEnablePrivacy.Unmarshal(m, b) return xxx_messageInfo_ReqEnablePrivacy.Unmarshal(m, b)
...@@ -3341,7 +3337,7 @@ func (m *PriAddrResult) Reset() { *m = PriAddrResult{} } ...@@ -3341,7 +3337,7 @@ func (m *PriAddrResult) Reset() { *m = PriAddrResult{} }
func (m *PriAddrResult) String() string { return proto.CompactTextString(m) } func (m *PriAddrResult) String() string { return proto.CompactTextString(m) }
func (*PriAddrResult) ProtoMessage() {} func (*PriAddrResult) ProtoMessage() {}
func (*PriAddrResult) Descriptor() ([]byte, []int) { func (*PriAddrResult) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{58} return fileDescriptor_privacy_b04022b2c709b5e6, []int{58}
} }
func (m *PriAddrResult) XXX_Unmarshal(b []byte) error { func (m *PriAddrResult) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PriAddrResult.Unmarshal(m, b) return xxx_messageInfo_PriAddrResult.Unmarshal(m, b)
...@@ -3393,7 +3389,7 @@ func (m *RepEnablePrivacy) Reset() { *m = RepEnablePrivacy{} } ...@@ -3393,7 +3389,7 @@ func (m *RepEnablePrivacy) Reset() { *m = RepEnablePrivacy{} }
func (m *RepEnablePrivacy) String() string { return proto.CompactTextString(m) } func (m *RepEnablePrivacy) String() string { return proto.CompactTextString(m) }
func (*RepEnablePrivacy) ProtoMessage() {} func (*RepEnablePrivacy) ProtoMessage() {}
func (*RepEnablePrivacy) Descriptor() ([]byte, []int) { func (*RepEnablePrivacy) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{59} return fileDescriptor_privacy_b04022b2c709b5e6, []int{59}
} }
func (m *RepEnablePrivacy) XXX_Unmarshal(b []byte) error { func (m *RepEnablePrivacy) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RepEnablePrivacy.Unmarshal(m, b) return xxx_messageInfo_RepEnablePrivacy.Unmarshal(m, b)
...@@ -3434,7 +3430,7 @@ func (m *PrivacySignatureParam) Reset() { *m = PrivacySignatureParam{} } ...@@ -3434,7 +3430,7 @@ func (m *PrivacySignatureParam) Reset() { *m = PrivacySignatureParam{} }
func (m *PrivacySignatureParam) String() string { return proto.CompactTextString(m) } func (m *PrivacySignatureParam) String() string { return proto.CompactTextString(m) }
func (*PrivacySignatureParam) ProtoMessage() {} func (*PrivacySignatureParam) ProtoMessage() {}
func (*PrivacySignatureParam) Descriptor() ([]byte, []int) { func (*PrivacySignatureParam) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{60} return fileDescriptor_privacy_b04022b2c709b5e6, []int{60}
} }
func (m *PrivacySignatureParam) XXX_Unmarshal(b []byte) error { func (m *PrivacySignatureParam) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PrivacySignatureParam.Unmarshal(m, b) return xxx_messageInfo_PrivacySignatureParam.Unmarshal(m, b)
...@@ -3489,7 +3485,7 @@ func (m *WalletAccountPrivacy) Reset() { *m = WalletAccountPrivacy{} } ...@@ -3489,7 +3485,7 @@ func (m *WalletAccountPrivacy) Reset() { *m = WalletAccountPrivacy{} }
func (m *WalletAccountPrivacy) String() string { return proto.CompactTextString(m) } func (m *WalletAccountPrivacy) String() string { return proto.CompactTextString(m) }
func (*WalletAccountPrivacy) ProtoMessage() {} func (*WalletAccountPrivacy) ProtoMessage() {}
func (*WalletAccountPrivacy) Descriptor() ([]byte, []int) { func (*WalletAccountPrivacy) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{61} return fileDescriptor_privacy_b04022b2c709b5e6, []int{61}
} }
func (m *WalletAccountPrivacy) XXX_Unmarshal(b []byte) error { func (m *WalletAccountPrivacy) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_WalletAccountPrivacy.Unmarshal(m, b) return xxx_messageInfo_WalletAccountPrivacy.Unmarshal(m, b)
...@@ -3541,10 +3537,7 @@ func (m *WalletAccountPrivacy) GetSpendPrivKey() []byte { ...@@ -3541,10 +3537,7 @@ func (m *WalletAccountPrivacy) GetSpendPrivKey() []byte {
type ReqCreatePrivacyTx struct { type ReqCreatePrivacyTx struct {
Tokenname string `protobuf:"bytes,1,opt,name=tokenname,proto3" json:"tokenname,omitempty"` Tokenname string `protobuf:"bytes,1,opt,name=tokenname,proto3" json:"tokenname,omitempty"`
// 构建交易类型 // 构建交易类型
// 1:隐私交易 公开->隐私 ActionType int32 `protobuf:"varint,2,opt,name=actionType,proto3" json:"actionType,omitempty"`
// 2:隐私交易 隐私->隐私
// 3:隐私交易 隐私->公开
Type int32 `protobuf:"varint,2,opt,name=type,proto3" json:"type,omitempty"`
Amount int64 `protobuf:"varint,3,opt,name=amount,proto3" json:"amount,omitempty"` Amount int64 `protobuf:"varint,3,opt,name=amount,proto3" json:"amount,omitempty"`
Note string `protobuf:"bytes,4,opt,name=note,proto3" json:"note,omitempty"` Note string `protobuf:"bytes,4,opt,name=note,proto3" json:"note,omitempty"`
// 普通交易的发送方 // 普通交易的发送方
...@@ -3565,7 +3558,7 @@ func (m *ReqCreatePrivacyTx) Reset() { *m = ReqCreatePrivacyTx{} } ...@@ -3565,7 +3558,7 @@ func (m *ReqCreatePrivacyTx) Reset() { *m = ReqCreatePrivacyTx{} }
func (m *ReqCreatePrivacyTx) String() string { return proto.CompactTextString(m) } func (m *ReqCreatePrivacyTx) String() string { return proto.CompactTextString(m) }
func (*ReqCreatePrivacyTx) ProtoMessage() {} func (*ReqCreatePrivacyTx) ProtoMessage() {}
func (*ReqCreatePrivacyTx) Descriptor() ([]byte, []int) { func (*ReqCreatePrivacyTx) Descriptor() ([]byte, []int) {
return fileDescriptor_privacy_c430ec1948ab119a, []int{62} return fileDescriptor_privacy_b04022b2c709b5e6, []int{62}
} }
func (m *ReqCreatePrivacyTx) XXX_Unmarshal(b []byte) error { func (m *ReqCreatePrivacyTx) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ReqCreatePrivacyTx.Unmarshal(m, b) return xxx_messageInfo_ReqCreatePrivacyTx.Unmarshal(m, b)
...@@ -3592,9 +3585,9 @@ func (m *ReqCreatePrivacyTx) GetTokenname() string { ...@@ -3592,9 +3585,9 @@ func (m *ReqCreatePrivacyTx) GetTokenname() string {
return "" return ""
} }
func (m *ReqCreatePrivacyTx) GetType() int32 { func (m *ReqCreatePrivacyTx) GetActionType() int32 {
if m != nil { if m != nil {
return m.Type return m.ActionType
} }
return 0 return 0
} }
...@@ -3904,152 +3897,152 @@ var _Privacy_serviceDesc = grpc.ServiceDesc{ ...@@ -3904,152 +3897,152 @@ var _Privacy_serviceDesc = grpc.ServiceDesc{
Metadata: "privacy.proto", Metadata: "privacy.proto",
} }
func init() { proto.RegisterFile("privacy.proto", fileDescriptor_privacy_c430ec1948ab119a) } func init() { proto.RegisterFile("privacy.proto", fileDescriptor_privacy_b04022b2c709b5e6) }
var fileDescriptor_privacy_c430ec1948ab119a = []byte{ var fileDescriptor_privacy_b04022b2c709b5e6 = []byte{
// 2296 bytes of a gzipped FileDescriptorProto // 2295 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x19, 0x4b, 0x6f, 0x1c, 0x49, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x19, 0x4b, 0x6f, 0x1c, 0x49,
0xd9, 0x3d, 0xe3, 0xb1, 0x3d, 0x9f, 0xc7, 0xf6, 0xa4, 0x76, 0xec, 0x75, 0x26, 0x51, 0x14, 0x6a, 0x39, 0x3d, 0xe3, 0xb1, 0x3d, 0x9f, 0xc7, 0xf6, 0xa4, 0x76, 0xec, 0x75, 0x26, 0x51, 0x14, 0x6a,
0x57, 0x21, 0x2c, 0xc8, 0x68, 0x8d, 0xa5, 0x7d, 0x10, 0x94, 0xf5, 0x38, 0x4e, 0x62, 0x79, 0x13, 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, 0x9b, 0xb2, 0x57, 0x20, 0xb4, 0x48, 0x94, 0x7b, 0xca, 0x76, 0xcb, 0x3d, 0xdd, 0xed, 0xee, 0x1e,
0x7b, 0xe6, 0xb4, 0x9c, 0x10, 0x07, 0x0e, 0x48, 0x20, 0x38, 0x80, 0xb8, 0xc1, 0x99, 0x3f, 0x01, 0x7b, 0xe6, 0xb4, 0x9c, 0x38, 0x71, 0x40, 0x62, 0x05, 0x07, 0x10, 0x37, 0x38, 0xf3, 0x27, 0xe0,
0x27, 0x4e, 0xfc, 0x01, 0xc4, 0x1f, 0xe0, 0x37, 0xa0, 0x7a, 0x74, 0xd7, 0xc3, 0x3d, 0x76, 0xc2, 0xc4, 0x89, 0x3f, 0x80, 0xf8, 0x03, 0xfc, 0x06, 0x54, 0x8f, 0xee, 0x7a, 0x4c, 0x8f, 0x9d, 0xb0,
0x9a, 0xcb, 0xa8, 0xeb, 0xab, 0xaf, 0xbe, 0xfa, 0xde, 0x8f, 0x1a, 0x58, 0x48, 0xd2, 0xe0, 0x82, 0xe6, 0x32, 0xea, 0xfa, 0xea, 0xab, 0xaf, 0xbe, 0xf7, 0xa3, 0x06, 0x16, 0x93, 0x34, 0xb8, 0xa0,
0xfa, 0xe3, 0xb5, 0x24, 0x8d, 0xf3, 0x18, 0x35, 0xf2, 0x71, 0xc2, 0xb2, 0x6e, 0xcb, 0x8f, 0x07, 0xfe, 0x78, 0x3d, 0x49, 0xe3, 0x3c, 0x46, 0x8d, 0x7c, 0x9c, 0xb0, 0xac, 0xdb, 0xf2, 0xe3, 0xc1,
0x83, 0x38, 0x92, 0xc0, 0xee, 0x9d, 0x3c, 0xa5, 0x51, 0x46, 0xfd, 0x3c, 0x28, 0x40, 0xf8, 0x3f, 0x20, 0x8e, 0x24, 0xb0, 0x7b, 0x3b, 0x4f, 0x69, 0x94, 0x51, 0x3f, 0x0f, 0x0a, 0x10, 0xfe, 0x8f,
0x1e, 0x2c, 0xec, 0xcb, 0x93, 0x9b, 0x02, 0x8e, 0x9e, 0xc2, 0x62, 0x32, 0x3c, 0x0a, 0x03, 0x7f, 0x07, 0x8b, 0xfb, 0xf2, 0xe4, 0xa6, 0x80, 0xa3, 0xa7, 0xb0, 0x94, 0x0c, 0x8f, 0xc2, 0xc0, 0x7f,
0x5d, 0x51, 0x5c, 0xf5, 0x1e, 0x7a, 0x8f, 0xe7, 0xd7, 0x97, 0xd7, 0x04, 0xc9, 0xb5, 0x7d, 0xb9, 0xac, 0x28, 0xae, 0x79, 0x0f, 0xbc, 0x47, 0x0b, 0x8f, 0x57, 0xd6, 0x05, 0xc9, 0xf5, 0x7d, 0xb9,
0xa9, 0x0e, 0xbd, 0x9c, 0x22, 0x0e, 0x3a, 0xea, 0xc1, 0x92, 0xfa, 0x2c, 0x29, 0xd4, 0x04, 0x85, 0xa9, 0x0e, 0xbd, 0xbc, 0x45, 0x1c, 0x74, 0xd4, 0x83, 0x65, 0xf5, 0x59, 0x52, 0xa8, 0x09, 0x0a,
0x95, 0x82, 0x82, 0xda, 0xd5, 0x24, 0xdc, 0x03, 0x82, 0x89, 0x02, 0x24, 0xa8, 0xaf, 0xd6, 0x6d, 0xab, 0x05, 0x05, 0xb5, 0xab, 0x49, 0xb8, 0x07, 0x04, 0x13, 0x05, 0x48, 0x50, 0x5f, 0xab, 0xdb,
0x26, 0x0a, 0x12, 0x62, 0x53, 0x30, 0x61, 0xa1, 0xa3, 0x45, 0xa8, 0xe5, 0xe3, 0xd5, 0xe9, 0x87, 0x4c, 0x14, 0x24, 0xc4, 0xa6, 0x60, 0xc2, 0x42, 0x47, 0x4b, 0x50, 0xcb, 0xc7, 0x6b, 0x33, 0x0f,
0xde, 0xe3, 0x06, 0xa9, 0xe5, 0xe3, 0xde, 0x2c, 0x34, 0x2e, 0x68, 0x38, 0x64, 0xf8, 0x2f, 0x1e, 0xbc, 0x47, 0x0d, 0x52, 0xcb, 0xc7, 0xbd, 0x39, 0x68, 0x5c, 0xd0, 0x70, 0xc8, 0xf0, 0x5f, 0x3c,
0x2c, 0xda, 0x22, 0xa0, 0xfb, 0xd0, 0xcc, 0xe3, 0x33, 0x16, 0x45, 0x74, 0xc0, 0x84, 0xb0, 0x4d, 0x58, 0xb2, 0x45, 0x40, 0xf7, 0xa0, 0x99, 0xc7, 0x67, 0x2c, 0x8a, 0xe8, 0x80, 0x09, 0x61, 0x9b,
0xa2, 0x01, 0x68, 0x05, 0x66, 0xe8, 0x20, 0x1e, 0x46, 0xb9, 0x90, 0xa2, 0x4e, 0xd4, 0x0a, 0x21, 0x44, 0x03, 0xd0, 0x2a, 0xcc, 0xd2, 0x41, 0x3c, 0x8c, 0x72, 0x21, 0x45, 0x9d, 0xa8, 0x15, 0x42,
0x98, 0x8e, 0xe2, 0x9c, 0xad, 0x36, 0xc4, 0x01, 0xf1, 0x8d, 0xbe, 0x03, 0x33, 0xf1, 0x30, 0x4f, 0x30, 0x13, 0xc5, 0x39, 0x5b, 0x6b, 0x88, 0x03, 0xe2, 0x1b, 0x7d, 0x0f, 0x66, 0xe3, 0x61, 0x9e,
0x86, 0xf9, 0xea, 0xac, 0x60, 0xb7, 0x63, 0xb3, 0xbb, 0x27, 0xf6, 0x88, 0xc2, 0xe1, 0xf7, 0xd2, 0x0c, 0xf3, 0xb5, 0x39, 0xc1, 0x6e, 0xc7, 0x66, 0x77, 0x4f, 0xec, 0x11, 0x85, 0xc3, 0xef, 0xa5,
0x2c, 0x63, 0xf9, 0xf6, 0x88, 0xf9, 0xab, 0x73, 0xf2, 0xde, 0x12, 0x80, 0xff, 0xe9, 0xc1, 0x92, 0x59, 0xc6, 0xf2, 0xed, 0x11, 0xf3, 0xd7, 0xe6, 0xe5, 0xbd, 0x25, 0x00, 0xff, 0xd3, 0x83, 0x65,
0xa3, 0xa9, 0x5b, 0xe4, 0xf4, 0x5b, 0xd0, 0x08, 0x22, 0xce, 0xe8, 0x8c, 0x60, 0xf4, 0x1d, 0x9b, 0x47, 0x53, 0x37, 0xc8, 0xe9, 0x77, 0xa0, 0x11, 0x44, 0x9c, 0xd1, 0x59, 0xc1, 0xe8, 0x3b, 0x36,
0xd1, 0x1d, 0xbe, 0x45, 0x24, 0xc6, 0xad, 0x0a, 0xf5, 0x6f, 0xae, 0x7d, 0xcb, 0x76, 0x5f, 0x53, 0xa3, 0x3b, 0x7c, 0x8b, 0x48, 0x8c, 0x1b, 0x15, 0xea, 0xdf, 0x5c, 0xfb, 0x96, 0xed, 0xbe, 0xa1,
0xa6, 0xba, 0x21, 0x13, 0xb7, 0x79, 0x2c, 0x04, 0x6a, 0x92, 0x5a, 0x1e, 0x6b, 0x19, 0xa7, 0xdf, 0x4c, 0x75, 0x43, 0x26, 0x6e, 0xf3, 0x58, 0x08, 0xd4, 0x24, 0xb5, 0x3c, 0xd6, 0x32, 0xce, 0xbc,
0x42, 0xc6, 0xc6, 0xd7, 0x96, 0x71, 0x1b, 0x96, 0xbe, 0x38, 0xfc, 0xf1, 0xde, 0x8b, 0x30, 0x3e, 0x85, 0x8c, 0x8d, 0x6f, 0x2c, 0xe3, 0x36, 0x2c, 0x7f, 0x71, 0xf8, 0xd3, 0xbd, 0x17, 0x61, 0x7c,
0xa2, 0xe1, 0x4e, 0xd4, 0x67, 0x23, 0x2e, 0x45, 0x3e, 0x3a, 0xa5, 0xd9, 0xa9, 0xe0, 0xb7, 0x45, 0x44, 0xc3, 0x9d, 0xa8, 0xcf, 0x46, 0x5c, 0x8a, 0x7c, 0x74, 0x4a, 0xb3, 0x53, 0xc1, 0x6f, 0x8b,
0xd4, 0x0a, 0x75, 0x61, 0x2e, 0x1e, 0xe6, 0x01, 0xc7, 0x51, 0xbe, 0x5a, 0xae, 0xf1, 0xcf, 0x3d, 0xa8, 0x15, 0xea, 0xc2, 0x7c, 0x3c, 0xcc, 0x03, 0x8e, 0xa3, 0x7c, 0xb5, 0x5c, 0xe3, 0x5f, 0x7a,
0x98, 0xdb, 0x65, 0x92, 0x4d, 0x43, 0x0d, 0x9e, 0xa5, 0x86, 0xcf, 0x60, 0x69, 0x98, 0x8f, 0x62, 0x30, 0xbf, 0xcb, 0x24, 0x9b, 0x86, 0x1a, 0x3c, 0x4b, 0x0d, 0x9f, 0xc1, 0xf2, 0x30, 0x1f, 0xc5,
0xe3, 0xae, 0xd5, 0xda, 0xc3, 0xba, 0x11, 0x6b, 0x0e, 0x27, 0xc4, 0x45, 0xe7, 0x2c, 0x9c, 0xb1, 0xc6, 0x5d, 0x6b, 0xb5, 0x07, 0x75, 0x23, 0xd6, 0x1c, 0x4e, 0x88, 0x8b, 0xce, 0x59, 0x38, 0x63,
0xf1, 0xce, 0x80, 0x9e, 0x30, 0xc5, 0x5c, 0xb9, 0xc6, 0xdf, 0x87, 0x96, 0xa9, 0x2c, 0xf4, 0x6d, 0xe3, 0x9d, 0x01, 0x3d, 0x61, 0x8a, 0xb9, 0x72, 0x8d, 0x7f, 0x08, 0x2d, 0x53, 0x59, 0xe8, 0xbb,
0x81, 0x2b, 0x75, 0xea, 0x89, 0x6b, 0x96, 0xd4, 0x35, 0x05, 0xa3, 0xa4, 0x44, 0xc0, 0x3b, 0xd0, 0x02, 0x57, 0xea, 0xd4, 0x13, 0xd7, 0x2c, 0xab, 0x6b, 0x0a, 0x46, 0x49, 0x89, 0x80, 0x77, 0xa0,
0x3c, 0x63, 0x4a, 0x73, 0x13, 0xf9, 0x7f, 0x1f, 0x16, 0xe2, 0x88, 0xe5, 0xc1, 0x80, 0x25, 0xc3, 0x79, 0xc6, 0x94, 0xe6, 0xa6, 0xf2, 0xff, 0x3e, 0x2c, 0xc6, 0x11, 0xcb, 0x83, 0x01, 0x4b, 0x86,
0xa3, 0x33, 0x26, 0x33, 0x45, 0x8b, 0xd8, 0x40, 0xfc, 0xd3, 0x32, 0x47, 0xed, 0x95, 0x06, 0x20, 0x47, 0x67, 0x4c, 0x66, 0x8a, 0x16, 0xb1, 0x81, 0xf8, 0xe7, 0x65, 0x8e, 0xda, 0x2b, 0x0d, 0x40,
0xc9, 0xf0, 0x68, 0x97, 0x8d, 0xf3, 0x91, 0xa0, 0xd8, 0x22, 0x1a, 0x80, 0xd6, 0xc4, 0xcd, 0xca, 0x92, 0xe1, 0xd1, 0x2e, 0x1b, 0xe7, 0x23, 0x41, 0xb1, 0x45, 0x34, 0x00, 0xad, 0x8b, 0x9b, 0x95,
0x9e, 0x52, 0x1d, 0x6d, 0xc5, 0x67, 0xc9, 0x11, 0xd1, 0x28, 0x38, 0x81, 0xce, 0x8b, 0x34, 0x1e, 0x3d, 0xa5, 0x3a, 0xda, 0x8a, 0xcf, 0x92, 0x23, 0xa2, 0x51, 0x70, 0x02, 0x9d, 0x17, 0x69, 0x3c,
0x26, 0x15, 0x56, 0xfb, 0xff, 0x28, 0x1d, 0xff, 0xc1, 0x83, 0x85, 0xcf, 0x63, 0x9f, 0x86, 0x1c, 0x4c, 0x2a, 0xac, 0xf6, 0xff, 0x51, 0x3a, 0xfe, 0x83, 0x07, 0x8b, 0x9f, 0xc7, 0x3e, 0x0d, 0x39,
0x73, 0x27, 0x67, 0x03, 0x7e, 0xd7, 0x29, 0x0b, 0x4e, 0x4e, 0xcb, 0xbb, 0xe4, 0x0a, 0xad, 0xc2, 0xe6, 0x4e, 0xce, 0x06, 0xfc, 0xae, 0x53, 0x16, 0x9c, 0x9c, 0x96, 0x77, 0xc9, 0x15, 0x5a, 0x83,
0x6c, 0x3e, 0x0a, 0xd4, 0x1d, 0xdc, 0x41, 0x8a, 0xa5, 0xe5, 0x3b, 0x75, 0xdb, 0x77, 0x0c, 0x7f, 0xb9, 0x7c, 0x14, 0xa8, 0x3b, 0xb8, 0x83, 0x14, 0x4b, 0xcb, 0x77, 0xea, 0xb6, 0xef, 0x18, 0xfe,
0x9b, 0xb6, 0xfc, 0xed, 0x8a, 0xba, 0x1b, 0x55, 0xea, 0xfe, 0x0a, 0x16, 0x09, 0x3b, 0xe7, 0xac, 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, 0xed, 0x0b, 0x95, 0x66, 0x65, 0x8c, 0xbe, 0x76, 0x63, 0x94, 0x03, 0xd0, 0x1e, 0x74, 0x4e, 0x2a,
0xf4, 0xa7, 0x94, 0x72, 0x4f, 0x29, 0xa5, 0x4a, 0xc5, 0xa4, 0xf2, 0x20, 0x7e, 0x0f, 0x16, 0x64, 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, 0x72, 0xd8, 0x65, 0xe3, 0x67, 0x34, 0xa7, 0x3c, 0xda, 0xfb, 0x34, 0xa7, 0xc2, 0xe9, 0x5a, 0x44,
0x7c, 0xe3, 0x4d, 0x58, 0x2a, 0x49, 0x4a, 0x3e, 0x27, 0x1a, 0x6c, 0x05, 0x66, 0x4a, 0xf7, 0xe2, 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, 0x04, 0xd4, 0x0a, 0x1f, 0x72, 0x41, 0x33, 0x53, 0xd0, 0x1e, 0xb4, 0x4f, 0x6c, 0xa2, 0x99, 0xf2,
0xf4, 0x15, 0x57, 0x0c, 0xb9, 0x4d, 0xae, 0xe0, 0xe3, 0xa7, 0xb0, 0x44, 0xd8, 0xb9, 0x72, 0xd8, 0xf4, 0x55, 0x57, 0x0c, 0xb9, 0x4d, 0x26, 0xf0, 0xf1, 0x53, 0x58, 0x26, 0xec, 0x5c, 0x39, 0xec,
0x43, 0xae, 0x25, 0xd4, 0x81, 0x86, 0x50, 0x97, 0xd2, 0x9d, 0x5c, 0x4c, 0xca, 0x6d, 0xf8, 0x09, 0x21, 0xd7, 0x12, 0xea, 0x40, 0x43, 0xa8, 0x4b, 0xe9, 0x4e, 0x2e, 0xa6, 0xe5, 0x36, 0xfc, 0x04,
0xb4, 0x36, 0xc5, 0xd7, 0x33, 0x96, 0xd3, 0x20, 0x9c, 0x28, 0x56, 0x07, 0x1a, 0xbe, 0x71, 0x5c, 0x5a, 0x9b, 0xe2, 0xeb, 0x19, 0xcb, 0x69, 0x10, 0x4e, 0x15, 0xab, 0x03, 0x0d, 0xdf, 0x38, 0x2e,
0x2e, 0xf0, 0x6b, 0x78, 0x87, 0xb0, 0x24, 0x1c, 0x17, 0x55, 0x5d, 0xe0, 0x66, 0xe8, 0x23, 0x68, 0x17, 0xf8, 0x35, 0xbc, 0x43, 0x58, 0x12, 0x8e, 0x8b, 0xaa, 0x2e, 0x70, 0x33, 0xf4, 0x11, 0xb4,
0x51, 0x83, 0xa8, 0x92, 0xaa, 0xc8, 0x89, 0xe6, 0x7d, 0xc4, 0x42, 0xc4, 0x04, 0x50, 0xca, 0xe9, 0xa8, 0x41, 0x54, 0x49, 0x55, 0xe4, 0x44, 0xf3, 0x3e, 0x62, 0x21, 0x62, 0x02, 0x28, 0xe5, 0xf4,
0x71, 0x11, 0xb3, 0xbd, 0x63, 0x89, 0x89, 0x9e, 0xc0, 0x62, 0x68, 0x3a, 0x70, 0xa1, 0xa6, 0x22, 0xb8, 0x88, 0xd9, 0xde, 0xb1, 0xc4, 0x44, 0x4f, 0x60, 0x29, 0x34, 0x1d, 0xb8, 0x50, 0x53, 0x91,
0x71, 0x5a, 0xde, 0x4d, 0x1c, 0x5c, 0xfc, 0x25, 0x74, 0x08, 0xf3, 0x59, 0x90, 0xe4, 0x76, 0x5c, 0x38, 0x2d, 0xef, 0x26, 0x0e, 0x2e, 0xfe, 0x12, 0x3a, 0x84, 0xf9, 0x2c, 0x48, 0x72, 0x3b, 0xae,
0x57, 0xeb, 0xe9, 0x6d, 0xe3, 0xf9, 0xd7, 0x1e, 0x2c, 0x28, 0xb1, 0xf7, 0x8e, 0xf9, 0xa5, 0x68, 0xab, 0xf5, 0xf4, 0xb6, 0xf1, 0xfc, 0x1b, 0x0f, 0x16, 0x95, 0xd8, 0x7b, 0xc7, 0xfc, 0x52, 0xb4,
0x13, 0x9a, 0x52, 0xa6, 0x57, 0x34, 0x51, 0x8c, 0xbe, 0x67, 0x49, 0xae, 0x10, 0xd5, 0xea, 0x15, 0x09, 0x4d, 0x29, 0xd3, 0x2b, 0x9a, 0x28, 0x46, 0xdf, 0xb3, 0x24, 0x57, 0x88, 0x6a, 0xf5, 0x8a,
0x4d, 0xb6, 0xa3, 0x3c, 0x1d, 0x13, 0x7d, 0xaa, 0xfb, 0x04, 0x16, 0xed, 0x4d, 0xd4, 0x86, 0x3a, 0x26, 0xdb, 0x51, 0x9e, 0x8e, 0x89, 0x3e, 0xd5, 0x7d, 0x02, 0x4b, 0xf6, 0x26, 0x6a, 0x43, 0x9d,
0x77, 0x29, 0x69, 0x13, 0xfe, 0xc9, 0xd9, 0x17, 0x4d, 0x46, 0x61, 0x10, 0xb1, 0xf8, 0xb4, 0xf6, 0xbb, 0x94, 0xb4, 0x09, 0xff, 0xe4, 0xec, 0x8b, 0x26, 0xa3, 0x30, 0x88, 0x58, 0x7c, 0x5a, 0xfb,
0xb1, 0x87, 0x7f, 0xe7, 0x41, 0xfb, 0xb0, 0x08, 0x98, 0x82, 0xab, 0x67, 0x2a, 0xaa, 0x32, 0xcd, 0xd8, 0xc3, 0xbf, 0xf3, 0xa0, 0x7d, 0x58, 0x04, 0x4c, 0xc1, 0xd5, 0x33, 0x15, 0x55, 0x99, 0xe6,
0xd5, 0x23, 0xc5, 0x95, 0x8b, 0x2b, 0x01, 0x99, 0x66, 0xac, 0x3c, 0xc8, 0x19, 0xb3, 0x37, 0x4d, 0xea, 0xa1, 0xe2, 0xca, 0xc5, 0x95, 0x80, 0x4c, 0x33, 0x56, 0x1e, 0xe4, 0x8c, 0xd9, 0x9b, 0x26,
0xc6, 0x9a, 0x15, 0x8c, 0x35, 0x4d, 0xc6, 0x76, 0x61, 0xd9, 0x89, 0xbe, 0x8d, 0xfd, 0x34, 0x90, 0x63, 0xcd, 0x0a, 0xc6, 0x9a, 0x26, 0x63, 0xbb, 0xb0, 0xe2, 0x44, 0xdf, 0xc6, 0x7e, 0x1a, 0xc8,
0x31, 0xa3, 0x52, 0x88, 0xa4, 0x53, 0x55, 0xb2, 0x6a, 0x4e, 0xc9, 0xfa, 0x95, 0x07, 0x8b, 0x45, 0x98, 0x51, 0x29, 0x44, 0xd2, 0xa9, 0x2a, 0x59, 0x35, 0xa7, 0x64, 0xfd, 0xda, 0x83, 0xa5, 0xa2,
0x25, 0xd0, 0x64, 0x2a, 0x7d, 0xf7, 0xf9, 0xa4, 0x1c, 0x7a, 0xbf, 0x3a, 0x87, 0x4a, 0x72, 0x37, 0x12, 0x68, 0x32, 0x95, 0xbe, 0xfb, 0x7c, 0x5a, 0x0e, 0xbd, 0x57, 0x9d, 0x43, 0x25, 0xb9, 0xeb,
0x97, 0xaf, 0xa6, 0x51, 0xbe, 0xf6, 0x60, 0xa9, 0xf4, 0x8f, 0x1b, 0xd8, 0xa9, 0xac, 0x43, 0x4d, 0xcb, 0x57, 0xd3, 0x28, 0x5f, 0x7b, 0xb0, 0x5c, 0xfa, 0xc7, 0x35, 0xec, 0x54, 0xd6, 0xa1, 0xa6,
0x37, 0x31, 0xbe, 0x00, 0x64, 0xd6, 0x43, 0x45, 0xf3, 0xc3, 0x2b, 0x55, 0x71, 0xd9, 0xa9, 0x8a, 0x9b, 0x18, 0x5f, 0x00, 0x32, 0xeb, 0xa1, 0xa2, 0xf9, 0xe1, 0x44, 0x55, 0x5c, 0x71, 0xaa, 0xa2,
0x8a, 0x79, 0x5d, 0x1b, 0x03, 0x78, 0xc7, 0x72, 0x7c, 0x45, 0xe9, 0x4a, 0x59, 0x6b, 0x9a, 0x65, 0x62, 0x5e, 0xd7, 0xc6, 0x00, 0xde, 0xb1, 0x1c, 0x5f, 0x51, 0x9a, 0x28, 0x6b, 0x4d, 0xb3, 0xac,
0x6d, 0xe3, 0x6a, 0x18, 0xac, 0xb8, 0x61, 0xa0, 0x6e, 0x32, 0x82, 0xe1, 0xb7, 0x1e, 0x74, 0xec, 0x6d, 0x4c, 0x86, 0xc1, 0xaa, 0x1b, 0x06, 0xea, 0x26, 0x23, 0x18, 0xbe, 0xf6, 0xa0, 0x63, 0xf7,
0x7e, 0x57, 0x5f, 0x76, 0x4b, 0xbd, 0xe4, 0xba, 0xd3, 0x20, 0x76, 0xab, 0x9a, 0x27, 0xc5, 0x99, 0xbb, 0xfa, 0xb2, 0x1b, 0xea, 0x25, 0x1f, 0x3b, 0x0d, 0x62, 0xb7, 0xaa, 0x79, 0x52, 0x9c, 0x29,
0xc2, 0xc4, 0x7f, 0xf7, 0x60, 0xd9, 0xe9, 0x6e, 0x6f, 0x9d, 0xaf, 0xef, 0xda, 0x3d, 0xee, 0xdd, 0x4c, 0xfc, 0x77, 0x0f, 0x56, 0x9c, 0xee, 0xf6, 0xc6, 0xf9, 0xfa, 0xbe, 0xdd, 0xe3, 0xde, 0xa9,
0x8a, 0xfe, 0x4f, 0x71, 0xa5, 0xba, 0xc0, 0xff, 0x45, 0x90, 0xbf, 0x71, 0xfd, 0x5a, 0x1d, 0xed, 0xe8, 0xff, 0x14, 0x57, 0xaa, 0x0b, 0xfc, 0x5f, 0x04, 0xf9, 0x1b, 0xd7, 0xaf, 0xd5, 0xd1, 0xde,
0xad, 0xc8, 0x51, 0xaf, 0x92, 0x63, 0xfa, 0xad, 0xe5, 0x68, 0xbc, 0xb1, 0x1c, 0xbf, 0xa8, 0x95, 0x88, 0x1c, 0xf5, 0x2a, 0x39, 0x66, 0xde, 0x5a, 0x8e, 0xc6, 0x1b, 0xcb, 0xf1, 0xab, 0x5a, 0xe9,
0x3e, 0x29, 0x07, 0x41, 0x25, 0xc6, 0xf6, 0x84, 0x71, 0xf0, 0x5e, 0xe5, 0x38, 0x28, 0x0f, 0x55, 0x93, 0x72, 0x10, 0x54, 0x62, 0x6c, 0x4f, 0x19, 0x07, 0xef, 0x56, 0x8e, 0x83, 0xf2, 0x50, 0xc5,
0x0c, 0x85, 0x2f, 0x27, 0x0d, 0x85, 0xf7, 0xab, 0x87, 0xc2, 0x92, 0xd0, 0x95, 0xd1, 0x70, 0x7b, 0x50, 0xf8, 0x72, 0xda, 0x50, 0x78, 0xaf, 0x7a, 0x28, 0x2c, 0x09, 0x4d, 0x8c, 0x86, 0xdb, 0x53,
0xc2, 0x68, 0x78, 0xaf, 0x72, 0x34, 0x34, 0x18, 0x7a, 0xc3, 0x01, 0xf1, 0x4b, 0x40, 0x66, 0xfd, 0x46, 0xc3, 0xbb, 0x95, 0xa3, 0xa1, 0xc1, 0xd0, 0x1b, 0x0e, 0x88, 0x5f, 0x02, 0x32, 0xeb, 0xe7,
0xdc, 0x3f, 0xdb, 0xa7, 0x41, 0x8a, 0x1e, 0xc1, 0x62, 0x76, 0x1a, 0x5f, 0x1e, 0x0c, 0x7d, 0x9f, 0xfe, 0xd9, 0x3e, 0x0d, 0x52, 0xf4, 0x10, 0x96, 0xb2, 0xd3, 0xf8, 0xf2, 0x60, 0xe8, 0xfb, 0x2c,
0x65, 0xd9, 0xf1, 0x30, 0x14, 0x6a, 0x98, 0x23, 0x0e, 0x14, 0x3d, 0x00, 0x90, 0xc9, 0x22, 0xa1, 0xcb, 0x8e, 0x87, 0xa1, 0x50, 0xc3, 0x3c, 0x71, 0xa0, 0xe8, 0x3e, 0x80, 0x4c, 0x16, 0x09, 0x0d,
0x41, 0x2a, 0xc8, 0x37, 0x89, 0x01, 0xc1, 0x9f, 0xf1, 0xca, 0x27, 0x9a, 0x83, 0x1e, 0x0d, 0x37, 0x52, 0x41, 0xbe, 0x49, 0x0c, 0x08, 0xfe, 0x8c, 0x57, 0x3e, 0xd1, 0x1c, 0xf4, 0x68, 0xb8, 0xb1,
0x36, 0xfb, 0xfd, 0x54, 0x76, 0x08, 0x08, 0xa6, 0x69, 0xbf, 0x9f, 0x2a, 0x47, 0x11, 0xdf, 0xba, 0xd9, 0xef, 0xa7, 0xb2, 0x43, 0x40, 0x30, 0x43, 0xfb, 0xfd, 0x54, 0x39, 0x8a, 0xf8, 0xd6, 0xd5,
0x1a, 0xd6, 0x8c, 0x6a, 0x88, 0x7f, 0x68, 0xd7, 0xf7, 0x1e, 0x0d, 0x69, 0xe4, 0x33, 0xf4, 0x10, 0xb0, 0x66, 0x54, 0x43, 0xfc, 0x63, 0xbb, 0xbe, 0xf7, 0x68, 0x48, 0x23, 0x9f, 0xa1, 0x07, 0xb0,
0xe6, 0x55, 0xb2, 0x32, 0xe8, 0x98, 0x20, 0xde, 0x4a, 0x1e, 0x49, 0x64, 0xe5, 0x73, 0xc5, 0x12, 0xa0, 0x92, 0x95, 0x41, 0xc7, 0x04, 0xf1, 0x56, 0xf2, 0x48, 0x22, 0x2b, 0x9f, 0x2b, 0x96, 0xf8,
0xff, 0xb5, 0x56, 0x4e, 0x65, 0xcf, 0x7a, 0x07, 0x79, 0x9c, 0x32, 0x27, 0xfd, 0xeb, 0x0e, 0xd2, 0xaf, 0xb5, 0x72, 0x2a, 0x7b, 0xd6, 0x3b, 0xc8, 0xe3, 0x94, 0x39, 0xe9, 0x5f, 0x77, 0x90, 0x96,
0xf2, 0xea, 0xda, 0x64, 0xaf, 0xae, 0x5b, 0x5e, 0x2d, 0x8b, 0xc6, 0x8e, 0x33, 0xe7, 0xc8, 0x0c, 0x57, 0xd7, 0xa6, 0x7b, 0x75, 0xdd, 0xf2, 0x6a, 0x59, 0x34, 0x76, 0x9c, 0x39, 0x47, 0x66, 0x70,
0x8e, 0xa1, 0x95, 0x8f, 0xca, 0x76, 0x8f, 0xa8, 0x96, 0xd4, 0x82, 0xa1, 0x0f, 0xa0, 0xad, 0x24, 0x0c, 0xad, 0x7c, 0x54, 0xb6, 0x7b, 0x44, 0xb5, 0xa4, 0x16, 0x0c, 0x7d, 0x00, 0x6d, 0x25, 0x49,
0x29, 0x81, 0x22, 0xa8, 0x5b, 0xe4, 0x0a, 0x9c, 0x6b, 0x2d, 0xbe, 0x8c, 0x58, 0x2a, 0x62, 0xb8, 0x09, 0x14, 0x41, 0xdd, 0x22, 0x13, 0x70, 0xae, 0xb5, 0xf8, 0x32, 0x62, 0xa9, 0x88, 0xe1, 0x26,
0x49, 0xe4, 0xc2, 0xe8, 0xaf, 0xe7, 0x26, 0xf5, 0xd7, 0x4d, 0xbb, 0xbf, 0xbe, 0x0f, 0xcd, 0xa3, 0x91, 0x0b, 0xa3, 0xbf, 0x9e, 0x9f, 0xd6, 0x5f, 0x37, 0xed, 0xfe, 0xfa, 0x1e, 0x34, 0x8f, 0xc2,
0x30, 0xf6, 0xcf, 0x84, 0x12, 0x40, 0xce, 0x18, 0x25, 0x00, 0xbf, 0x86, 0x69, 0x51, 0xc3, 0x27, 0xd8, 0x3f, 0x13, 0x4a, 0x00, 0x39, 0x63, 0x94, 0x00, 0xfc, 0x1a, 0x66, 0x44, 0x0d, 0x9f, 0x56,
0x15, 0x94, 0x35, 0x68, 0xf2, 0x52, 0xd5, 0xa3, 0x59, 0xe0, 0x2b, 0x4f, 0x6f, 0x1b, 0x95, 0x4d, 0x50, 0xd6, 0xa1, 0xc9, 0x4b, 0x55, 0x8f, 0x66, 0x81, 0xaf, 0x3c, 0xbd, 0x6d, 0x54, 0x36, 0x01,
0xc0, 0x89, 0x46, 0xc1, 0x09, 0x2c, 0x72, 0xf8, 0x4b, 0x7a, 0xc1, 0x0e, 0x47, 0x2f, 0xb9, 0xa6, 0x27, 0x1a, 0x05, 0x27, 0xb0, 0xc4, 0xe1, 0x2f, 0xe9, 0x05, 0x3b, 0x1c, 0xbd, 0xe4, 0x9a, 0xbe,
0xaf, 0x69, 0x66, 0x73, 0x81, 0xa1, 0xd4, 0xaf, 0x56, 0xf6, 0x8d, 0xf5, 0x9b, 0x6f, 0xfc, 0x00, 0xa2, 0x99, 0xcd, 0x05, 0x86, 0x52, 0xbf, 0x5a, 0xd9, 0x37, 0xd6, 0xaf, 0xbf, 0xf1, 0x03, 0x68,
0x1a, 0xa2, 0xa5, 0x43, 0xdf, 0x80, 0x06, 0x87, 0x16, 0x1d, 0xdc, 0xbc, 0x71, 0x88, 0xc8, 0x1d, 0x88, 0x96, 0x0e, 0x7d, 0x0b, 0x1a, 0x1c, 0x5a, 0x74, 0x70, 0x0b, 0xc6, 0x21, 0x22, 0x77, 0x30,
0x4c, 0xe4, 0x48, 0xab, 0xb9, 0xcb, 0xd0, 0x53, 0x59, 0xc0, 0x0d, 0x90, 0x53, 0xfc, 0xec, 0x03, 0x91, 0x23, 0xad, 0xe6, 0x2e, 0x43, 0x4f, 0x65, 0x01, 0x37, 0x40, 0x4e, 0xf1, 0xb3, 0x0f, 0x10,
0xc4, 0xc5, 0xc6, 0xc7, 0x3c, 0xce, 0xce, 0xdd, 0x99, 0xeb, 0xfa, 0xac, 0xd9, 0x85, 0xb9, 0x41, 0x17, 0x1b, 0x1f, 0xf3, 0x38, 0x3b, 0x77, 0x67, 0xae, 0xab, 0xb3, 0x66, 0x17, 0xe6, 0x07, 0xc1,
0x30, 0xda, 0x2a, 0xf3, 0x66, 0x83, 0x94, 0x6b, 0xcb, 0xf7, 0xea, 0x46, 0x37, 0x9d, 0x41, 0xb3, 0x68, 0xab, 0xcc, 0x9b, 0x0d, 0x52, 0xae, 0x2d, 0xdf, 0xab, 0x1b, 0xdd, 0x74, 0x06, 0xcd, 0x52,
0x94, 0xbf, 0x6a, 0x74, 0xf3, 0xac, 0xb7, 0xa9, 0x1b, 0xe7, 0x65, 0xdd, 0x29, 0xec, 0x57, 0x4d, 0xfe, 0xaa, 0xd1, 0xcd, 0xb3, 0xde, 0xa6, 0xae, 0x9d, 0x97, 0x75, 0xa7, 0xb0, 0x5f, 0x35, 0xb1,
0xac, 0x12, 0x88, 0x09, 0xb4, 0x45, 0xb7, 0x2b, 0x5a, 0x97, 0xcd, 0x81, 0xc3, 0xa0, 0x6d, 0xd0, 0x4a, 0x20, 0x26, 0xd0, 0x16, 0xdd, 0xae, 0x68, 0x5d, 0x36, 0x07, 0x0e, 0x83, 0xb6, 0x41, 0x1f,
0x47, 0x85, 0xfe, 0xed, 0xd6, 0x56, 0x1b, 0x4d, 0x19, 0xe1, 0x37, 0x1e, 0xd7, 0x58, 0x76, 0x7b, 0x16, 0xfa, 0xb7, 0x5b, 0x5b, 0x6d, 0x34, 0x65, 0x84, 0xdf, 0x7a, 0x5c, 0x63, 0xd9, 0xcd, 0x69,
0x1a, 0xdb, 0x82, 0x36, 0xa7, 0x6c, 0x32, 0x29, 0x74, 0x37, 0xbf, 0xfe, 0xae, 0xc1, 0x83, 0xb9, 0x6c, 0x0b, 0xda, 0x9c, 0xb2, 0xc9, 0xa4, 0xd0, 0xdd, 0xc2, 0xe3, 0x77, 0x0d, 0x1e, 0xcc, 0x6d,
0x4d, 0xae, 0x1c, 0xc0, 0x7f, 0xf4, 0xe0, 0xce, 0x73, 0xee, 0x47, 0x07, 0xfc, 0x67, 0x27, 0xda, 0x32, 0x71, 0x00, 0xff, 0xd1, 0x83, 0xdb, 0xcf, 0xb9, 0x1f, 0x1d, 0xf0, 0x9f, 0x9d, 0x68, 0x2f,
0x8b, 0xd8, 0xe1, 0xe8, 0xe6, 0xe2, 0x97, 0xb1, 0xa8, 0xcf, 0xd2, 0xc2, 0x85, 0xe5, 0x8a, 0xc3, 0x62, 0x87, 0xa3, 0xeb, 0x8b, 0x5f, 0xc6, 0xa2, 0x3e, 0x4b, 0x0b, 0x17, 0x96, 0x2b, 0x0e, 0x67,
0xd9, 0x28, 0x09, 0x52, 0x56, 0xa4, 0x0f, 0xb9, 0x72, 0xc6, 0x59, 0xdd, 0x8b, 0x96, 0x9e, 0xdb, 0xa3, 0x24, 0x48, 0x59, 0x91, 0x3e, 0xe4, 0xca, 0x19, 0x67, 0x75, 0x2f, 0x5a, 0x7a, 0x6e, 0x63,
0x98, 0xe8, 0xb9, 0x3f, 0x81, 0x16, 0x61, 0x34, 0x2c, 0x1f, 0x52, 0x30, 0xb4, 0x52, 0x46, 0x43, 0xaa, 0xe7, 0xfe, 0x0c, 0x5a, 0x84, 0xd1, 0xb0, 0x7c, 0x48, 0xc1, 0xd0, 0x4a, 0x19, 0x0d, 0x45,
0x51, 0x27, 0x8b, 0x26, 0xb9, 0x41, 0x2c, 0x18, 0xcf, 0xf5, 0x45, 0xdf, 0x97, 0x06, 0x17, 0xda, 0x9d, 0x2c, 0x9a, 0xe4, 0x06, 0xb1, 0x60, 0x3c, 0xd7, 0x17, 0x7d, 0x5f, 0x1a, 0x5c, 0x68, 0x1b,
0xc6, 0x0e, 0x14, 0x6f, 0x00, 0x94, 0x46, 0xca, 0xb4, 0x19, 0xbd, 0xeb, 0xcd, 0xf8, 0x8f, 0x1a, 0x3b, 0x50, 0xbc, 0x01, 0x50, 0x1a, 0x29, 0xd3, 0x66, 0xf4, 0xae, 0x36, 0xe3, 0x3f, 0x6a, 0xb0,
0xac, 0x6c, 0xa5, 0x8c, 0xe6, 0xec, 0x50, 0xbf, 0xc6, 0x6e, 0x51, 0xff, 0x94, 0x99, 0x8d, 0x7b, 0xba, 0x95, 0x32, 0x9a, 0xb3, 0x43, 0xfd, 0x1a, 0xbb, 0x45, 0xfd, 0x53, 0x66, 0x36, 0xee, 0x2d,
0x4b, 0x36, 0xee, 0x0f, 0x00, 0x7c, 0x81, 0xcb, 0xef, 0x55, 0x69, 0xdb, 0x80, 0x70, 0xf3, 0x66, 0xd9, 0xb8, 0xdf, 0x07, 0xf0, 0x05, 0x2e, 0xbf, 0x57, 0xa5, 0x6d, 0x03, 0xc2, 0xcd, 0x9b, 0x05,
0xc1, 0x49, 0x24, 0x76, 0xa5, 0xce, 0xca, 0xb5, 0xd0, 0x72, 0x4e, 0xf3, 0x61, 0xa6, 0x52, 0xae, 0x27, 0x91, 0xd8, 0x95, 0x3a, 0x2b, 0xd7, 0x42, 0xcb, 0x39, 0xcd, 0x87, 0x99, 0x4a, 0xb9, 0x6a,
0x5a, 0xa1, 0x0d, 0x98, 0x37, 0xde, 0x81, 0x55, 0x8b, 0x80, 0x8a, 0xc1, 0x43, 0xef, 0x10, 0x13, 0x85, 0x36, 0x60, 0xc1, 0x78, 0x07, 0x56, 0x2d, 0x02, 0x2a, 0x06, 0x0f, 0xbd, 0x43, 0x4c, 0x34,
0xcd, 0xb0, 0xd9, 0x8c, 0x65, 0xb3, 0x8f, 0xa4, 0x42, 0xcb, 0x0e, 0x78, 0xd6, 0x9a, 0x2b, 0x4d, 0xc3, 0x66, 0xb3, 0x96, 0xcd, 0x3e, 0x92, 0x0a, 0x2d, 0x3b, 0xe0, 0x39, 0x6b, 0xae, 0x34, 0x75,
0xdd, 0x13, 0x0b, 0x11, 0x7d, 0xb3, 0xd0, 0xd7, 0x9c, 0x38, 0x71, 0xc7, 0xd5, 0x57, 0xa6, 0x14, 0x4f, 0x2c, 0x44, 0xf4, 0xed, 0x42, 0x5f, 0xf3, 0xe2, 0xc4, 0x6d, 0x57, 0x5f, 0x99, 0x52, 0x98,
0x66, 0xfb, 0x52, 0xd3, 0xf1, 0x25, 0xdc, 0x13, 0x8f, 0x15, 0x42, 0x7f, 0x87, 0xa3, 0xcf, 0x83, 0xed, 0x4b, 0x4d, 0xc7, 0x97, 0x70, 0x4f, 0x3c, 0x56, 0x08, 0xfd, 0x1d, 0x8e, 0x3e, 0x0f, 0xb2,
0x2c, 0xaf, 0x2c, 0xa5, 0xd7, 0x96, 0x2d, 0xfc, 0x31, 0xb4, 0x45, 0x49, 0x35, 0xa9, 0xbc, 0x0f, 0xbc, 0xb2, 0x94, 0x5e, 0x59, 0xb6, 0xf0, 0xc7, 0xd0, 0x16, 0x25, 0xd5, 0xa4, 0xf2, 0x3e, 0xd4,
0xf5, 0x7c, 0x54, 0x18, 0xb3, 0x4a, 0x3b, 0x7c, 0x1b, 0x6f, 0xc3, 0x1d, 0x3d, 0xeb, 0x6f, 0xfa, 0xf3, 0x51, 0x61, 0xcc, 0x2a, 0xed, 0xf0, 0x6d, 0xbc, 0x0d, 0xb7, 0xf5, 0xac, 0xbf, 0xe9, 0x8b,
0x62, 0x02, 0xbf, 0xc1, 0xf9, 0x0b, 0xf6, 0x6a, 0x9a, 0x3d, 0xfc, 0x33, 0x91, 0x0b, 0xf7, 0x1d, 0x09, 0xfc, 0x1a, 0xe7, 0x2f, 0xd8, 0xab, 0x69, 0xf6, 0xf0, 0x2f, 0x44, 0x2e, 0xdc, 0x77, 0xe8,
0x3a, 0x6f, 0xdc, 0x13, 0xf0, 0xe2, 0xdf, 0x0f, 0xb2, 0x24, 0xa4, 0xe3, 0x41, 0xdc, 0x67, 0xea, 0xbc, 0x71, 0x4f, 0xc0, 0x8b, 0x7f, 0x3f, 0xc8, 0x92, 0x90, 0x8e, 0x07, 0x71, 0x9f, 0xa9, 0xe7,
0x39, 0xc8, 0x04, 0xe1, 0xaf, 0x9c, 0x57, 0x01, 0x75, 0x05, 0xd6, 0x4e, 0xcb, 0xbd, 0xa0, 0x65, 0x20, 0x13, 0x84, 0xbf, 0x72, 0x5e, 0x05, 0xd4, 0x15, 0x58, 0x3b, 0x2d, 0xf7, 0x82, 0x96, 0x61,
0x18, 0xa1, 0xd4, 0x3f, 0x86, 0xc6, 0xb1, 0xca, 0x4f, 0x15, 0x38, 0x62, 0xeb, 0x0d, 0x18, 0x78, 0x84, 0x52, 0xff, 0x18, 0x1a, 0xc7, 0x2a, 0x3f, 0x55, 0xe0, 0x88, 0xad, 0x37, 0x60, 0xe0, 0x15,
0xc5, 0x19, 0x38, 0x97, 0x8e, 0xaf, 0xf4, 0xcc, 0xab, 0xf5, 0xf5, 0xba, 0x5a, 0x85, 0x59, 0x1e, 0x67, 0xe0, 0x5c, 0x3a, 0xbe, 0xd2, 0x33, 0xaf, 0xd6, 0x57, 0xeb, 0x6a, 0x0d, 0xe6, 0x78, 0xa0,
0xe8, 0x3a, 0x04, 0x8b, 0x25, 0xfe, 0x97, 0x07, 0x77, 0x8d, 0x57, 0x16, 0x6d, 0x17, 0x61, 0xbc, 0xeb, 0x10, 0x2c, 0x96, 0xf8, 0x5f, 0x1e, 0xdc, 0x31, 0x5e, 0x59, 0xb4, 0x5d, 0x84, 0xf1, 0xae,
0xeb, 0xa9, 0x62, 0x68, 0x71, 0xe7, 0x25, 0xcc, 0xbf, 0x78, 0x1e, 0xd2, 0x13, 0x95, 0x17, 0x2d, 0xa6, 0x8a, 0xa1, 0xc5, 0x9d, 0x97, 0x30, 0xff, 0xe2, 0x79, 0x48, 0x4f, 0x54, 0x5e, 0xb4, 0x60,
0x18, 0xa7, 0xd0, 0x0f, 0x52, 0x26, 0x43, 0x44, 0x8a, 0xa3, 0x01, 0xfa, 0xe5, 0x45, 0x46, 0x56, 0x9c, 0x42, 0x3f, 0x48, 0x99, 0x0c, 0x11, 0x29, 0x8e, 0x06, 0xe8, 0x97, 0x17, 0x19, 0x59, 0x8d,
0xa3, 0xb4, 0xd7, 0x71, 0x1a, 0x0f, 0x8a, 0x19, 0x84, 0x7f, 0x73, 0x09, 0xb8, 0xdd, 0x58, 0x96, 0xd2, 0x5e, 0xc7, 0x69, 0x3c, 0x28, 0x66, 0x10, 0xfe, 0xcd, 0x25, 0xe0, 0x76, 0x63, 0x59, 0xa6,
0xa9, 0xb8, 0x29, 0x96, 0x3c, 0xb4, 0x33, 0xc6, 0xfa, 0x2a, 0xb1, 0xcd, 0x0a, 0xf1, 0x0c, 0x08, 0xe2, 0xa6, 0x58, 0xf2, 0xd0, 0xce, 0x18, 0xeb, 0xab, 0xc4, 0x36, 0x27, 0xc4, 0x33, 0x20, 0xf8,
0xfe, 0x54, 0x38, 0x36, 0x61, 0x99, 0x4f, 0xa3, 0x2f, 0x84, 0x92, 0x3b, 0xd0, 0xe0, 0x87, 0xa5, 0x53, 0xe1, 0xd8, 0x84, 0x65, 0x3e, 0x8d, 0xbe, 0x10, 0x4a, 0xee, 0x40, 0x83, 0x1f, 0x96, 0x4e,
0x53, 0x36, 0x89, 0x5c, 0x88, 0x5b, 0xb5, 0x14, 0xe2, 0x1b, 0x7f, 0x02, 0x4b, 0x84, 0x25, 0xf2, 0xd9, 0x24, 0x72, 0x21, 0x6e, 0xd5, 0x52, 0x88, 0x6f, 0xfc, 0x09, 0x2c, 0x13, 0x96, 0xc8, 0xb3,
0x2c, 0x61, 0xd9, 0x30, 0xac, 0x76, 0xa6, 0xaa, 0xa3, 0xa7, 0xfc, 0xda, 0xc4, 0xbc, 0xb6, 0xc0, 0x84, 0x65, 0xc3, 0xb0, 0xda, 0x99, 0xaa, 0x8e, 0x9e, 0xf2, 0x6b, 0x13, 0xf3, 0xda, 0x02, 0xcb,
0xf2, 0x34, 0x16, 0xea, 0x41, 0x3b, 0xb5, 0x2f, 0xc8, 0x9c, 0x91, 0xd4, 0xb9, 0x9f, 0x5c, 0xc1, 0xd3, 0x58, 0xa8, 0x07, 0xed, 0xd4, 0xbe, 0x20, 0x73, 0x46, 0x52, 0xe7, 0x7e, 0x32, 0x81, 0x8f,
0xc7, 0x8f, 0x79, 0xd4, 0x9d, 0x6f, 0x47, 0xf4, 0x28, 0x64, 0xc5, 0x1f, 0x1c, 0xa5, 0x88, 0x35, 0x1f, 0xf1, 0xa8, 0x3b, 0xdf, 0x8e, 0xe8, 0x51, 0xc8, 0x8a, 0x3f, 0x38, 0x4a, 0x11, 0x6b, 0x86,
0x43, 0x44, 0xbc, 0x23, 0xde, 0x7f, 0x79, 0xb3, 0x7c, 0xbd, 0x30, 0x3b, 0xd9, 0xde, 0xae, 0x10, 0x88, 0x78, 0x47, 0xbc, 0xff, 0xf2, 0x66, 0xf9, 0x6a, 0x61, 0x76, 0xb2, 0xbd, 0x5d, 0x21, 0xcc,
0x66, 0x8e, 0x88, 0x6f, 0x9e, 0x50, 0x07, 0xd9, 0x89, 0x1a, 0xa6, 0xf8, 0x27, 0xee, 0x89, 0x50, 0x3c, 0x11, 0xdf, 0x3c, 0xa1, 0x0e, 0xb2, 0x13, 0x35, 0x4c, 0xf1, 0x4f, 0xdc, 0x13, 0xa1, 0x6e,
0xb7, 0x2f, 0x5d, 0x83, 0xd9, 0x54, 0xc9, 0x60, 0x3f, 0x62, 0x59, 0x97, 0x92, 0x02, 0x09, 0xff, 0x5f, 0xba, 0x0e, 0x73, 0xa9, 0x92, 0xc1, 0x7e, 0xc4, 0xb2, 0x2e, 0x25, 0x05, 0x12, 0xfe, 0xb3,
0x59, 0xcf, 0xae, 0x07, 0xc1, 0x49, 0x44, 0xf3, 0x61, 0xca, 0xf6, 0x69, 0x4a, 0x07, 0xdc, 0xa6, 0x9e, 0x5d, 0x0f, 0x82, 0x93, 0x88, 0xe6, 0xc3, 0x94, 0xed, 0xd3, 0x94, 0x0e, 0xb8, 0x4d, 0xa5,
0xd2, 0x0b, 0x0f, 0xc7, 0x09, 0x53, 0x0a, 0x33, 0x20, 0xe8, 0x43, 0x00, 0x1e, 0x53, 0x47, 0x22, 0x17, 0x1e, 0x8e, 0x13, 0xa6, 0x14, 0x66, 0x40, 0xd0, 0x87, 0x00, 0x3c, 0xa6, 0x8e, 0x44, 0x7e,
0xbf, 0x29, 0x85, 0x55, 0x24, 0x3e, 0x03, 0x09, 0x7d, 0x02, 0x0b, 0xa9, 0x91, 0x44, 0x33, 0x55, 0x53, 0x0a, 0xab, 0x48, 0x7c, 0x06, 0x12, 0xfa, 0x04, 0x16, 0x53, 0x23, 0x89, 0x66, 0xaa, 0x42,
0xa1, 0x2b, 0x13, 0xac, 0x8d, 0x89, 0xff, 0xe4, 0x41, 0xe7, 0x47, 0x34, 0x0c, 0x59, 0xae, 0xc2, 0x57, 0x26, 0x58, 0x1b, 0x13, 0xff, 0xc9, 0x83, 0xce, 0x4f, 0x68, 0x18, 0xb2, 0x5c, 0x85, 0x7b,
0xbd, 0x10, 0xf8, 0x01, 0xc0, 0x45, 0xc0, 0x2e, 0x55, 0x03, 0x23, 0xcb, 0x8d, 0x01, 0xe1, 0xd1, 0x21, 0xf0, 0x7d, 0x80, 0x8b, 0x80, 0x5d, 0xaa, 0x06, 0x46, 0x96, 0x1b, 0x03, 0xc2, 0xa3, 0x59,
0x2c, 0x56, 0x69, 0x70, 0xb1, 0x5b, 0x86, 0x9e, 0x09, 0xe2, 0x18, 0x59, 0xc2, 0xa2, 0xbe, 0x22, 0xac, 0xd2, 0xe0, 0x62, 0xb7, 0x0c, 0x3d, 0x13, 0xc4, 0x31, 0xb2, 0x84, 0x45, 0x7d, 0x45, 0x42,
0x21, 0xff, 0x38, 0x30, 0x41, 0x22, 0xc8, 0xc4, 0x52, 0x11, 0x91, 0x0f, 0xd1, 0x16, 0x0c, 0xff, 0xfe, 0x71, 0x60, 0x82, 0x44, 0x90, 0x89, 0xa5, 0x22, 0x22, 0x1f, 0xa2, 0x2d, 0x18, 0xfe, 0xba,
0xb2, 0x26, 0xf2, 0x9e, 0x4c, 0x0a, 0x45, 0x28, 0x8f, 0x6e, 0xce, 0x9f, 0x5c, 0xf4, 0xc2, 0x69, 0x26, 0xf2, 0x9e, 0x4c, 0x0a, 0x45, 0x28, 0x5f, 0xd7, 0x3c, 0xd8, 0x3a, 0xae, 0x4d, 0xe8, 0x78,
0xf9, 0xf7, 0xc4, 0xb9, 0xa3, 0x98, 0xa6, 0xa7, 0x8d, 0x69, 0xba, 0x2a, 0x4a, 0xdd, 0x7f, 0x8e, 0xda, 0x0c, 0x52, 0x4c, 0xd6, 0x33, 0xc6, 0x64, 0x5d, 0x15, 0xb1, 0xee, 0xbf, 0x48, 0xf6, 0x44,
0xec, 0x29, 0x0e, 0xdc, 0x29, 0x4e, 0x75, 0x55, 0x32, 0x05, 0xcc, 0x97, 0x5d, 0x95, 0x5f, 0xb4, 0x07, 0xee, 0x44, 0xa7, 0x3a, 0x2c, 0x99, 0x0e, 0x16, 0xca, 0x0e, 0xcb, 0x2f, 0x5a, 0x3e, 0xd5,
0x79, 0xaa, 0x89, 0x69, 0x59, 0x4d, 0x8c, 0xf5, 0xa7, 0xd1, 0x82, 0xf3, 0xa7, 0xd1, 0xfa, 0xef, 0xd0, 0xb4, 0xac, 0x86, 0xc6, 0xfa, 0x03, 0x69, 0xd1, 0xf9, 0x03, 0xe9, 0xf1, 0xef, 0x6b, 0x30,
0x6b, 0x30, 0x6b, 0xfc, 0xf9, 0x79, 0x70, 0x1a, 0x5f, 0x2a, 0x85, 0x70, 0x75, 0xb7, 0x4b, 0x6b, 0x67, 0xfc, 0x11, 0x7a, 0x70, 0x1a, 0x5f, 0x2a, 0xe5, 0x70, 0xd5, 0xb7, 0x4b, 0xcb, 0x9f, 0x1f,
0x9f, 0x1f, 0xe4, 0x69, 0x10, 0x9d, 0x74, 0xef, 0xea, 0x30, 0x73, 0x46, 0x55, 0x3c, 0x85, 0x7e, 0xe4, 0x69, 0x10, 0x9d, 0x74, 0xef, 0xe8, 0x90, 0x73, 0xc6, 0x56, 0x7c, 0x0b, 0xfd, 0x08, 0x16,
0x00, 0xf3, 0x66, 0x00, 0x2f, 0xeb, 0xd3, 0x06, 0xb8, 0xbb, 0xec, 0x46, 0xaa, 0x00, 0xe3, 0x29, 0xcc, 0x60, 0x5e, 0xd1, 0xa7, 0x0d, 0x70, 0x77, 0xc5, 0x8d, 0x5a, 0x01, 0xc6, 0xb7, 0xd0, 0x16,
0xb4, 0x05, 0x0b, 0x76, 0x80, 0xbc, 0xab, 0x09, 0x58, 0x1b, 0x5d, 0xbd, 0x61, 0x87, 0x14, 0x9e, 0x2c, 0xda, 0xc1, 0xf2, 0xae, 0x26, 0x60, 0x6d, 0x74, 0xf5, 0x86, 0x1d, 0x5e, 0xf8, 0x16, 0x7a,
0x42, 0x2f, 0xa0, 0x23, 0xed, 0x4a, 0xe8, 0xa5, 0x91, 0x9e, 0x91, 0x66, 0xdc, 0xb5, 0x7b, 0xb7, 0x01, 0x1d, 0x69, 0x63, 0x42, 0x2f, 0x8d, 0x54, 0x8d, 0x34, 0xe3, 0xae, 0x0f, 0x74, 0x2b, 0x2a,
0xa2, 0xca, 0xe2, 0xa9, 0xa3, 0x19, 0xf1, 0x47, 0xf5, 0xf7, 0xfe, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x2e, 0xbe, 0x75, 0x34, 0x2b, 0xfe, 0xb4, 0xfe, 0xc1, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0xc3,
0xdd, 0x53, 0x2b, 0xff, 0xe1, 0x1e, 0x00, 0x00, 0x82, 0x9d, 0xff, 0xed, 0x1e, 0x00, 0x00,
} }
...@@ -318,7 +318,7 @@ func (policy *privacyPolicy) selectUTXO(token, addr string, amount int64) ([]*tx ...@@ -318,7 +318,7 @@ func (policy *privacyPolicy) selectUTXO(token, addr string, amount int64) ([]*tx
if curBlockHeight < wutxo.height { if curBlockHeight < wutxo.height {
continue continue
} }
if curBlockHeight-wutxo.height > types.PrivacyMaturityDegree { if curBlockHeight-wutxo.height > privacytypes.UtxoMaturityDegree {
balance += wutxo.outinfo.amount balance += wutxo.outinfo.amount
confirmUTXOs = append(confirmUTXOs, wutxo) confirmUTXOs = append(confirmUTXOs, wutxo)
} else { } else {
...@@ -493,12 +493,12 @@ func (policy *privacyPolicy) buildInput(privacykeyParirs *privacy.Privacy, build ...@@ -493,12 +493,12 @@ func (policy *privacyPolicy) buildInput(privacykeyParirs *privacy.Privacy, build
} }
func (policy *privacyPolicy) createTransaction(req *privacytypes.ReqCreatePrivacyTx) (*types.Transaction, error) { func (policy *privacyPolicy) createTransaction(req *privacytypes.ReqCreatePrivacyTx) (*types.Transaction, error) {
switch req.Type { switch req.ActionType {
case types.PrivacyTypePublic2Privacy: case privacytypes.ActionPublic2Privacy:
return policy.createPublic2PrivacyTx(req) return policy.createPublic2PrivacyTx(req)
case types.PrivacyTypePrivacy2Privacy: case privacytypes.ActionPrivacy2Privacy:
return policy.createPrivacy2PrivacyTx(req) return policy.createPrivacy2PrivacyTx(req)
case types.PrivacyTypePrivacy2Public: case privacytypes.ActionPrivacy2Public:
return policy.createPrivacy2PublicTx(req) return policy.createPrivacy2PublicTx(req)
} }
return nil, types.ErrInvalidParam return nil, types.ErrInvalidParam
......
...@@ -122,7 +122,7 @@ func (mock *PrivacyMock) CreateUTXOs(sender string, pubkeypair string, amount in ...@@ -122,7 +122,7 @@ func (mock *PrivacyMock) CreateUTXOs(sender string, pubkeypair string, amount in
tx := mock.createPublic2PrivacyTx(&ty.ReqCreatePrivacyTx{ tx := mock.createPublic2PrivacyTx(&ty.ReqCreatePrivacyTx{
AssetExec: "coins", AssetExec: "coins",
Tokenname: mock.tokenName, Tokenname: mock.tokenName,
Type: 1, ActionType: 1,
Amount: amount, Amount: amount,
From: sender, From: sender,
Pubkeypair: pubkeypair, Pubkeypair: pubkeypair,
...@@ -219,8 +219,8 @@ func (mock *PrivacyMock) createPublic2PrivacyTx(req *ty.ReqCreatePrivacyTx) *typ ...@@ -219,8 +219,8 @@ func (mock *PrivacyMock) createPublic2PrivacyTx(req *ty.ReqCreatePrivacyTx) *typ
To: address.ExecAddress(ty.PrivacyX), To: address.ExecAddress(ty.PrivacyX),
} }
cfg := mock.walletOp.GetAPI().GetConfig() cfg := mock.walletOp.GetAPI().GetConfig()
txSize := types.Size(tx) + types.SignatureSize txSize := types.Size(tx) + ty.SignatureSize
realFee := int64((txSize+1023)>>types.Size1Kshiftlen) * cfg.GetMinTxFeeRate() realFee := int64((txSize+1023)>>ty.Size1Kshiftlen) * cfg.GetMinTxFeeRate()
tx.Fee = realFee tx.Fee = realFee
tx.SetExpire(cfg, time.Hour) tx.SetExpire(cfg, time.Hour)
return tx return tx
......
...@@ -358,7 +358,7 @@ func Test_CreateTransaction(t *testing.T) { ...@@ -358,7 +358,7 @@ func Test_CreateTransaction(t *testing.T) {
req: &ty.ReqCreatePrivacyTx{ req: &ty.ReqCreatePrivacyTx{
AssetExec: "coins", AssetExec: "coins",
Tokenname: types.BTY, Tokenname: types.BTY,
Type: 1, ActionType: ty.ActionPublic2Privacy,
Amount: 100 * types.Coin, Amount: 100 * types.Coin,
From: testAddrs[0], From: testAddrs[0],
Pubkeypair: testPubkeyPairs[0], Pubkeypair: testPubkeyPairs[0],
...@@ -369,7 +369,7 @@ func Test_CreateTransaction(t *testing.T) { ...@@ -369,7 +369,7 @@ func Test_CreateTransaction(t *testing.T) {
req: &ty.ReqCreatePrivacyTx{ req: &ty.ReqCreatePrivacyTx{
AssetExec: "coins", AssetExec: "coins",
Tokenname: types.BTY, Tokenname: types.BTY,
Type: 2, ActionType: ty.ActionPrivacy2Privacy,
Amount: 10 * types.Coin, Amount: 10 * types.Coin,
From: testAddrs[0], From: testAddrs[0],
Pubkeypair: testPubkeyPairs[1], Pubkeypair: testPubkeyPairs[1],
...@@ -380,7 +380,7 @@ func Test_CreateTransaction(t *testing.T) { ...@@ -380,7 +380,7 @@ func Test_CreateTransaction(t *testing.T) {
req: &ty.ReqCreatePrivacyTx{ req: &ty.ReqCreatePrivacyTx{
AssetExec: "coins", AssetExec: "coins",
Tokenname: types.BTY, Tokenname: types.BTY,
Type: 3, ActionType: ty.ActionPrivacy2Public,
Amount: 10 * types.Coin, Amount: 10 * types.Coin,
From: testAddrs[0], From: testAddrs[0],
Pubkeypair: testPubkeyPairs[0], Pubkeypair: testPubkeyPairs[0],
......
...@@ -161,12 +161,12 @@ func parseViewSpendPubKeyPair(in string) (viewPubKey, spendPubKey []byte, err er ...@@ -161,12 +161,12 @@ func parseViewSpendPubKeyPair(in string) (viewPubKey, spendPubKey []byte, err er
//1.进行实际转账utxo //1.进行实际转账utxo
//2.进行找零转账utxo //2.进行找零转账utxo
func generateOuts(viewpubTo, spendpubto, viewpubChangeto, spendpubChangeto *[32]byte, transAmount, selectedAmount, fee int64) (*privacytypes.PrivacyOutput, error) { func generateOuts(viewpubTo, spendpubto, viewpubChangeto, spendpubChangeto *[32]byte, transAmount, selectedAmount, fee int64) (*privacytypes.PrivacyOutput, error) {
decomDigit := decomposeAmount2digits(transAmount, types.BTYDustThreshold) decomDigit := decomposeAmount2digits(transAmount, privacytypes.BTYDustThreshold)
//计算找零 //计算找零
changeAmount := selectedAmount - transAmount - fee changeAmount := selectedAmount - transAmount - fee
var decomChange []int64 var decomChange []int64
if 0 < changeAmount { if 0 < changeAmount {
decomChange = decomposeAmount2digits(changeAmount, types.BTYDustThreshold) decomChange = decomposeAmount2digits(changeAmount, privacytypes.BTYDustThreshold)
} }
bizlog.Info("generateOuts", "decompose digit for amount", selectedAmount-fee, "decomDigit", decomDigit) bizlog.Info("generateOuts", "decompose digit for amount", selectedAmount-fee, "decomDigit", decomDigit)
......
...@@ -9,6 +9,7 @@ import ( ...@@ -9,6 +9,7 @@ import (
"github.com/33cn/chain33/common" "github.com/33cn/chain33/common"
"github.com/33cn/chain33/types" "github.com/33cn/chain33/types"
pty "github.com/33cn/plugin/plugin/dapp/privacy/types"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
) )
...@@ -119,7 +120,7 @@ func Test_decomposeAmount2digits(t *testing.T) { ...@@ -119,7 +120,7 @@ func Test_decomposeAmount2digits(t *testing.T) {
}, },
{ {
amount: 62387455827, amount: 62387455827,
dustThreshold: types.BTYDustThreshold, dustThreshold: pty.BTYDustThreshold,
actual: []int64{87455827, 1e8, 2e8, 2e9, 5e10, 1e10}, actual: []int64{87455827, 1e8, 2e8, 2e9, 5e10, 1e10},
}, },
} }
......
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