Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
plugin
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
link33
plugin
Commits
25cf36cb
Commit
25cf36cb
authored
Jan 20, 2021
by
madengji
Committed by
vipwzw
Sep 18, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add proof
parent
0ccc4d97
Show whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
1309 additions
and
426 deletions
+1309
-426
authorize.go
plugin/dapp/mix/cmd/gnark/circuit/authorize/authorize.go
+4
-0
authorize_test.go
...in/dapp/mix/cmd/gnark/circuit/authorize/authorize_test.go
+1
-1
deposit.go
plugin/dapp/mix/cmd/gnark/circuit/deposit/deposit.go
+3
-3
withdraw.go
plugin/dapp/mix/cmd/gnark/circuit/withdraw/withdraw.go
+1
-0
mix.go
plugin/dapp/mix/commands/mix.go
+320
-21
committree.go
plugin/dapp/mix/executor/committree.go
+2
-6
config.go
plugin/dapp/mix/executor/config.go
+54
-32
deposit.go
plugin/dapp/mix/executor/deposit.go
+2
-4
kv.go
plugin/dapp/mix/executor/kv.go
+9
-3
mix.go
plugin/dapp/mix/executor/mix.go
+21
-0
query.go
plugin/dapp/mix/executor/query.go
+7
-1
mix.proto
plugin/dapp/mix/proto/mix.proto
+74
-17
rpc.go
plugin/dapp/mix/rpc/rpc.go
+45
-0
mix.go
plugin/dapp/mix/types/mix.go
+1
-0
mix.pb.go
plugin/dapp/mix/types/mix.pb.go
+739
-251
exec.go
plugin/dapp/mix/wallet/exec.go
+8
-0
mix.go
plugin/dapp/mix/wallet/mix.go
+10
-72
mixbizdb.go
plugin/dapp/mix/wallet/mixbizdb.go
+8
-12
mixbiztable.go
plugin/dapp/mix/wallet/mixbiztable.go
+0
-3
No files found.
plugin/dapp/mix/cmd/gnark/circuit/authorize/authorize.go
View file @
25cf36cb
...
@@ -29,6 +29,7 @@ private:
...
@@ -29,6 +29,7 @@ private:
authorizePriKey
authorizePriKey
spendFlag
spendFlag
noteRandom
noteRandom
noteHash
path...
path...
helper...
helper...
...
@@ -69,6 +70,9 @@ func NewAuth() *frontend.R1CS {
...
@@ -69,6 +70,9 @@ func NewAuth() *frontend.R1CS {
//通过merkle tree保证noteHash存在,即便return,auth都是null也是存在的,则可以不经过授权即可消费
//通过merkle tree保证noteHash存在,即便return,auth都是null也是存在的,则可以不经过授权即可消费
// specify note hash constraint
// specify note hash constraint
preImage
:=
mimc
.
Hash
(
&
circuit
,
spendPubKey
,
returnPubKey
,
authPubKey
,
spendAmount
,
noteRandom
)
preImage
:=
mimc
.
Hash
(
&
circuit
,
spendPubKey
,
returnPubKey
,
authPubKey
,
spendAmount
,
noteRandom
)
noteHash
:=
circuit
.
SECRET_INPUT
(
"noteHash"
)
circuit
.
MUSTBE_EQ
(
noteHash
,
preImage
)
util
.
MerkelPathPart
(
&
circuit
,
mimc
,
preImage
)
util
.
MerkelPathPart
(
&
circuit
,
mimc
,
preImage
)
r1cs
:=
circuit
.
ToR1CS
()
r1cs
:=
circuit
.
ToR1CS
()
...
...
plugin/dapp/mix/cmd/gnark/circuit/authorize/authorize_test.go
View file @
25cf36cb
...
@@ -47,8 +47,8 @@ func TestAuthorizeSpend(t *testing.T) {
...
@@ -47,8 +47,8 @@ func TestAuthorizeSpend(t *testing.T) {
good
.
Assign
(
backend
.
Secret
,
"authorizePriKey"
,
"17822967620457187568904804290291537271142779717280482398091401115827760898835"
)
good
.
Assign
(
backend
.
Secret
,
"authorizePriKey"
,
"17822967620457187568904804290291537271142779717280482398091401115827760898835"
)
good
.
Assign
(
backend
.
Secret
,
"spendFlag"
,
"1"
)
good
.
Assign
(
backend
.
Secret
,
"spendFlag"
,
"1"
)
good
.
Assign
(
backend
.
Secret
,
"noteRandom"
,
"2824204835"
)
good
.
Assign
(
backend
.
Secret
,
"noteRandom"
,
"2824204835"
)
good
.
Assign
(
backend
.
Secret
,
"noteHash"
,
"16308793397024662832064523892418908145900866571524124093537199035808550255649"
)
//nodehash="16308793397024662832064523892418908145900866571524124093537199035808550255649"
good
.
Assign
(
backend
.
Secret
,
"path1"
,
"19561523370160677851616596032513161448778901506614020103852017946679781620105"
)
good
.
Assign
(
backend
.
Secret
,
"path1"
,
"19561523370160677851616596032513161448778901506614020103852017946679781620105"
)
good
.
Assign
(
backend
.
Secret
,
"path2"
,
"13898857070666440684265042188056372750257678232709763835292910585848522658637"
)
good
.
Assign
(
backend
.
Secret
,
"path2"
,
"13898857070666440684265042188056372750257678232709763835292910585848522658637"
)
good
.
Assign
(
backend
.
Secret
,
"path3"
,
"15019169196974879571470243100379529757970866395477207575033769902587972032431"
)
good
.
Assign
(
backend
.
Secret
,
"path3"
,
"15019169196974879571470243100379529757970866395477207575033769902587972032431"
)
...
...
plugin/dapp/mix/cmd/gnark/circuit/deposit/deposit.go
View file @
25cf36cb
...
@@ -15,7 +15,7 @@ func main() {
...
@@ -15,7 +15,7 @@ func main() {
//spend commit hash the circuit implementing
//spend commit hash the circuit implementing
/*
/*
public:
public:
no
d
eHash
no
t
eHash
amount
amount
private:
private:
...
@@ -31,7 +31,7 @@ func NewDeposit() *frontend.R1CS {
...
@@ -31,7 +31,7 @@ func NewDeposit() *frontend.R1CS {
circuit
:=
frontend
.
New
()
circuit
:=
frontend
.
New
()
//公共输入以验证
//公共输入以验证
spendValue
:=
circuit
.
PUBLIC_INPUT
(
"amount"
)
amount
:=
circuit
.
PUBLIC_INPUT
(
"amount"
)
//spend pubkey
//spend pubkey
spendPubkey
:=
circuit
.
SECRET_INPUT
(
"spendPubKey"
)
spendPubkey
:=
circuit
.
SECRET_INPUT
(
"spendPubKey"
)
...
@@ -48,7 +48,7 @@ func NewDeposit() *frontend.R1CS {
...
@@ -48,7 +48,7 @@ func NewDeposit() *frontend.R1CS {
//preImage=hash(spendPubkey, returnPubkey,AuthPubkey,spendValue,noteRandom)
//preImage=hash(spendPubkey, returnPubkey,AuthPubkey,spendValue,noteRandom)
noteHash
:=
circuit
.
PUBLIC_INPUT
(
"noteHash"
)
noteHash
:=
circuit
.
PUBLIC_INPUT
(
"noteHash"
)
// specify note hash constraint
// specify note hash constraint
preImage
:=
mimc
.
Hash
(
&
circuit
,
spendPubkey
,
returnPubkey
,
authPubkey
,
spendValue
,
noteRandom
)
preImage
:=
mimc
.
Hash
(
&
circuit
,
spendPubkey
,
returnPubkey
,
authPubkey
,
amount
,
noteRandom
)
circuit
.
MUSTBE_EQ
(
noteHash
,
preImage
)
circuit
.
MUSTBE_EQ
(
noteHash
,
preImage
)
r1cs
:=
circuit
.
ToR1CS
()
r1cs
:=
circuit
.
ToR1CS
()
...
...
plugin/dapp/mix/cmd/gnark/circuit/withdraw/withdraw.go
View file @
25cf36cb
...
@@ -29,6 +29,7 @@ private:
...
@@ -29,6 +29,7 @@ private:
spendFlag
spendFlag
authorizeFlag
authorizeFlag
noteRandom
noteRandom
noteHash
path...
path...
helper...
helper...
...
...
plugin/dapp/mix/commands/mix.go
View file @
25cf36cb
...
@@ -113,7 +113,7 @@ func createDeposit(cmd *cobra.Command, args []string) {
...
@@ -113,7 +113,7 @@ func createDeposit(cmd *cobra.Command, args []string) {
paySecret
.
Epk
=
&
pubkey
paySecret
.
Epk
=
&
pubkey
var
group
mixTy
.
DHSecretGroup
var
group
mixTy
.
DHSecretGroup
group
.
Spender
=
&
paySecret
group
.
Payment
=
&
paySecret
payload
:=
&
mixTy
.
MixDepositAction
{}
payload
:=
&
mixTy
.
MixDepositAction
{}
payload
.
Amount
=
amount
payload
.
Amount
=
amount
...
@@ -272,13 +272,14 @@ func CreateConfigCmd() *cobra.Command {
...
@@ -272,13 +272,14 @@ func CreateConfigCmd() *cobra.Command {
}
}
cmd
.
AddCommand
(
mixConfigVerifyKeyParaCmd
())
cmd
.
AddCommand
(
mixConfigVerifyKeyParaCmd
())
cmd
.
AddCommand
(
mixConfigAuthPubKeyParaCmd
())
cmd
.
AddCommand
(
mixConfigAuthPubKeyParaCmd
())
cmd
.
AddCommand
(
mixConfigPaymentPubKeyParaCmd
())
return
cmd
return
cmd
}
}
func
mixConfigVerifyKeyParaCmd
()
*
cobra
.
Command
{
func
mixConfigVerifyKeyParaCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"v
erify
"
,
Use
:
"v
k
"
,
Short
:
"zk proof verify key config cmd"
,
Short
:
"zk proof verify key config cmd"
,
Run
:
createConfigVerify
,
Run
:
createConfigVerify
,
}
}
...
@@ -288,12 +289,7 @@ func mixConfigVerifyKeyParaCmd() *cobra.Command {
...
@@ -288,12 +289,7 @@ func mixConfigVerifyKeyParaCmd() *cobra.Command {
}
}
func
addVkConfigFlags
(
cmd
*
cobra
.
Command
)
{
func
addVkConfigFlags
(
cmd
*
cobra
.
Command
)
{
cmd
.
Flags
()
.
Uint32P
(
"action"
,
"a"
,
0
,
"0:add,1:delete"
)
cmd
.
Flags
()
.
Uint32P
(
"circuit"
,
"c"
,
0
,
"mix circuit type,0:deposit,1:withdraw,2:payinput,3:payoutput,4:authorize"
)
cmd
.
Flags
()
.
Uint32P
(
"curveid"
,
"i"
,
3
,
"zk curve id,1:bls377,2:bls381,3:bn256"
)
cmd
.
MarkFlagRequired
(
"curveid"
)
cmd
.
Flags
()
.
Uint32P
(
"circuit"
,
"c"
,
0
,
"mix circuit type,0:deposit,1:withdraw,2:spendinput,3:spendout,4:authorize"
)
cmd
.
MarkFlagRequired
(
"circuit"
)
cmd
.
MarkFlagRequired
(
"circuit"
)
cmd
.
Flags
()
.
StringP
(
"zkey"
,
"z"
,
""
,
"zk proof verify key"
)
cmd
.
Flags
()
.
StringP
(
"zkey"
,
"z"
,
""
,
"zk proof verify key"
)
...
@@ -303,19 +299,16 @@ func addVkConfigFlags(cmd *cobra.Command) {
...
@@ -303,19 +299,16 @@ func addVkConfigFlags(cmd *cobra.Command) {
func
createConfigVerify
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
func
createConfigVerify
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
paraName
,
_
:=
cmd
.
Flags
()
.
GetString
(
"paraName"
)
paraName
,
_
:=
cmd
.
Flags
()
.
GetString
(
"paraName"
)
action
,
_
:=
cmd
.
Flags
()
.
GetUint32
(
"action"
)
curveid
,
_
:=
cmd
.
Flags
()
.
GetUint32
(
"curveid"
)
circuit
,
_
:=
cmd
.
Flags
()
.
GetUint32
(
"circuit"
)
circuit
,
_
:=
cmd
.
Flags
()
.
GetUint32
(
"circuit"
)
key
,
_
:=
cmd
.
Flags
()
.
GetString
(
"zkey"
)
key
,
_
:=
cmd
.
Flags
()
.
GetString
(
"zkey"
)
var
zkVk
mixTy
.
ZkVerifyKey
var
zkVk
mixTy
.
ZkVerifyKey
zkVk
.
Value
=
key
zkVk
.
Value
=
key
zkVk
.
Type
=
mixTy
.
VerifyType
(
circuit
)
zkVk
.
Type
=
mixTy
.
VerifyType
(
circuit
)
zkVk
.
CurveId
=
mixTy
.
ZkCurveId
(
curveid
)
payload
:=
&
mixTy
.
MixConfigAction
{}
payload
:=
&
mixTy
.
MixConfigAction
{}
payload
.
Ty
=
mixTy
.
MixConfigType_VerifyKey
payload
.
Ty
=
mixTy
.
MixConfigType_VerifyKey
payload
.
Action
=
mixTy
.
MixConfigAct
(
action
)
payload
.
Action
=
mixTy
.
MixConfigAct
(
0
)
payload
.
Value
=
&
mixTy
.
MixConfigAction_VerifyKey
{
VerifyKey
:
&
zkVk
}
payload
.
Value
=
&
mixTy
.
MixConfigAction_VerifyKey
{
VerifyKey
:
&
zkVk
}
params
:=
&
rpctypes
.
CreateTxIn
{
params
:=
&
rpctypes
.
CreateTxIn
{
...
@@ -331,7 +324,7 @@ func createConfigVerify(cmd *cobra.Command, args []string) {
...
@@ -331,7 +324,7 @@ func createConfigVerify(cmd *cobra.Command, args []string) {
func
mixConfigAuthPubKeyParaCmd
()
*
cobra
.
Command
{
func
mixConfigAuthPubKeyParaCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"
pubkey
"
,
Use
:
"
auth
"
,
Short
:
"mix authorize pub key config cmd"
,
Short
:
"mix authorize pub key config cmd"
,
Run
:
createConfigPubKey
,
Run
:
createConfigPubKey
,
}
}
...
@@ -372,6 +365,52 @@ func createConfigPubKey(cmd *cobra.Command, args []string) {
...
@@ -372,6 +365,52 @@ func createConfigPubKey(cmd *cobra.Command, args []string) {
}
}
func
mixConfigPaymentPubKeyParaCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"pay"
,
Short
:
"mix payment pub key config cmd"
,
Run
:
createConfigPayPubKey
,
}
addPayPubKeyConfigFlags
(
cmd
)
return
cmd
}
func
addPayPubKeyConfigFlags
(
cmd
*
cobra
.
Command
)
{
cmd
.
Flags
()
.
StringP
(
"paying"
,
"p"
,
""
,
"paying key"
)
cmd
.
MarkFlagRequired
(
"paying"
)
cmd
.
Flags
()
.
StringP
(
"keyX"
,
"x"
,
""
,
"receiving pub key X"
)
cmd
.
MarkFlagRequired
(
"keyX"
)
cmd
.
Flags
()
.
StringP
(
"keyY"
,
"y"
,
""
,
"receiving pub key Y"
)
cmd
.
MarkFlagRequired
(
"keyY"
)
}
func
createConfigPayPubKey
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
paraName
,
_
:=
cmd
.
Flags
()
.
GetString
(
"paraName"
)
paying
,
_
:=
cmd
.
Flags
()
.
GetString
(
"paying"
)
keyx
,
_
:=
cmd
.
Flags
()
.
GetString
(
"keyX"
)
keyy
,
_
:=
cmd
.
Flags
()
.
GetString
(
"keyY"
)
payload
:=
&
mixTy
.
MixConfigAction
{}
payload
.
Ty
=
mixTy
.
MixConfigType_PaymentPubKey
receivingKey
:=
&
mixTy
.
PubKey
{
X
:
keyx
,
Y
:
keyy
}
payload
.
Value
=
&
mixTy
.
MixConfigAction_PaymentKey
{
PaymentKey
:
&
mixTy
.
PaymentKey
{
PayingKey
:
paying
,
ReceivingKey
:
receivingKey
}}
params
:=
&
rpctypes
.
CreateTxIn
{
Execer
:
getRealExecName
(
paraName
,
mixTy
.
MixX
),
ActionName
:
"Config"
,
Payload
:
types
.
MustPBToJSON
(
payload
),
}
rpcLaddr
,
_
:=
cmd
.
Flags
()
.
GetString
(
"rpc_laddr"
)
ctx
:=
jsonclient
.
NewRPCCtx
(
rpcLaddr
,
"Chain33.CreateTransaction"
,
params
,
nil
)
ctx
.
RunWithoutMarshal
()
}
func
QueryCmd
()
*
cobra
.
Command
{
func
QueryCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"query"
,
Use
:
"query"
,
...
@@ -381,7 +420,7 @@ func QueryCmd() *cobra.Command {
...
@@ -381,7 +420,7 @@ func QueryCmd() *cobra.Command {
cmd
.
AddCommand
(
GetTreeLeavesCmd
())
cmd
.
AddCommand
(
GetTreeLeavesCmd
())
cmd
.
AddCommand
(
GetTreeRootsCmd
())
cmd
.
AddCommand
(
GetTreeRootsCmd
())
cmd
.
AddCommand
(
ShowMixTxsCmd
())
cmd
.
AddCommand
(
ShowMixTxsCmd
())
cmd
.
AddCommand
(
ShowPaymentPubKeyCmd
())
return
cmd
return
cmd
}
}
...
@@ -542,6 +581,39 @@ func showMixTxs(cmd *cobra.Command, args []string) {
...
@@ -542,6 +581,39 @@ func showMixTxs(cmd *cobra.Command, args []string) {
ctx
.
Run
()
ctx
.
Run
()
}
}
// ShowProposalBoardCmd 显示提案查询信息
func
ShowPaymentPubKeyCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"paykey"
,
Short
:
"show addr's payment pub key info"
,
Run
:
showPayment
,
}
addShowPaymentflags
(
cmd
)
return
cmd
}
func
addShowPaymentflags
(
cmd
*
cobra
.
Command
)
{
cmd
.
Flags
()
.
StringP
(
"addr"
,
"s"
,
""
,
"mix tx hash"
)
cmd
.
MarkFlagRequired
(
"addr"
)
}
func
showPayment
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
rpcLaddr
,
_
:=
cmd
.
Flags
()
.
GetString
(
"rpc_laddr"
)
addr
,
_
:=
cmd
.
Flags
()
.
GetString
(
"addr"
)
var
params
rpctypes
.
Query4Jrpc
params
.
Execer
=
mixTy
.
MixX
params
.
FuncName
=
"PaymentPubKey"
params
.
Payload
=
types
.
MustPBToJSON
(
&
types
.
ReqString
{
Data
:
addr
})
var
resp
mixTy
.
PaymentKey
ctx
:=
jsonclient
.
NewRPCCtx
(
rpcLaddr
,
"Chain33.Query"
,
params
,
&
resp
)
ctx
.
Run
()
}
func
WalletCmd
()
*
cobra
.
Command
{
func
WalletCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"wallet"
,
Use
:
"wallet"
,
...
@@ -552,9 +624,8 @@ func WalletCmd() *cobra.Command {
...
@@ -552,9 +624,8 @@ func WalletCmd() *cobra.Command {
cmd
.
AddCommand
(
RescanCmd
())
cmd
.
AddCommand
(
RescanCmd
())
cmd
.
AddCommand
(
RescanStatusCmd
())
cmd
.
AddCommand
(
RescanStatusCmd
())
cmd
.
AddCommand
(
EnableCmd
())
cmd
.
AddCommand
(
EnableCmd
())
cmd
.
AddCommand
(
EncodeSecretDataCmd
())
cmd
.
AddCommand
(
SecretCmd
())
cmd
.
AddCommand
(
EncryptSecretDataCmd
())
cmd
.
AddCommand
(
ProofCmd
())
cmd
.
AddCommand
(
DecryptSecretDataCmd
())
return
cmd
return
cmd
}
}
...
@@ -710,11 +781,23 @@ func enablePrivacy(cmd *cobra.Command, args []string) {
...
@@ -710,11 +781,23 @@ func enablePrivacy(cmd *cobra.Command, args []string) {
ctx
.
Run
()
ctx
.
Run
()
}
}
// ShowAccountPrivacyInfo get para chain status by height
func
SecretCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"secret"
,
Short
:
"note secret cmd"
,
}
cmd
.
AddCommand
(
EncodeSecretDataCmd
())
cmd
.
AddCommand
(
EncryptSecretDataCmd
())
cmd
.
AddCommand
(
DecryptSecretDataCmd
())
return
cmd
}
// EncodeSecretDataCmd get para chain status by height
func
EncodeSecretDataCmd
()
*
cobra
.
Command
{
func
EncodeSecretDataCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"
encode
"
,
Use
:
"
raw
"
,
Short
:
"
encode
secret data"
,
Short
:
"
raw
secret data"
,
Run
:
encodeSecret
,
Run
:
encodeSecret
,
}
}
encodeSecretCmdFlags
(
cmd
)
encodeSecretCmdFlags
(
cmd
)
...
@@ -729,7 +812,7 @@ func encodeSecretCmdFlags(cmd *cobra.Command) {
...
@@ -729,7 +812,7 @@ func encodeSecretCmdFlags(cmd *cobra.Command) {
cmd
.
Flags
()
.
StringP
(
"authorize"
,
"a"
,
""
,
"authorize key"
)
cmd
.
Flags
()
.
StringP
(
"authorize"
,
"a"
,
""
,
"authorize key"
)
cmd
.
Flags
()
.
StringP
(
"amount"
,
"m"
,
""
,
"amount
with 1e8
"
)
cmd
.
Flags
()
.
StringP
(
"amount"
,
"m"
,
""
,
"amount"
)
cmd
.
MarkFlagRequired
(
"amount"
)
cmd
.
MarkFlagRequired
(
"amount"
)
}
}
...
@@ -840,3 +923,219 @@ func decryptSecret(cmd *cobra.Command, args []string) {
...
@@ -840,3 +923,219 @@ func decryptSecret(cmd *cobra.Command, args []string) {
ctx
:=
jsonclient
.
NewRPCCtx
(
rpcLaddr
,
"mix.DecryptSecretData"
,
req
,
&
res
)
ctx
:=
jsonclient
.
NewRPCCtx
(
rpcLaddr
,
"mix.DecryptSecretData"
,
req
,
&
res
)
ctx
.
Run
()
ctx
.
Run
()
}
}
func
ProofCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"proof"
,
Short
:
"circuit proof inputs"
,
}
cmd
.
AddCommand
(
DepositInputsCmd
())
cmd
.
AddCommand
(
PayInInputsCmd
())
cmd
.
AddCommand
(
PayOutInputsCmd
())
cmd
.
AddCommand
(
WithdrawInputsCmd
())
cmd
.
AddCommand
(
AuthInputsCmd
())
return
cmd
}
// DepositInputsCmd get para chain status by height
func
DepositInputsCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"deposit"
,
Short
:
"one key get deposit input data"
,
Run
:
depositSecret
,
}
depositSecretCmdFlags
(
cmd
)
return
cmd
}
func
depositSecretCmdFlags
(
cmd
*
cobra
.
Command
)
{
cmd
.
Flags
()
.
StringP
(
"payment"
,
"p"
,
""
,
"payment addr"
)
cmd
.
MarkFlagRequired
(
"payment"
)
cmd
.
Flags
()
.
StringP
(
"return"
,
"r"
,
""
,
"return addr"
)
cmd
.
Flags
()
.
StringP
(
"authorize"
,
"a"
,
""
,
"authorize addr"
)
cmd
.
Flags
()
.
StringP
(
"amount"
,
"m"
,
""
,
"amount"
)
cmd
.
MarkFlagRequired
(
"amount"
)
}
func
depositSecret
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
rpcLaddr
,
_
:=
cmd
.
Flags
()
.
GetString
(
"rpc_laddr"
)
payment
,
_
:=
cmd
.
Flags
()
.
GetString
(
"payment"
)
returnKey
,
_
:=
cmd
.
Flags
()
.
GetString
(
"return"
)
authorize
,
_
:=
cmd
.
Flags
()
.
GetString
(
"authorize"
)
amount
,
_
:=
cmd
.
Flags
()
.
GetString
(
"amount"
)
req
:=
&
mixTy
.
DepositProofReq
{
PaymentAddr
:
payment
,
ReturnAddr
:
returnKey
,
AuthorizeAddr
:
authorize
,
Amount
:
amount
,
}
var
res
mixTy
.
DepositProofResp
ctx
:=
jsonclient
.
NewRPCCtx
(
rpcLaddr
,
"mix.DepositProof"
,
req
,
&
res
)
ctx
.
Run
()
}
// DepositInputsCmd get para chain status by height
func
PayInInputsCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"payin"
,
Short
:
"one key get pay input data"
,
Run
:
payInSecret
,
}
payInSecretCmdFlags
(
cmd
)
return
cmd
}
func
payInSecretCmdFlags
(
cmd
*
cobra
.
Command
)
{
cmd
.
Flags
()
.
StringP
(
"payment"
,
"p"
,
""
,
"payment addr"
)
cmd
.
MarkFlagRequired
(
"payment"
)
cmd
.
Flags
()
.
StringP
(
"return"
,
"r"
,
""
,
"return addr"
)
cmd
.
Flags
()
.
StringP
(
"authorize"
,
"a"
,
""
,
"authorize addr"
)
cmd
.
Flags
()
.
StringP
(
"amount"
,
"m"
,
""
,
"amount"
)
cmd
.
MarkFlagRequired
(
"amount"
)
}
func
payInSecret
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
rpcLaddr
,
_
:=
cmd
.
Flags
()
.
GetString
(
"rpc_laddr"
)
payment
,
_
:=
cmd
.
Flags
()
.
GetString
(
"payment"
)
returnKey
,
_
:=
cmd
.
Flags
()
.
GetString
(
"return"
)
authorize
,
_
:=
cmd
.
Flags
()
.
GetString
(
"authorize"
)
amount
,
_
:=
cmd
.
Flags
()
.
GetString
(
"amount"
)
req
:=
&
mixTy
.
DepositProofReq
{
PaymentAddr
:
payment
,
ReturnAddr
:
returnKey
,
AuthorizeAddr
:
authorize
,
Amount
:
amount
,
}
var
res
mixTy
.
DHSecretGroup
ctx
:=
jsonclient
.
NewRPCCtx
(
rpcLaddr
,
"mix.PayInProof"
,
req
,
&
res
)
ctx
.
Run
()
}
// DepositInputsCmd get para chain status by height
func
PayOutInputsCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"payout"
,
Short
:
"one key get payout input data"
,
Run
:
payOutSecret
,
}
payOutSecretCmdFlags
(
cmd
)
return
cmd
}
func
payOutSecretCmdFlags
(
cmd
*
cobra
.
Command
)
{
cmd
.
Flags
()
.
StringP
(
"payment"
,
"p"
,
""
,
"payment addr"
)
cmd
.
MarkFlagRequired
(
"payment"
)
cmd
.
Flags
()
.
StringP
(
"return"
,
"r"
,
""
,
"return addr"
)
cmd
.
Flags
()
.
StringP
(
"authorize"
,
"a"
,
""
,
"authorize addr"
)
cmd
.
Flags
()
.
StringP
(
"amount"
,
"m"
,
""
,
"amount"
)
cmd
.
MarkFlagRequired
(
"amount"
)
}
func
payOutSecret
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
rpcLaddr
,
_
:=
cmd
.
Flags
()
.
GetString
(
"rpc_laddr"
)
payment
,
_
:=
cmd
.
Flags
()
.
GetString
(
"payment"
)
returnKey
,
_
:=
cmd
.
Flags
()
.
GetString
(
"return"
)
authorize
,
_
:=
cmd
.
Flags
()
.
GetString
(
"authorize"
)
amount
,
_
:=
cmd
.
Flags
()
.
GetString
(
"amount"
)
req
:=
&
mixTy
.
DepositProofReq
{
PaymentAddr
:
payment
,
ReturnAddr
:
returnKey
,
AuthorizeAddr
:
authorize
,
Amount
:
amount
,
}
var
res
mixTy
.
DepositProofResp
ctx
:=
jsonclient
.
NewRPCCtx
(
rpcLaddr
,
"mix.PayOutProof"
,
req
,
&
res
)
ctx
.
Run
()
}
// DepositInputsCmd get para chain status by height
func
WithdrawInputsCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"withdraw"
,
Short
:
"one key get withdraw proof input data"
,
Run
:
withdrawSecret
,
}
withdrawSecretCmdFlags
(
cmd
)
return
cmd
}
func
withdrawSecretCmdFlags
(
cmd
*
cobra
.
Command
)
{
cmd
.
Flags
()
.
StringP
(
"noteHash"
,
"n"
,
""
,
"note hash to spend"
)
cmd
.
MarkFlagRequired
(
"noteHash"
)
}
func
withdrawSecret
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
rpcLaddr
,
_
:=
cmd
.
Flags
()
.
GetString
(
"rpc_laddr"
)
noteHash
,
_
:=
cmd
.
Flags
()
.
GetString
(
"noteHash"
)
req
:=
&
mixTy
.
WithdrawProofReq
{
NoteHash
:
noteHash
,
}
var
res
mixTy
.
WithdrawProofResp
ctx
:=
jsonclient
.
NewRPCCtx
(
rpcLaddr
,
"mix.WithdrawProof"
,
req
,
&
res
)
ctx
.
Run
()
}
// DepositInputsCmd get para chain status by height
func
AuthInputsCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"auth"
,
Short
:
"one key get authorize input data"
,
Run
:
authSecret
,
}
authSecretCmdFlags
(
cmd
)
return
cmd
}
func
authSecretCmdFlags
(
cmd
*
cobra
.
Command
)
{
cmd
.
Flags
()
.
StringP
(
"payment"
,
"p"
,
""
,
"payment addr"
)
cmd
.
MarkFlagRequired
(
"payment"
)
cmd
.
Flags
()
.
StringP
(
"return"
,
"r"
,
""
,
"return addr"
)
cmd
.
Flags
()
.
StringP
(
"authorize"
,
"a"
,
""
,
"authorize addr"
)
cmd
.
Flags
()
.
StringP
(
"amount"
,
"m"
,
""
,
"amount"
)
cmd
.
MarkFlagRequired
(
"amount"
)
}
func
authSecret
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
rpcLaddr
,
_
:=
cmd
.
Flags
()
.
GetString
(
"rpc_laddr"
)
payment
,
_
:=
cmd
.
Flags
()
.
GetString
(
"payment"
)
returnKey
,
_
:=
cmd
.
Flags
()
.
GetString
(
"return"
)
authorize
,
_
:=
cmd
.
Flags
()
.
GetString
(
"authorize"
)
amount
,
_
:=
cmd
.
Flags
()
.
GetString
(
"amount"
)
req
:=
&
mixTy
.
DepositProofReq
{
PaymentAddr
:
payment
,
ReturnAddr
:
returnKey
,
AuthorizeAddr
:
authorize
,
Amount
:
amount
,
}
var
res
mixTy
.
DHSecretGroup
ctx
:=
jsonclient
.
NewRPCCtx
(
rpcLaddr
,
"mix.AuthProof"
,
req
,
&
res
)
ctx
.
Run
()
}
plugin/dapp/mix/executor/committree.go
View file @
25cf36cb
...
@@ -6,9 +6,6 @@ package executor
...
@@ -6,9 +6,6 @@ package executor
import
(
import
(
"bytes"
"bytes"
"strconv"
"strings"
dbm
"github.com/33cn/chain33/common/db"
dbm
"github.com/33cn/chain33/common/db"
"github.com/33cn/chain33/types"
"github.com/33cn/chain33/types"
"github.com/33cn/plugin/plugin/dapp/mix/executor/merkletree"
"github.com/33cn/plugin/plugin/dapp/mix/executor/merkletree"
...
@@ -235,11 +232,10 @@ func getProveData(targetLeaf []byte, leaves [][]byte) (*mixTy.CommitTreeProve, e
...
@@ -235,11 +232,10 @@ func getProveData(targetLeaf []byte, leaves [][]byte) (*mixTy.CommitTreeProve, e
}
}
helpers
:=
merkletree
.
GenerateProofHelper
(
proofSet
,
proofIndex
,
num
)
helpers
:=
merkletree
.
GenerateProofHelper
(
proofSet
,
proofIndex
,
num
)
var
helpStr
[]
string
for
_
,
i
:=
range
helpers
{
for
_
,
i
:=
range
helpers
{
helpStr
=
append
(
helpStr
,
strconv
.
Itoa
(
i
))
prove
.
Helpers
=
append
(
prove
.
Helpers
,
uint32
(
i
))
}
}
prove
.
Helpers
=
strings
.
Join
(
helpStr
,
","
)
return
&
prove
,
nil
return
&
prove
,
nil
...
...
plugin/dapp/mix/executor/config.go
View file @
25cf36cb
...
@@ -31,24 +31,22 @@ func (a *action) Config(config *mixTy.MixConfigAction) (*types.Receipt, error) {
...
@@ -31,24 +31,22 @@ func (a *action) Config(config *mixTy.MixConfigAction) (*types.Receipt, error) {
}
}
switch
config
.
Ty
{
switch
config
.
Ty
{
case
mixTy
.
MixConfigType_VerifyKey
:
case
mixTy
.
MixConfigType_VerifyKey
:
if
config
.
Action
==
mixTy
.
MixConfigAct_Add
{
return
a
.
ConfigAddVerifyKey
(
config
.
GetVerifyKey
())
return
a
.
ConfigAddVerifyKey
(
config
.
GetVerifyKey
())
}
else
{
return
a
.
ConfigDeleteVerifyKey
(
config
.
GetVerifyKey
())
}
case
mixTy
.
MixConfigType_AuthPubKey
:
case
mixTy
.
MixConfigType_AuthPubKey
:
if
config
.
Action
==
mixTy
.
MixConfigAct_Add
{
if
config
.
Action
==
mixTy
.
MixConfigAct_Add
{
return
a
.
ConfigAddAuthPubKey
(
config
.
GetAuthPk
())
return
a
.
ConfigAddAuthPubKey
(
config
.
GetAuthPk
())
}
else
{
}
else
{
return
a
.
ConfigDeleteAuthPubKey
(
config
.
GetAuthPk
())
return
a
.
ConfigDeleteAuthPubKey
(
config
.
GetAuthPk
())
}
}
case
mixTy
.
MixConfigType_PaymentPubKey
:
return
a
.
ConfigPaymentPubKey
(
config
.
GetPaymentKey
())
}
}
return
nil
,
types
.
ErrNotFound
return
nil
,
errors
.
Wrapf
(
types
.
ErrNotFound
,
"ty=%d"
,
config
.
Ty
)
}
}
func
makeConfigVerifyKeyReceipt
(
data
*
mixTy
.
ZkVerifyKeys
)
*
types
.
Receipt
{
func
makeConfigVerifyKeyReceipt
(
data
*
mixTy
.
ZkVerifyKeys
,
ty
int32
)
*
types
.
Receipt
{
key
:=
getVerifyKeysKey
()
key
:=
getVerifyKeysKey
(
ty
)
return
&
types
.
Receipt
{
return
&
types
.
Receipt
{
Ty
:
types
.
ExecOk
,
Ty
:
types
.
ExecOk
,
KV
:
[]
*
types
.
KeyValue
{
KV
:
[]
*
types
.
KeyValue
{
...
@@ -61,8 +59,8 @@ func makeConfigVerifyKeyReceipt(data *mixTy.ZkVerifyKeys) *types.Receipt {
...
@@ -61,8 +59,8 @@ func makeConfigVerifyKeyReceipt(data *mixTy.ZkVerifyKeys) *types.Receipt {
}
}
func
getVerifyKeys
(
db
dbm
.
KV
)
(
*
mixTy
.
ZkVerifyKeys
,
error
)
{
func
getVerifyKeys
(
db
dbm
.
KV
,
ty
int32
)
(
*
mixTy
.
ZkVerifyKeys
,
error
)
{
key
:=
getVerifyKeysKey
()
key
:=
getVerifyKeysKey
(
ty
)
v
,
err
:=
db
.
Get
(
key
)
v
,
err
:=
db
.
Get
(
key
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
errors
.
Wrapf
(
err
,
"get db verify key"
)
return
nil
,
errors
.
Wrapf
(
err
,
"get db verify key"
)
...
@@ -77,36 +75,19 @@ func getVerifyKeys(db dbm.KV) (*mixTy.ZkVerifyKeys, error) {
...
@@ -77,36 +75,19 @@ func getVerifyKeys(db dbm.KV) (*mixTy.ZkVerifyKeys, error) {
}
}
func
(
a
*
action
)
ConfigAddVerifyKey
(
newKey
*
mixTy
.
ZkVerifyKey
)
(
*
types
.
Receipt
,
error
)
{
func
(
a
*
action
)
ConfigAddVerifyKey
(
newKey
*
mixTy
.
ZkVerifyKey
)
(
*
types
.
Receipt
,
error
)
{
keys
,
err
:=
getVerifyKeys
(
a
.
db
)
keys
,
err
:=
getVerifyKeys
(
a
.
db
,
int32
(
newKey
.
Type
)
)
if
isNotFound
(
errors
.
Cause
(
err
))
{
if
isNotFound
(
errors
.
Cause
(
err
))
{
keys
:=
&
mixTy
.
ZkVerifyKeys
{}
keys
:=
&
mixTy
.
ZkVerifyKeys
{}
keys
.
Data
=
append
(
keys
.
Data
,
newKey
)
keys
.
Data
=
append
(
keys
.
Data
,
newKey
)
return
makeConfigVerifyKeyReceipt
(
keys
),
nil
return
makeConfigVerifyKeyReceipt
(
keys
,
int32
(
newKey
.
Type
)),
nil
}
if
err
!=
nil
{
return
nil
,
err
}
}
keys
.
Data
=
append
(
keys
.
Data
,
newKey
)
return
makeConfigVerifyKeyReceipt
(
keys
),
nil
}
func
(
a
*
action
)
ConfigDeleteVerifyKey
(
config
*
mixTy
.
ZkVerifyKey
)
(
*
types
.
Receipt
,
error
)
{
keys
,
err
:=
getVerifyKeys
(
a
.
db
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
ors
.
Wrapf
(
err
,
"AddVerifyKey,ty=%d"
,
newKey
.
Type
)
}
}
//逆序保存keys,保证新的key先遍历到
keys
.
Data
=
[]
*
mixTy
.
ZkVerifyKey
{
newKey
,
keys
.
Data
[
0
]}
return
makeConfigVerifyKeyReceipt
(
keys
,
int32
(
newKey
.
Type
)),
nil
var
newKeys
mixTy
.
ZkVerifyKeys
for
_
,
v
:=
range
keys
.
Data
{
//不同类型的vk 肯定不同,
if
v
.
CurveId
==
config
.
CurveId
&&
v
.
Value
==
config
.
Value
{
continue
}
newKeys
.
Data
=
append
(
newKeys
.
Data
,
v
)
}
return
makeConfigVerifyKeyReceipt
(
&
newKeys
),
nil
}
}
func
makeConfigAuthKeyReceipt
(
data
*
mixTy
.
AuthPubKeys
)
*
types
.
Receipt
{
func
makeConfigAuthKeyReceipt
(
data
*
mixTy
.
AuthPubKeys
)
*
types
.
Receipt
{
...
@@ -169,3 +150,44 @@ func (a *action) ConfigDeleteAuthPubKey(key string) (*types.Receipt, error) {
...
@@ -169,3 +150,44 @@ func (a *action) ConfigDeleteAuthPubKey(key string) (*types.Receipt, error) {
return
makeConfigAuthKeyReceipt
(
&
newKeys
),
nil
return
makeConfigAuthKeyReceipt
(
&
newKeys
),
nil
}
}
func
makeConfigPaymentKeyReceipt
(
data
*
mixTy
.
PaymentKey
)
*
types
.
Receipt
{
key
:=
getPaymentPubKey
(
data
.
Addr
)
return
&
types
.
Receipt
{
Ty
:
types
.
ExecOk
,
KV
:
[]
*
types
.
KeyValue
{
{
Key
:
key
,
Value
:
types
.
Encode
(
data
)},
},
Logs
:
[]
*
types
.
ReceiptLog
{
{
Ty
:
mixTy
.
TyLogMixConfigPaymentKey
,
Log
:
types
.
Encode
(
data
)},
},
}
}
func
GetPaymentPubKey
(
db
dbm
.
KV
,
addr
string
)
(
*
mixTy
.
PaymentKey
,
error
)
{
key
:=
getPaymentPubKey
(
addr
)
v
,
err
:=
db
.
Get
(
key
)
if
err
!=
nil
{
return
nil
,
errors
.
Wrapf
(
err
,
"get db"
)
}
var
keys
mixTy
.
PaymentKey
err
=
types
.
Decode
(
v
,
&
keys
)
if
err
!=
nil
{
return
nil
,
errors
.
Wrapf
(
err
,
"decode db key"
)
}
return
&
keys
,
nil
}
func
(
a
*
action
)
ConfigPaymentPubKey
(
paykey
*
mixTy
.
PaymentKey
)
(
*
types
.
Receipt
,
error
)
{
if
paykey
==
nil
||
len
(
paykey
.
PayingKey
)
==
0
||
len
(
paykey
.
ReceivingKey
.
X
)
==
0
||
len
(
paykey
.
ReceivingKey
.
Y
)
==
0
{
return
nil
,
errors
.
Wrapf
(
types
.
ErrInvalidParam
,
"pubkey=%v"
,
paykey
)
}
//直接覆盖
return
makeConfigPaymentKeyReceipt
(
&
mixTy
.
PaymentKey
{
Addr
:
a
.
fromaddr
,
PayingKey
:
paykey
.
PayingKey
,
ReceivingKey
:
paykey
.
ReceivingKey
}),
nil
}
plugin/dapp/mix/executor/deposit.go
View file @
25cf36cb
...
@@ -24,15 +24,14 @@ func makeNullifierSetReceipt(hash string, data proto.Message) *types.Receipt {
...
@@ -24,15 +24,14 @@ func makeNullifierSetReceipt(hash string, data proto.Message) *types.Receipt {
}
}
func
zkProofVerify
(
db
dbm
.
KV
,
proof
*
mixTy
.
ZkProofInfo
,
verifyT
y
mixTy
.
VerifyType
)
error
{
func
zkProofVerify
(
db
dbm
.
KV
,
proof
*
mixTy
.
ZkProofInfo
,
t
y
mixTy
.
VerifyType
)
error
{
keys
,
err
:=
getVerifyKeys
(
db
)
keys
,
err
:=
getVerifyKeys
(
db
,
int32
(
ty
)
)
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
var
pass
bool
var
pass
bool
for
_
,
verifyKey
:=
range
keys
.
Data
{
for
_
,
verifyKey
:=
range
keys
.
Data
{
if
verifyKey
.
Type
==
verifyTy
{
ok
,
err
:=
zksnark
.
Verify
(
verifyKey
.
Value
,
proof
.
Proof
,
proof
.
PublicInput
)
ok
,
err
:=
zksnark
.
Verify
(
verifyKey
.
Value
,
proof
.
Proof
,
proof
.
PublicInput
)
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
...
@@ -43,7 +42,6 @@ func zkProofVerify(db dbm.KV, proof *mixTy.ZkProofInfo, verifyTy mixTy.VerifyTyp
...
@@ -43,7 +42,6 @@ func zkProofVerify(db dbm.KV, proof *mixTy.ZkProofInfo, verifyTy mixTy.VerifyTyp
pass
=
true
pass
=
true
break
break
}
}
}
if
!
pass
{
if
!
pass
{
return
errors
.
Wrap
(
mixTy
.
ErrZkVerifyFail
,
"verify"
)
return
errors
.
Wrap
(
mixTy
.
ErrZkVerifyFail
,
"verify"
)
}
}
...
...
plugin/dapp/mix/executor/kv.go
View file @
25cf36cb
...
@@ -11,6 +11,7 @@ import (
...
@@ -11,6 +11,7 @@ import (
var
(
var
(
verifyKeys
string
verifyKeys
string
authPubKeys
string
authPubKeys
string
paymentPubKey
string
commitTreeArchiveRoots
string
commitTreeArchiveRoots
string
commitTreeCurrentRoots
string
commitTreeCurrentRoots
string
commitTreeCurrentLeaves
string
commitTreeCurrentLeaves
string
...
@@ -23,6 +24,7 @@ var (
...
@@ -23,6 +24,7 @@ var (
func
setPrefix
()
{
func
setPrefix
()
{
verifyKeys
=
"mavl-mix-verify-keys-"
verifyKeys
=
"mavl-mix-verify-keys-"
authPubKeys
=
"mavl-mix-auth-pubkeys-"
authPubKeys
=
"mavl-mix-auth-pubkeys-"
paymentPubKey
=
"mavl-mix-payment-pubkey-"
commitTreeArchiveRoots
=
"mavl-mix-commitTree-roots-archive-"
commitTreeArchiveRoots
=
"mavl-mix-commitTree-roots-archive-"
commitTreeCurrentRoots
=
"mavl-mix-commitTree-current-roots"
commitTreeCurrentRoots
=
"mavl-mix-commitTree-current-roots"
commitTreeCurrentLeaves
=
"mavl-mix-commitTree-current-leaves-"
commitTreeCurrentLeaves
=
"mavl-mix-commitTree-current-leaves-"
...
@@ -35,14 +37,18 @@ func setPrefix() {
...
@@ -35,14 +37,18 @@ func setPrefix() {
}
}
//support multi version verify parameter setting
//support multi version verify parameter setting
func
getVerifyKeysKey
()
[]
byte
{
func
getVerifyKeysKey
(
ty
int32
)
[]
byte
{
return
[]
byte
(
fmt
.
Sprintf
(
verifyKeys
))
return
[]
byte
(
fmt
.
Sprintf
(
verifyKeys
+
"%d"
,
ty
))
}
}
func
getAuthPubKeysKey
()
[]
byte
{
func
getAuthPubKeysKey
()
[]
byte
{
return
[]
byte
(
fmt
.
Sprintf
(
authPubKeys
))
return
[]
byte
(
fmt
.
Sprintf
(
authPubKeys
))
}
}
func
getPaymentPubKey
(
addr
string
)
[]
byte
{
return
[]
byte
(
fmt
.
Sprintf
(
paymentPubKey
+
"%s"
,
addr
))
}
func
calcCommitTreeArchiveRootsKey
()
[]
byte
{
func
calcCommitTreeArchiveRootsKey
()
[]
byte
{
return
[]
byte
(
fmt
.
Sprintf
(
commitTreeArchiveRoots
))
return
[]
byte
(
fmt
.
Sprintf
(
commitTreeArchiveRoots
))
}
}
...
@@ -56,7 +62,7 @@ func calcCurrentCommitLeavesKey() []byte {
...
@@ -56,7 +62,7 @@ func calcCurrentCommitLeavesKey() []byte {
}
}
func
calcCommitTreeRootLeaves
(
rootHash
string
)
[]
byte
{
func
calcCommitTreeRootLeaves
(
rootHash
string
)
[]
byte
{
return
[]
byte
(
fmt
.
Sprintf
(
commitTreeRootLeaves
+
"s"
,
rootHash
))
return
[]
byte
(
fmt
.
Sprintf
(
commitTreeRootLeaves
+
"
%
s"
,
rootHash
))
}
}
func
calcAuthorizeHashKey
(
hash
string
)
[]
byte
{
func
calcAuthorizeHashKey
(
hash
string
)
[]
byte
{
...
...
plugin/dapp/mix/executor/mix.go
View file @
25cf36cb
...
@@ -71,3 +71,24 @@ func (m *Mix) CheckTx(tx *types.Transaction, index int) error {
...
@@ -71,3 +71,24 @@ func (m *Mix) CheckTx(tx *types.Transaction, index int) error {
return
nil
return
nil
}
}
// CheckTx check transaction
func
(
m
*
Mix
)
CheckTx
(
tx
*
types
.
Transaction
,
index
int
)
error
{
action
:=
new
(
mixTy
.
MixAction
)
if
err
:=
types
.
Decode
(
tx
.
Payload
,
action
);
err
!=
nil
{
mlog
.
Error
(
"CheckTx decode"
,
"err"
,
err
)
return
err
}
if
action
.
Ty
!=
mixTy
.
MixActionTransfer
{
// mix隐私交易,只私对私需要特殊签名验证
return
m
.
DriverBase
.
CheckTx
(
tx
,
index
)
}
_
,
_
,
err
:=
MixTransferInfoVerify
(
m
.
GetStateDB
(),
action
.
GetTransfer
())
if
err
!=
nil
{
mlog
.
Error
(
"checkTx"
,
"err"
,
err
)
return
err
}
return
nil
}
plugin/dapp/mix/executor/query.go
View file @
25cf36cb
...
@@ -10,7 +10,7 @@ import (
...
@@ -10,7 +10,7 @@ import (
mixTy
"github.com/33cn/plugin/plugin/dapp/mix/types"
mixTy
"github.com/33cn/plugin/plugin/dapp/mix/types"
)
)
// Query_GetT
itle query paracross title
// Query_GetT
reePath 根据leaf获取path 证明和roothash
func
(
m
*
Mix
)
Query_GetTreePath
(
in
*
mixTy
.
TreeInfoReq
)
(
types
.
Message
,
error
)
{
func
(
m
*
Mix
)
Query_GetTreePath
(
in
*
mixTy
.
TreeInfoReq
)
(
types
.
Message
,
error
)
{
if
in
==
nil
{
if
in
==
nil
{
return
nil
,
types
.
ErrInvalidParam
return
nil
,
types
.
ErrInvalidParam
...
@@ -60,3 +60,9 @@ func (m *Mix) Query_GetRootList(in *types.ReqNil) (types.Message, error) {
...
@@ -60,3 +60,9 @@ func (m *Mix) Query_GetRootList(in *types.ReqNil) (types.Message, error) {
func
(
m
*
Mix
)
Query_ListMixTxs
(
in
*
mixTy
.
MixTxListReq
)
(
types
.
Message
,
error
)
{
func
(
m
*
Mix
)
Query_ListMixTxs
(
in
*
mixTy
.
MixTxListReq
)
(
types
.
Message
,
error
)
{
return
m
.
listMixInfos
(
in
)
return
m
.
listMixInfos
(
in
)
}
}
// Query_PaymentPubKey 批量查询
func
(
m
*
Mix
)
Query_PaymentPubKey
(
addr
*
types
.
ReqString
)
(
types
.
Message
,
error
)
{
return
GetPaymentPubKey
(
m
.
GetStateDB
(),
addr
.
Data
)
}
plugin/dapp/mix/proto/mix.proto
View file @
25cf36cb
...
@@ -15,18 +15,11 @@ enum VerifyType{
...
@@ -15,18 +15,11 @@ enum VerifyType{
AUTHORIZE
=
4
;
AUTHORIZE
=
4
;
}
}
//区分zk 所选取的曲线,需要和gnark保持一致
enum
ZkCurveId
{
UNKNOWN
=
0
;
BLS377
=
1
;
BLS381
=
2
;
BN256
=
3
;
}
message
ZkVerifyKey
{
message
ZkVerifyKey
{
ZkCurveId
curveId
=
1
;
VerifyType
type
=
1
;
VerifyType
typ
e
=
2
;
string
valu
e
=
2
;
string
value
=
3
;
}
}
message
ZkVerifyKeys
{
message
ZkVerifyKeys
{
...
@@ -37,11 +30,18 @@ message AuthPubKeys{
...
@@ -37,11 +30,18 @@ message AuthPubKeys{
repeated
string
data
=
1
;
repeated
string
data
=
1
;
}
}
message
PaymentKey
{
string
addr
=
1
;
string
payingKey
=
2
;
PubKey
receivingKey
=
3
;
}
enum
MixConfigType
{
enum
MixConfigType
{
VerifyKey
=
0
;
VerifyKey
=
0
;
//register unify authorize pubkey
//register unify authorize pubkey
AuthPubKey
=
1
;
AuthPubKey
=
1
;
//for spender's pay pubkey register,DH secret
//for spender's pay pubkey register,DH secret
//spender注册自己的payment公钥, 用来生成DiffHellman秘钥
PaymentPubKey
=
2
;
PaymentPubKey
=
2
;
}
}
...
@@ -60,7 +60,7 @@ message MixConfigAction {
...
@@ -60,7 +60,7 @@ message MixConfigAction {
oneof
value
{
oneof
value
{
ZkVerifyKey
verifyKey
=
3
;
ZkVerifyKey
verifyKey
=
3
;
string
authPk
=
4
;
string
authPk
=
4
;
P
ubKey
paymentPk
=
5
;
P
aymentKey
paymentKey
=
5
;
}
}
}
}
...
@@ -72,7 +72,7 @@ message DHSecret{
...
@@ -72,7 +72,7 @@ message DHSecret{
//Diff-Helman 加密group, for spender, returner, authorizer to decrypt
//Diff-Helman 加密group, for spender, returner, authorizer to decrypt
message
DHSecretGroup
{
message
DHSecretGroup
{
DHSecret
spender
=
1
;
DHSecret
payment
=
1
;
DHSecret
returner
=
2
;
DHSecret
returner
=
2
;
DHSecret
authorize
=
3
;
DHSecret
authorize
=
3
;
}
}
...
@@ -184,7 +184,7 @@ message CommitTreeProve {
...
@@ -184,7 +184,7 @@ message CommitTreeProve {
repeated
string
proofSet
=
2
;
repeated
string
proofSet
=
2
;
uint32
proofIndex
=
3
;
uint32
proofIndex
=
3
;
uint32
numLeaves
=
4
;
uint32
numLeaves
=
4
;
string
helpers
=
5
;
repeated
uint32
helpers
=
5
;
}
}
message
TreeInfoReq
{
message
TreeInfoReq
{
...
@@ -259,18 +259,76 @@ message DecryptSecretData{
...
@@ -259,18 +259,76 @@ message DecryptSecretData{
}
}
//一键式获取加密数据
message
DepositProofReq
{
string
paymentAddr
=
1
;
string
returnAddr
=
2
;
string
authorizeAddr
=
3
;
string
amount
=
4
;
}
message
DepositProofResp
{
string
noteHash
=
1
;
SecretData
proof
=
2
;
DHSecretGroup
secrets
=
3
;
}
message
TreePathProof
{
string
treeRootHash
=
1
;
repeated
string
treePath
=
2
;
repeated
uint32
helpers
=
3
;
repeated
uint32
validPath
=
4
;
}
message
WithdrawProofReq
{
string
noteHash
=
1
;
}
message
WithdrawProofResp
{
SecretData
proof
=
1
;
string
nullifierHash
=
2
;
string
authSpendHash
=
3
;
string
noteHash
=
4
;
string
spendPrivKey
=
5
;
uint32
spendFlag
=
6
;
uint32
authFlag
=
7
;
TreePathProof
treeProof
=
8
;
}
message
AuthProofReq
{
string
noteHash
=
1
;
uint32
authReturn
=
2
;
}
message
AuthProofResp
{
SecretData
proof
=
1
;
string
authPubKey
=
2
;
string
authPrivKey
=
3
;
string
authHash
=
4
;
string
authSpendHash
=
5
;
string
noteHash
=
6
;
uint32
spendFlag
=
7
;
TreePathProof
treeProof
=
8
;
}
enum
NoteStatus
{
enum
NoteStatus
{
UNDEF
=
0
;
UNDEF
=
0
;
FROZEN
=
1
;
//未授权
FROZEN
=
1
;
//未授权
OPEN
=
2
;
//已授权可使用
VALID
=
2
;
//已授权可使用
CLOSE
=
3
;
//已使用
INVALID
=
3
;
//已使用
}
}
message
WalletIndexInfo
{
message
WalletIndexInfo
{
string
noteHash
=
1
;
string
noteHash
=
1
;
string
nullifier
=
2
;
string
nullifier
=
2
;
string
authSpendHash
=
3
;
string
authSpendHash
=
3
;
string
spender
=
4
;
bool
isReturner
=
4
;
string
account
=
5
;
//账户地址
string
account
=
5
;
//账户地址
NoteStatus
status
=
6
;
NoteStatus
status
=
6
;
SecretData
secret
=
7
;
SecretData
secret
=
7
;
...
@@ -287,7 +345,6 @@ message WalletMixIndexReq {
...
@@ -287,7 +345,6 @@ message WalletMixIndexReq {
string
noteHash
=
1
;
string
noteHash
=
1
;
string
nullifier
=
2
;
string
nullifier
=
2
;
string
authSpendHash
=
3
;
string
authSpendHash
=
3
;
string
spender
=
4
;
string
account
=
5
;
string
account
=
5
;
int32
status
=
6
;
int32
status
=
6
;
int32
count
=
7
;
int32
count
=
7
;
...
...
plugin/dapp/mix/rpc/rpc.go
View file @
25cf36cb
...
@@ -132,3 +132,48 @@ func (c *Jrpc) DecryptSecretData(in *mixTy.DecryptSecretData, result *json.RawMe
...
@@ -132,3 +132,48 @@ func (c *Jrpc) DecryptSecretData(in *mixTy.DecryptSecretData, result *json.RawMe
*
result
,
err
=
types
.
PBToJSON
(
reply
)
*
result
,
err
=
types
.
PBToJSON
(
reply
)
return
err
return
err
}
}
func
(
c
*
Jrpc
)
DepositProof
(
in
*
mixTy
.
DepositProofReq
,
result
*
json
.
RawMessage
)
error
{
reply
,
err
:=
c
.
cli
.
ExecWalletFunc
(
mixTy
.
MixX
,
"DepositProof"
,
in
)
if
err
!=
nil
{
return
err
}
*
result
,
err
=
types
.
PBToJSON
(
reply
)
return
err
}
func
(
c
*
Jrpc
)
AuthProof
(
in
*
mixTy
.
DepositProofReq
,
result
*
json
.
RawMessage
)
error
{
reply
,
err
:=
c
.
cli
.
ExecWalletFunc
(
mixTy
.
MixX
,
"AuthProof"
,
in
)
if
err
!=
nil
{
return
err
}
*
result
,
err
=
types
.
PBToJSON
(
reply
)
return
err
}
func
(
c
*
Jrpc
)
PayInProof
(
in
*
mixTy
.
DepositProofReq
,
result
*
json
.
RawMessage
)
error
{
reply
,
err
:=
c
.
cli
.
ExecWalletFunc
(
mixTy
.
MixX
,
"PayInProof"
,
in
)
if
err
!=
nil
{
return
err
}
*
result
,
err
=
types
.
PBToJSON
(
reply
)
return
err
}
func
(
c
*
Jrpc
)
PayOutProof
(
in
*
mixTy
.
DepositProofReq
,
result
*
json
.
RawMessage
)
error
{
reply
,
err
:=
c
.
cli
.
ExecWalletFunc
(
mixTy
.
MixX
,
"PayOutProof"
,
in
)
if
err
!=
nil
{
return
err
}
*
result
,
err
=
types
.
PBToJSON
(
reply
)
return
err
}
func
(
c
*
Jrpc
)
WithdrawProof
(
in
*
mixTy
.
WithdrawProofReq
,
result
*
json
.
RawMessage
)
error
{
reply
,
err
:=
c
.
cli
.
ExecWalletFunc
(
mixTy
.
MixX
,
"WithdrawProof"
,
in
)
if
err
!=
nil
{
return
err
}
*
result
,
err
=
types
.
PBToJSON
(
reply
)
return
err
}
plugin/dapp/mix/types/mix.go
View file @
25cf36cb
...
@@ -28,6 +28,7 @@ const (
...
@@ -28,6 +28,7 @@ const (
TyLogNulliferSet
=
760
TyLogNulliferSet
=
760
TyLogAuthorizeSet
=
761
TyLogAuthorizeSet
=
761
TyLogAuthorizeSpendSet
=
762
TyLogAuthorizeSpendSet
=
762
TyLogMixConfigPaymentKey
=
763
)
)
//action type
//action type
...
...
plugin/dapp/mix/types/mix.pb.go
View file @
25cf36cb
...
@@ -6,13 +6,12 @@ package types
...
@@ -6,13 +6,12 @@ package types
import
(
import
(
context
"context"
context
"context"
fmt
"fmt"
fmt
"fmt"
math
"math"
types
"github.com/33cn/chain33/types"
types
"github.com/33cn/chain33/types"
proto
"github.com/golang/protobuf/proto"
proto
"github.com/golang/protobuf/proto"
grpc
"google.golang.org/grpc"
grpc
"google.golang.org/grpc"
codes
"google.golang.org/grpc/codes"
codes
"google.golang.org/grpc/codes"
status
"google.golang.org/grpc/status"
status
"google.golang.org/grpc/status"
math
"math"
)
)
// Reference imports to suppress errors if they are not otherwise used.
// Reference imports to suppress errors if they are not otherwise used.
...
@@ -61,38 +60,6 @@ func (VerifyType) EnumDescriptor() ([]byte, []int) {
...
@@ -61,38 +60,6 @@ func (VerifyType) EnumDescriptor() ([]byte, []int) {
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
0
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
0
}
}
}
//区分zk 所选取的曲线,需要和gnark保持一致
type
ZkCurveId
int32
const
(
ZkCurveId_UNKNOWN
ZkCurveId
=
0
ZkCurveId_BLS377
ZkCurveId
=
1
ZkCurveId_BLS381
ZkCurveId
=
2
ZkCurveId_BN256
ZkCurveId
=
3
)
var
ZkCurveId_name
=
map
[
int32
]
string
{
0
:
"UNKNOWN"
,
1
:
"BLS377"
,
2
:
"BLS381"
,
3
:
"BN256"
,
}
var
ZkCurveId_value
=
map
[
string
]
int32
{
"UNKNOWN"
:
0
,
"BLS377"
:
1
,
"BLS381"
:
2
,
"BN256"
:
3
,
}
func
(
x
ZkCurveId
)
String
()
string
{
return
proto
.
EnumName
(
ZkCurveId_name
,
int32
(
x
))
}
func
(
ZkCurveId
)
EnumDescriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
1
}
}
type
MixConfigType
int32
type
MixConfigType
int32
const
(
const
(
...
@@ -100,6 +67,7 @@ const (
...
@@ -100,6 +67,7 @@ const (
//register unify authorize pubkey
//register unify authorize pubkey
MixConfigType_AuthPubKey
MixConfigType
=
1
MixConfigType_AuthPubKey
MixConfigType
=
1
//for spender's pay pubkey register,DH secret
//for spender's pay pubkey register,DH secret
//spender注册自己的payment公钥, 用来生成DiffHellman秘钥
MixConfigType_PaymentPubKey
MixConfigType
=
2
MixConfigType_PaymentPubKey
MixConfigType
=
2
)
)
...
@@ -120,7 +88,7 @@ func (x MixConfigType) String() string {
...
@@ -120,7 +88,7 @@ func (x MixConfigType) String() string {
}
}
func
(
MixConfigType
)
EnumDescriptor
()
([]
byte
,
[]
int
)
{
func
(
MixConfigType
)
EnumDescriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
2
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
1
}
}
}
type
MixConfigAct
int32
type
MixConfigAct
int32
...
@@ -145,7 +113,7 @@ func (x MixConfigAct) String() string {
...
@@ -145,7 +113,7 @@ func (x MixConfigAct) String() string {
}
}
func
(
MixConfigAct
)
EnumDescriptor
()
([]
byte
,
[]
int
)
{
func
(
MixConfigAct
)
EnumDescriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
3
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
2
}
}
}
type
NoteStatus
int32
type
NoteStatus
int32
...
@@ -153,22 +121,22 @@ type NoteStatus int32
...
@@ -153,22 +121,22 @@ type NoteStatus int32
const
(
const
(
NoteStatus_UNDEF
NoteStatus
=
0
NoteStatus_UNDEF
NoteStatus
=
0
NoteStatus_FROZEN
NoteStatus
=
1
NoteStatus_FROZEN
NoteStatus
=
1
NoteStatus_
OPEN
NoteStatus
=
2
NoteStatus_
VALID
NoteStatus
=
2
NoteStatus_
CLOSE
NoteStatus
=
3
NoteStatus_
INVALID
NoteStatus
=
3
)
)
var
NoteStatus_name
=
map
[
int32
]
string
{
var
NoteStatus_name
=
map
[
int32
]
string
{
0
:
"UNDEF"
,
0
:
"UNDEF"
,
1
:
"FROZEN"
,
1
:
"FROZEN"
,
2
:
"
OPEN
"
,
2
:
"
VALID
"
,
3
:
"
CLOSE
"
,
3
:
"
INVALID
"
,
}
}
var
NoteStatus_value
=
map
[
string
]
int32
{
var
NoteStatus_value
=
map
[
string
]
int32
{
"UNDEF"
:
0
,
"UNDEF"
:
0
,
"FROZEN"
:
1
,
"FROZEN"
:
1
,
"
OPEN
"
:
2
,
"
VALID
"
:
2
,
"
CLOSE"
:
3
,
"
INVALID"
:
3
,
}
}
func
(
x
NoteStatus
)
String
()
string
{
func
(
x
NoteStatus
)
String
()
string
{
...
@@ -176,7 +144,7 @@ func (x NoteStatus) String() string {
...
@@ -176,7 +144,7 @@ func (x NoteStatus) String() string {
}
}
func
(
NoteStatus
)
EnumDescriptor
()
([]
byte
,
[]
int
)
{
func
(
NoteStatus
)
EnumDescriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
4
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
3
}
}
}
type
MixWalletRescanStatus
int32
type
MixWalletRescanStatus
int32
...
@@ -204,13 +172,12 @@ func (x MixWalletRescanStatus) String() string {
...
@@ -204,13 +172,12 @@ func (x MixWalletRescanStatus) String() string {
}
}
func
(
MixWalletRescanStatus
)
EnumDescriptor
()
([]
byte
,
[]
int
)
{
func
(
MixWalletRescanStatus
)
EnumDescriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
5
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
4
}
}
}
type
ZkVerifyKey
struct
{
type
ZkVerifyKey
struct
{
CurveId
ZkCurveId
`protobuf:"varint,1,opt,name=curveId,proto3,enum=types.ZkCurveId" json:"curveId,omitempty"`
Type
VerifyType
`protobuf:"varint,1,opt,name=type,proto3,enum=types.VerifyType" json:"type,omitempty"`
Type
VerifyType
`protobuf:"varint,2,opt,name=type,proto3,enum=types.VerifyType" json:"type,omitempty"`
Value
string
`protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
Value
string
`protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
XXX_NoUnkeyedLiteral
struct
{}
`json:"-"`
XXX_NoUnkeyedLiteral
struct
{}
`json:"-"`
XXX_unrecognized
[]
byte
`json:"-"`
XXX_unrecognized
[]
byte
`json:"-"`
XXX_sizecache
int32
`json:"-"`
XXX_sizecache
int32
`json:"-"`
...
@@ -241,13 +208,6 @@ func (m *ZkVerifyKey) XXX_DiscardUnknown() {
...
@@ -241,13 +208,6 @@ func (m *ZkVerifyKey) XXX_DiscardUnknown() {
var
xxx_messageInfo_ZkVerifyKey
proto
.
InternalMessageInfo
var
xxx_messageInfo_ZkVerifyKey
proto
.
InternalMessageInfo
func
(
m
*
ZkVerifyKey
)
GetCurveId
()
ZkCurveId
{
if
m
!=
nil
{
return
m
.
CurveId
}
return
ZkCurveId_UNKNOWN
}
func
(
m
*
ZkVerifyKey
)
GetType
()
VerifyType
{
func
(
m
*
ZkVerifyKey
)
GetType
()
VerifyType
{
if
m
!=
nil
{
if
m
!=
nil
{
return
m
.
Type
return
m
.
Type
...
@@ -340,6 +300,61 @@ func (m *AuthPubKeys) GetData() []string {
...
@@ -340,6 +300,61 @@ func (m *AuthPubKeys) GetData() []string {
return
nil
return
nil
}
}
type
PaymentKey
struct
{
Addr
string
`protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"`
PayingKey
string
`protobuf:"bytes,2,opt,name=payingKey,proto3" json:"payingKey,omitempty"`
ReceivingKey
*
PubKey
`protobuf:"bytes,3,opt,name=receivingKey,proto3" json:"receivingKey,omitempty"`
XXX_NoUnkeyedLiteral
struct
{}
`json:"-"`
XXX_unrecognized
[]
byte
`json:"-"`
XXX_sizecache
int32
`json:"-"`
}
func
(
m
*
PaymentKey
)
Reset
()
{
*
m
=
PaymentKey
{}
}
func
(
m
*
PaymentKey
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
PaymentKey
)
ProtoMessage
()
{}
func
(
*
PaymentKey
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
3
}
}
func
(
m
*
PaymentKey
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
return
xxx_messageInfo_PaymentKey
.
Unmarshal
(
m
,
b
)
}
func
(
m
*
PaymentKey
)
XXX_Marshal
(
b
[]
byte
,
deterministic
bool
)
([]
byte
,
error
)
{
return
xxx_messageInfo_PaymentKey
.
Marshal
(
b
,
m
,
deterministic
)
}
func
(
m
*
PaymentKey
)
XXX_Merge
(
src
proto
.
Message
)
{
xxx_messageInfo_PaymentKey
.
Merge
(
m
,
src
)
}
func
(
m
*
PaymentKey
)
XXX_Size
()
int
{
return
xxx_messageInfo_PaymentKey
.
Size
(
m
)
}
func
(
m
*
PaymentKey
)
XXX_DiscardUnknown
()
{
xxx_messageInfo_PaymentKey
.
DiscardUnknown
(
m
)
}
var
xxx_messageInfo_PaymentKey
proto
.
InternalMessageInfo
func
(
m
*
PaymentKey
)
GetAddr
()
string
{
if
m
!=
nil
{
return
m
.
Addr
}
return
""
}
func
(
m
*
PaymentKey
)
GetPayingKey
()
string
{
if
m
!=
nil
{
return
m
.
PayingKey
}
return
""
}
func
(
m
*
PaymentKey
)
GetReceivingKey
()
*
PubKey
{
if
m
!=
nil
{
return
m
.
ReceivingKey
}
return
nil
}
//config verify parameter for proof
//config verify parameter for proof
//当前authPk=mimc_hash(prikey),没有X,Y值
//当前authPk=mimc_hash(prikey),没有X,Y值
type
MixConfigAction
struct
{
type
MixConfigAction
struct
{
...
@@ -348,7 +363,7 @@ type MixConfigAction struct {
...
@@ -348,7 +363,7 @@ type MixConfigAction struct {
// Types that are valid to be assigned to Value:
// Types that are valid to be assigned to Value:
// *MixConfigAction_VerifyKey
// *MixConfigAction_VerifyKey
// *MixConfigAction_AuthPk
// *MixConfigAction_AuthPk
// *MixConfigAction_Payment
Pk
// *MixConfigAction_Payment
Key
Value
isMixConfigAction_Value
`protobuf_oneof:"value"`
Value
isMixConfigAction_Value
`protobuf_oneof:"value"`
XXX_NoUnkeyedLiteral
struct
{}
`json:"-"`
XXX_NoUnkeyedLiteral
struct
{}
`json:"-"`
XXX_unrecognized
[]
byte
`json:"-"`
XXX_unrecognized
[]
byte
`json:"-"`
...
@@ -359,7 +374,7 @@ func (m *MixConfigAction) Reset() { *m = MixConfigAction{} }
...
@@ -359,7 +374,7 @@ func (m *MixConfigAction) Reset() { *m = MixConfigAction{} }
func
(
m
*
MixConfigAction
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
MixConfigAction
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
MixConfigAction
)
ProtoMessage
()
{}
func
(
*
MixConfigAction
)
ProtoMessage
()
{}
func
(
*
MixConfigAction
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
MixConfigAction
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
3
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
4
}
}
}
func
(
m
*
MixConfigAction
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
MixConfigAction
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -406,15 +421,15 @@ type MixConfigAction_AuthPk struct {
...
@@ -406,15 +421,15 @@ type MixConfigAction_AuthPk struct {
AuthPk
string
`protobuf:"bytes,4,opt,name=authPk,proto3,oneof"`
AuthPk
string
`protobuf:"bytes,4,opt,name=authPk,proto3,oneof"`
}
}
type
MixConfigAction_Payment
Pk
struct
{
type
MixConfigAction_Payment
Key
struct
{
Payment
Pk
*
PubKey
`protobuf:"bytes,5,opt,name=paymentPk
,proto3,oneof"`
Payment
Key
*
PaymentKey
`protobuf:"bytes,5,opt,name=paymentKey
,proto3,oneof"`
}
}
func
(
*
MixConfigAction_VerifyKey
)
isMixConfigAction_Value
()
{}
func
(
*
MixConfigAction_VerifyKey
)
isMixConfigAction_Value
()
{}
func
(
*
MixConfigAction_AuthPk
)
isMixConfigAction_Value
()
{}
func
(
*
MixConfigAction_AuthPk
)
isMixConfigAction_Value
()
{}
func
(
*
MixConfigAction_Payment
Pk
)
isMixConfigAction_Value
()
{}
func
(
*
MixConfigAction_Payment
Key
)
isMixConfigAction_Value
()
{}
func
(
m
*
MixConfigAction
)
GetValue
()
isMixConfigAction_Value
{
func
(
m
*
MixConfigAction
)
GetValue
()
isMixConfigAction_Value
{
if
m
!=
nil
{
if
m
!=
nil
{
...
@@ -437,9 +452,9 @@ func (m *MixConfigAction) GetAuthPk() string {
...
@@ -437,9 +452,9 @@ func (m *MixConfigAction) GetAuthPk() string {
return
""
return
""
}
}
func
(
m
*
MixConfigAction
)
GetPayment
Pk
()
*
Pub
Key
{
func
(
m
*
MixConfigAction
)
GetPayment
Key
()
*
Payment
Key
{
if
x
,
ok
:=
m
.
GetValue
()
.
(
*
MixConfigAction_Payment
Pk
);
ok
{
if
x
,
ok
:=
m
.
GetValue
()
.
(
*
MixConfigAction_Payment
Key
);
ok
{
return
x
.
Payment
Pk
return
x
.
Payment
Key
}
}
return
nil
return
nil
}
}
...
@@ -449,7 +464,7 @@ func (*MixConfigAction) XXX_OneofWrappers() []interface{} {
...
@@ -449,7 +464,7 @@ func (*MixConfigAction) XXX_OneofWrappers() []interface{} {
return
[]
interface
{}{
return
[]
interface
{}{
(
*
MixConfigAction_VerifyKey
)(
nil
),
(
*
MixConfigAction_VerifyKey
)(
nil
),
(
*
MixConfigAction_AuthPk
)(
nil
),
(
*
MixConfigAction_AuthPk
)(
nil
),
(
*
MixConfigAction_Payment
Pk
)(
nil
),
(
*
MixConfigAction_Payment
Key
)(
nil
),
}
}
}
}
...
@@ -466,7 +481,7 @@ func (m *DHSecret) Reset() { *m = DHSecret{} }
...
@@ -466,7 +481,7 @@ func (m *DHSecret) Reset() { *m = DHSecret{} }
func
(
m
*
DHSecret
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
DHSecret
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
DHSecret
)
ProtoMessage
()
{}
func
(
*
DHSecret
)
ProtoMessage
()
{}
func
(
*
DHSecret
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
DHSecret
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
4
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
5
}
}
}
func
(
m
*
DHSecret
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
DHSecret
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -503,7 +518,7 @@ func (m *DHSecret) GetSecret() string {
...
@@ -503,7 +518,7 @@ func (m *DHSecret) GetSecret() string {
//Diff-Helman 加密group, for spender, returner, authorizer to decrypt
//Diff-Helman 加密group, for spender, returner, authorizer to decrypt
type
DHSecretGroup
struct
{
type
DHSecretGroup
struct
{
Spender
*
DHSecret
`protobuf:"bytes,1,opt,name=spender,proto3" json:"spender
,omitempty"`
Payment
*
DHSecret
`protobuf:"bytes,1,opt,name=payment,proto3" json:"payment
,omitempty"`
Returner
*
DHSecret
`protobuf:"bytes,2,opt,name=returner,proto3" json:"returner,omitempty"`
Returner
*
DHSecret
`protobuf:"bytes,2,opt,name=returner,proto3" json:"returner,omitempty"`
Authorize
*
DHSecret
`protobuf:"bytes,3,opt,name=authorize,proto3" json:"authorize,omitempty"`
Authorize
*
DHSecret
`protobuf:"bytes,3,opt,name=authorize,proto3" json:"authorize,omitempty"`
XXX_NoUnkeyedLiteral
struct
{}
`json:"-"`
XXX_NoUnkeyedLiteral
struct
{}
`json:"-"`
...
@@ -515,7 +530,7 @@ func (m *DHSecretGroup) Reset() { *m = DHSecretGroup{} }
...
@@ -515,7 +530,7 @@ func (m *DHSecretGroup) Reset() { *m = DHSecretGroup{} }
func
(
m
*
DHSecretGroup
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
DHSecretGroup
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
DHSecretGroup
)
ProtoMessage
()
{}
func
(
*
DHSecretGroup
)
ProtoMessage
()
{}
func
(
*
DHSecretGroup
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
DHSecretGroup
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
5
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
6
}
}
}
func
(
m
*
DHSecretGroup
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
DHSecretGroup
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -536,9 +551,9 @@ func (m *DHSecretGroup) XXX_DiscardUnknown() {
...
@@ -536,9 +551,9 @@ func (m *DHSecretGroup) XXX_DiscardUnknown() {
var
xxx_messageInfo_DHSecretGroup
proto
.
InternalMessageInfo
var
xxx_messageInfo_DHSecretGroup
proto
.
InternalMessageInfo
func
(
m
*
DHSecretGroup
)
Get
Spender
()
*
DHSecret
{
func
(
m
*
DHSecretGroup
)
Get
Payment
()
*
DHSecret
{
if
m
!=
nil
{
if
m
!=
nil
{
return
m
.
Spender
return
m
.
Payment
}
}
return
nil
return
nil
}
}
...
@@ -570,7 +585,7 @@ func (m *ZkProofInfo) Reset() { *m = ZkProofInfo{} }
...
@@ -570,7 +585,7 @@ func (m *ZkProofInfo) Reset() { *m = ZkProofInfo{} }
func
(
m
*
ZkProofInfo
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
ZkProofInfo
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
ZkProofInfo
)
ProtoMessage
()
{}
func
(
*
ZkProofInfo
)
ProtoMessage
()
{}
func
(
*
ZkProofInfo
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
ZkProofInfo
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
6
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
7
}
}
}
func
(
m
*
ZkProofInfo
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
ZkProofInfo
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -624,7 +639,7 @@ func (m *MixDepositAction) Reset() { *m = MixDepositAction{} }
...
@@ -624,7 +639,7 @@ func (m *MixDepositAction) Reset() { *m = MixDepositAction{} }
func
(
m
*
MixDepositAction
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
MixDepositAction
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
MixDepositAction
)
ProtoMessage
()
{}
func
(
*
MixDepositAction
)
ProtoMessage
()
{}
func
(
*
MixDepositAction
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
MixDepositAction
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
7
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
8
}
}
}
func
(
m
*
MixDepositAction
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
MixDepositAction
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -671,7 +686,7 @@ func (m *MixTransferAction) Reset() { *m = MixTransferAction{} }
...
@@ -671,7 +686,7 @@ func (m *MixTransferAction) Reset() { *m = MixTransferAction{} }
func
(
m
*
MixTransferAction
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
MixTransferAction
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
MixTransferAction
)
ProtoMessage
()
{}
func
(
*
MixTransferAction
)
ProtoMessage
()
{}
func
(
*
MixTransferAction
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
MixTransferAction
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
8
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
9
}
}
}
func
(
m
*
MixTransferAction
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
MixTransferAction
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -718,7 +733,7 @@ func (m *MixWithdrawAction) Reset() { *m = MixWithdrawAction{} }
...
@@ -718,7 +733,7 @@ func (m *MixWithdrawAction) Reset() { *m = MixWithdrawAction{} }
func
(
m
*
MixWithdrawAction
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
MixWithdrawAction
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
MixWithdrawAction
)
ProtoMessage
()
{}
func
(
*
MixWithdrawAction
)
ProtoMessage
()
{}
func
(
*
MixWithdrawAction
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
MixWithdrawAction
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
9
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
10
}
}
}
func
(
m
*
MixWithdrawAction
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
MixWithdrawAction
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -764,7 +779,7 @@ func (m *MixAuthorizeAction) Reset() { *m = MixAuthorizeAction{} }
...
@@ -764,7 +779,7 @@ func (m *MixAuthorizeAction) Reset() { *m = MixAuthorizeAction{} }
func
(
m
*
MixAuthorizeAction
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
MixAuthorizeAction
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
MixAuthorizeAction
)
ProtoMessage
()
{}
func
(
*
MixAuthorizeAction
)
ProtoMessage
()
{}
func
(
*
MixAuthorizeAction
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
MixAuthorizeAction
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
1
0
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
1
1
}
}
}
func
(
m
*
MixAuthorizeAction
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
MixAuthorizeAction
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -810,7 +825,7 @@ func (m *MixAction) Reset() { *m = MixAction{} }
...
@@ -810,7 +825,7 @@ func (m *MixAction) Reset() { *m = MixAction{} }
func
(
m
*
MixAction
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
MixAction
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
MixAction
)
ProtoMessage
()
{}
func
(
*
MixAction
)
ProtoMessage
()
{}
func
(
*
MixAction
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
MixAction
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
1
1
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
1
2
}
}
}
func
(
m
*
MixAction
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
MixAction
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -937,7 +952,7 @@ func (m *DepositPublicInput) Reset() { *m = DepositPublicInput{} }
...
@@ -937,7 +952,7 @@ func (m *DepositPublicInput) Reset() { *m = DepositPublicInput{} }
func
(
m
*
DepositPublicInput
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
DepositPublicInput
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
DepositPublicInput
)
ProtoMessage
()
{}
func
(
*
DepositPublicInput
)
ProtoMessage
()
{}
func
(
*
DepositPublicInput
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
DepositPublicInput
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
1
2
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
1
3
}
}
}
func
(
m
*
DepositPublicInput
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
DepositPublicInput
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -986,7 +1001,7 @@ func (m *WithdrawPublicInput) Reset() { *m = WithdrawPublicInput{} }
...
@@ -986,7 +1001,7 @@ func (m *WithdrawPublicInput) Reset() { *m = WithdrawPublicInput{} }
func
(
m
*
WithdrawPublicInput
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
WithdrawPublicInput
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
WithdrawPublicInput
)
ProtoMessage
()
{}
func
(
*
WithdrawPublicInput
)
ProtoMessage
()
{}
func
(
*
WithdrawPublicInput
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
WithdrawPublicInput
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
1
3
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
1
4
}
}
}
func
(
m
*
WithdrawPublicInput
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
WithdrawPublicInput
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -1048,7 +1063,7 @@ func (m *CommitAmount) Reset() { *m = CommitAmount{} }
...
@@ -1048,7 +1063,7 @@ func (m *CommitAmount) Reset() { *m = CommitAmount{} }
func
(
m
*
CommitAmount
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
CommitAmount
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
CommitAmount
)
ProtoMessage
()
{}
func
(
*
CommitAmount
)
ProtoMessage
()
{}
func
(
*
CommitAmount
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
CommitAmount
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
1
4
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
1
5
}
}
}
func
(
m
*
CommitAmount
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
CommitAmount
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -1098,7 +1113,7 @@ func (m *TransferInputPublicInput) Reset() { *m = TransferInputPublicInp
...
@@ -1098,7 +1113,7 @@ func (m *TransferInputPublicInput) Reset() { *m = TransferInputPublicInp
func
(
m
*
TransferInputPublicInput
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
TransferInputPublicInput
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
TransferInputPublicInput
)
ProtoMessage
()
{}
func
(
*
TransferInputPublicInput
)
ProtoMessage
()
{}
func
(
*
TransferInputPublicInput
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
TransferInputPublicInput
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
1
5
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
1
6
}
}
}
func
(
m
*
TransferInputPublicInput
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
TransferInputPublicInput
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -1168,7 +1183,7 @@ func (m *TransferOutputPublicInput) Reset() { *m = TransferOutputPublicI
...
@@ -1168,7 +1183,7 @@ func (m *TransferOutputPublicInput) Reset() { *m = TransferOutputPublicI
func
(
m
*
TransferOutputPublicInput
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
TransferOutputPublicInput
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
TransferOutputPublicInput
)
ProtoMessage
()
{}
func
(
*
TransferOutputPublicInput
)
ProtoMessage
()
{}
func
(
*
TransferOutputPublicInput
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
TransferOutputPublicInput
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
1
6
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
1
7
}
}
}
func
(
m
*
TransferOutputPublicInput
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
TransferOutputPublicInput
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -1231,7 +1246,7 @@ func (m *AuthorizePublicInput) Reset() { *m = AuthorizePublicInput{} }
...
@@ -1231,7 +1246,7 @@ func (m *AuthorizePublicInput) Reset() { *m = AuthorizePublicInput{} }
func
(
m
*
AuthorizePublicInput
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
AuthorizePublicInput
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
AuthorizePublicInput
)
ProtoMessage
()
{}
func
(
*
AuthorizePublicInput
)
ProtoMessage
()
{}
func
(
*
AuthorizePublicInput
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
AuthorizePublicInput
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
1
7
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
1
8
}
}
}
func
(
m
*
AuthorizePublicInput
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
AuthorizePublicInput
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -1292,7 +1307,7 @@ func (m *ExistValue) Reset() { *m = ExistValue{} }
...
@@ -1292,7 +1307,7 @@ func (m *ExistValue) Reset() { *m = ExistValue{} }
func
(
m
*
ExistValue
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
ExistValue
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
ExistValue
)
ProtoMessage
()
{}
func
(
*
ExistValue
)
ProtoMessage
()
{}
func
(
*
ExistValue
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
ExistValue
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
1
8
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
1
9
}
}
}
func
(
m
*
ExistValue
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
ExistValue
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -1331,7 +1346,7 @@ func (m *CommitTreeLeaves) Reset() { *m = CommitTreeLeaves{} }
...
@@ -1331,7 +1346,7 @@ func (m *CommitTreeLeaves) Reset() { *m = CommitTreeLeaves{} }
func
(
m
*
CommitTreeLeaves
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
CommitTreeLeaves
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
CommitTreeLeaves
)
ProtoMessage
()
{}
func
(
*
CommitTreeLeaves
)
ProtoMessage
()
{}
func
(
*
CommitTreeLeaves
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
CommitTreeLeaves
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
19
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
20
}
}
}
func
(
m
*
CommitTreeLeaves
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
CommitTreeLeaves
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -1370,7 +1385,7 @@ func (m *CommitTreeRoots) Reset() { *m = CommitTreeRoots{} }
...
@@ -1370,7 +1385,7 @@ func (m *CommitTreeRoots) Reset() { *m = CommitTreeRoots{} }
func
(
m
*
CommitTreeRoots
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
CommitTreeRoots
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
CommitTreeRoots
)
ProtoMessage
()
{}
func
(
*
CommitTreeRoots
)
ProtoMessage
()
{}
func
(
*
CommitTreeRoots
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
CommitTreeRoots
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
2
0
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
2
1
}
}
}
func
(
m
*
CommitTreeRoots
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
CommitTreeRoots
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -1403,7 +1418,7 @@ type CommitTreeProve struct {
...
@@ -1403,7 +1418,7 @@ type CommitTreeProve struct {
ProofSet
[]
string
`protobuf:"bytes,2,rep,name=proofSet,proto3" json:"proofSet,omitempty"`
ProofSet
[]
string
`protobuf:"bytes,2,rep,name=proofSet,proto3" json:"proofSet,omitempty"`
ProofIndex
uint32
`protobuf:"varint,3,opt,name=proofIndex,proto3" json:"proofIndex,omitempty"`
ProofIndex
uint32
`protobuf:"varint,3,opt,name=proofIndex,proto3" json:"proofIndex,omitempty"`
NumLeaves
uint32
`protobuf:"varint,4,opt,name=numLeaves,proto3" json:"numLeaves,omitempty"`
NumLeaves
uint32
`protobuf:"varint,4,opt,name=numLeaves,proto3" json:"numLeaves,omitempty"`
Helpers
string
`protobuf:"bytes,5,opt
,name=helpers,proto3" json:"helpers,omitempty"`
Helpers
[]
uint32
`protobuf:"varint,5,rep,packed
,name=helpers,proto3" json:"helpers,omitempty"`
XXX_NoUnkeyedLiteral
struct
{}
`json:"-"`
XXX_NoUnkeyedLiteral
struct
{}
`json:"-"`
XXX_unrecognized
[]
byte
`json:"-"`
XXX_unrecognized
[]
byte
`json:"-"`
XXX_sizecache
int32
`json:"-"`
XXX_sizecache
int32
`json:"-"`
...
@@ -1413,7 +1428,7 @@ func (m *CommitTreeProve) Reset() { *m = CommitTreeProve{} }
...
@@ -1413,7 +1428,7 @@ func (m *CommitTreeProve) Reset() { *m = CommitTreeProve{} }
func
(
m
*
CommitTreeProve
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
CommitTreeProve
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
CommitTreeProve
)
ProtoMessage
()
{}
func
(
*
CommitTreeProve
)
ProtoMessage
()
{}
func
(
*
CommitTreeProve
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
CommitTreeProve
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
2
1
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
2
2
}
}
}
func
(
m
*
CommitTreeProve
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
CommitTreeProve
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -1462,11 +1477,11 @@ func (m *CommitTreeProve) GetNumLeaves() uint32 {
...
@@ -1462,11 +1477,11 @@ func (m *CommitTreeProve) GetNumLeaves() uint32 {
return
0
return
0
}
}
func
(
m
*
CommitTreeProve
)
GetHelpers
()
string
{
func
(
m
*
CommitTreeProve
)
GetHelpers
()
[]
uint32
{
if
m
!=
nil
{
if
m
!=
nil
{
return
m
.
Helpers
return
m
.
Helpers
}
}
return
""
return
nil
}
}
type
TreeInfoReq
struct
{
type
TreeInfoReq
struct
{
...
@@ -1481,7 +1496,7 @@ func (m *TreeInfoReq) Reset() { *m = TreeInfoReq{} }
...
@@ -1481,7 +1496,7 @@ func (m *TreeInfoReq) Reset() { *m = TreeInfoReq{} }
func
(
m
*
TreeInfoReq
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
TreeInfoReq
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
TreeInfoReq
)
ProtoMessage
()
{}
func
(
*
TreeInfoReq
)
ProtoMessage
()
{}
func
(
*
TreeInfoReq
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
TreeInfoReq
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
2
2
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
2
3
}
}
}
func
(
m
*
TreeInfoReq
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
TreeInfoReq
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -1527,7 +1542,7 @@ func (m *TreeListResp) Reset() { *m = TreeListResp{} }
...
@@ -1527,7 +1542,7 @@ func (m *TreeListResp) Reset() { *m = TreeListResp{} }
func
(
m
*
TreeListResp
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
TreeListResp
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
TreeListResp
)
ProtoMessage
()
{}
func
(
*
TreeListResp
)
ProtoMessage
()
{}
func
(
*
TreeListResp
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
TreeListResp
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
2
3
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
2
4
}
}
}
func
(
m
*
TreeListResp
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
TreeListResp
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -1570,7 +1585,7 @@ func (m *PaymentKeyPair) Reset() { *m = PaymentKeyPair{} }
...
@@ -1570,7 +1585,7 @@ func (m *PaymentKeyPair) Reset() { *m = PaymentKeyPair{} }
func
(
m
*
PaymentKeyPair
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
PaymentKeyPair
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
PaymentKeyPair
)
ProtoMessage
()
{}
func
(
*
PaymentKeyPair
)
ProtoMessage
()
{}
func
(
*
PaymentKeyPair
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
PaymentKeyPair
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
2
4
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
2
5
}
}
}
func
(
m
*
PaymentKeyPair
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
PaymentKeyPair
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -1620,7 +1635,7 @@ func (m *PubKey) Reset() { *m = PubKey{} }
...
@@ -1620,7 +1635,7 @@ func (m *PubKey) Reset() { *m = PubKey{} }
func
(
m
*
PubKey
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
PubKey
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
PubKey
)
ProtoMessage
()
{}
func
(
*
PubKey
)
ProtoMessage
()
{}
func
(
*
PubKey
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
PubKey
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
2
5
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
2
6
}
}
}
func
(
m
*
PubKey
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
PubKey
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -1666,7 +1681,7 @@ func (m *PrivKey) Reset() { *m = PrivKey{} }
...
@@ -1666,7 +1681,7 @@ func (m *PrivKey) Reset() { *m = PrivKey{} }
func
(
m
*
PrivKey
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
PrivKey
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
PrivKey
)
ProtoMessage
()
{}
func
(
*
PrivKey
)
ProtoMessage
()
{}
func
(
*
PrivKey
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
PrivKey
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
2
6
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
2
7
}
}
}
func
(
m
*
PrivKey
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
PrivKey
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -1706,7 +1721,7 @@ func (m *ShareSecretKeyPair) Reset() { *m = ShareSecretKeyPair{} }
...
@@ -1706,7 +1721,7 @@ func (m *ShareSecretKeyPair) Reset() { *m = ShareSecretKeyPair{} }
func
(
m
*
ShareSecretKeyPair
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
ShareSecretKeyPair
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
ShareSecretKeyPair
)
ProtoMessage
()
{}
func
(
*
ShareSecretKeyPair
)
ProtoMessage
()
{}
func
(
*
ShareSecretKeyPair
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
ShareSecretKeyPair
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
2
7
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
2
8
}
}
}
func
(
m
*
ShareSecretKeyPair
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
ShareSecretKeyPair
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -1755,7 +1770,7 @@ func (m *AccountPrivacyKey) Reset() { *m = AccountPrivacyKey{} }
...
@@ -1755,7 +1770,7 @@ func (m *AccountPrivacyKey) Reset() { *m = AccountPrivacyKey{} }
func
(
m
*
AccountPrivacyKey
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
AccountPrivacyKey
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
AccountPrivacyKey
)
ProtoMessage
()
{}
func
(
*
AccountPrivacyKey
)
ProtoMessage
()
{}
func
(
*
AccountPrivacyKey
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
AccountPrivacyKey
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
2
8
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
2
9
}
}
}
func
(
m
*
AccountPrivacyKey
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
AccountPrivacyKey
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -1802,7 +1817,7 @@ func (m *WalletAddrPrivacy) Reset() { *m = WalletAddrPrivacy{} }
...
@@ -1802,7 +1817,7 @@ func (m *WalletAddrPrivacy) Reset() { *m = WalletAddrPrivacy{} }
func
(
m
*
WalletAddrPrivacy
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
WalletAddrPrivacy
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
WalletAddrPrivacy
)
ProtoMessage
()
{}
func
(
*
WalletAddrPrivacy
)
ProtoMessage
()
{}
func
(
*
WalletAddrPrivacy
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
WalletAddrPrivacy
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
29
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
30
}
}
}
func
(
m
*
WalletAddrPrivacy
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
WalletAddrPrivacy
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -1852,7 +1867,7 @@ func (m *SecretData) Reset() { *m = SecretData{} }
...
@@ -1852,7 +1867,7 @@ func (m *SecretData) Reset() { *m = SecretData{} }
func
(
m
*
SecretData
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
SecretData
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
SecretData
)
ProtoMessage
()
{}
func
(
*
SecretData
)
ProtoMessage
()
{}
func
(
*
SecretData
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
SecretData
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
3
0
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
3
1
}
}
}
func
(
m
*
SecretData
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
SecretData
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -1920,7 +1935,7 @@ func (m *EncodedSecretData) Reset() { *m = EncodedSecretData{} }
...
@@ -1920,7 +1935,7 @@ func (m *EncodedSecretData) Reset() { *m = EncodedSecretData{} }
func
(
m
*
EncodedSecretData
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
EncodedSecretData
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
EncodedSecretData
)
ProtoMessage
()
{}
func
(
*
EncodedSecretData
)
ProtoMessage
()
{}
func
(
*
EncodedSecretData
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
EncodedSecretData
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
3
1
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
3
2
}
}
}
func
(
m
*
EncodedSecretData
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
EncodedSecretData
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -1967,7 +1982,7 @@ func (m *EncryptSecretData) Reset() { *m = EncryptSecretData{} }
...
@@ -1967,7 +1982,7 @@ func (m *EncryptSecretData) Reset() { *m = EncryptSecretData{} }
func
(
m
*
EncryptSecretData
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
EncryptSecretData
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
EncryptSecretData
)
ProtoMessage
()
{}
func
(
*
EncryptSecretData
)
ProtoMessage
()
{}
func
(
*
EncryptSecretData
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
EncryptSecretData
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
3
2
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
3
3
}
}
}
func
(
m
*
EncryptSecretData
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
EncryptSecretData
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -2015,7 +2030,7 @@ func (m *DecryptSecretData) Reset() { *m = DecryptSecretData{} }
...
@@ -2015,7 +2030,7 @@ func (m *DecryptSecretData) Reset() { *m = DecryptSecretData{} }
func
(
m
*
DecryptSecretData
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
DecryptSecretData
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
DecryptSecretData
)
ProtoMessage
()
{}
func
(
*
DecryptSecretData
)
ProtoMessage
()
{}
func
(
*
DecryptSecretData
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
DecryptSecretData
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
3
3
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
3
4
}
}
}
func
(
m
*
DecryptSecretData
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
DecryptSecretData
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -2057,11 +2072,469 @@ func (m *DecryptSecretData) GetEpk() *PubKey {
...
@@ -2057,11 +2072,469 @@ func (m *DecryptSecretData) GetEpk() *PubKey {
return
nil
return
nil
}
}
//一键式获取加密数据
type
DepositProofReq
struct
{
PaymentAddr
string
`protobuf:"bytes,1,opt,name=paymentAddr,proto3" json:"paymentAddr,omitempty"`
ReturnAddr
string
`protobuf:"bytes,2,opt,name=returnAddr,proto3" json:"returnAddr,omitempty"`
AuthorizeAddr
string
`protobuf:"bytes,3,opt,name=authorizeAddr,proto3" json:"authorizeAddr,omitempty"`
Amount
string
`protobuf:"bytes,4,opt,name=amount,proto3" json:"amount,omitempty"`
XXX_NoUnkeyedLiteral
struct
{}
`json:"-"`
XXX_unrecognized
[]
byte
`json:"-"`
XXX_sizecache
int32
`json:"-"`
}
func
(
m
*
DepositProofReq
)
Reset
()
{
*
m
=
DepositProofReq
{}
}
func
(
m
*
DepositProofReq
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
DepositProofReq
)
ProtoMessage
()
{}
func
(
*
DepositProofReq
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
35
}
}
func
(
m
*
DepositProofReq
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
return
xxx_messageInfo_DepositProofReq
.
Unmarshal
(
m
,
b
)
}
func
(
m
*
DepositProofReq
)
XXX_Marshal
(
b
[]
byte
,
deterministic
bool
)
([]
byte
,
error
)
{
return
xxx_messageInfo_DepositProofReq
.
Marshal
(
b
,
m
,
deterministic
)
}
func
(
m
*
DepositProofReq
)
XXX_Merge
(
src
proto
.
Message
)
{
xxx_messageInfo_DepositProofReq
.
Merge
(
m
,
src
)
}
func
(
m
*
DepositProofReq
)
XXX_Size
()
int
{
return
xxx_messageInfo_DepositProofReq
.
Size
(
m
)
}
func
(
m
*
DepositProofReq
)
XXX_DiscardUnknown
()
{
xxx_messageInfo_DepositProofReq
.
DiscardUnknown
(
m
)
}
var
xxx_messageInfo_DepositProofReq
proto
.
InternalMessageInfo
func
(
m
*
DepositProofReq
)
GetPaymentAddr
()
string
{
if
m
!=
nil
{
return
m
.
PaymentAddr
}
return
""
}
func
(
m
*
DepositProofReq
)
GetReturnAddr
()
string
{
if
m
!=
nil
{
return
m
.
ReturnAddr
}
return
""
}
func
(
m
*
DepositProofReq
)
GetAuthorizeAddr
()
string
{
if
m
!=
nil
{
return
m
.
AuthorizeAddr
}
return
""
}
func
(
m
*
DepositProofReq
)
GetAmount
()
string
{
if
m
!=
nil
{
return
m
.
Amount
}
return
""
}
type
DepositProofResp
struct
{
NoteHash
string
`protobuf:"bytes,1,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
Proof
*
SecretData
`protobuf:"bytes,2,opt,name=proof,proto3" json:"proof,omitempty"`
Secrets
*
DHSecretGroup
`protobuf:"bytes,3,opt,name=secrets,proto3" json:"secrets,omitempty"`
XXX_NoUnkeyedLiteral
struct
{}
`json:"-"`
XXX_unrecognized
[]
byte
`json:"-"`
XXX_sizecache
int32
`json:"-"`
}
func
(
m
*
DepositProofResp
)
Reset
()
{
*
m
=
DepositProofResp
{}
}
func
(
m
*
DepositProofResp
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
DepositProofResp
)
ProtoMessage
()
{}
func
(
*
DepositProofResp
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
36
}
}
func
(
m
*
DepositProofResp
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
return
xxx_messageInfo_DepositProofResp
.
Unmarshal
(
m
,
b
)
}
func
(
m
*
DepositProofResp
)
XXX_Marshal
(
b
[]
byte
,
deterministic
bool
)
([]
byte
,
error
)
{
return
xxx_messageInfo_DepositProofResp
.
Marshal
(
b
,
m
,
deterministic
)
}
func
(
m
*
DepositProofResp
)
XXX_Merge
(
src
proto
.
Message
)
{
xxx_messageInfo_DepositProofResp
.
Merge
(
m
,
src
)
}
func
(
m
*
DepositProofResp
)
XXX_Size
()
int
{
return
xxx_messageInfo_DepositProofResp
.
Size
(
m
)
}
func
(
m
*
DepositProofResp
)
XXX_DiscardUnknown
()
{
xxx_messageInfo_DepositProofResp
.
DiscardUnknown
(
m
)
}
var
xxx_messageInfo_DepositProofResp
proto
.
InternalMessageInfo
func
(
m
*
DepositProofResp
)
GetNoteHash
()
string
{
if
m
!=
nil
{
return
m
.
NoteHash
}
return
""
}
func
(
m
*
DepositProofResp
)
GetProof
()
*
SecretData
{
if
m
!=
nil
{
return
m
.
Proof
}
return
nil
}
func
(
m
*
DepositProofResp
)
GetSecrets
()
*
DHSecretGroup
{
if
m
!=
nil
{
return
m
.
Secrets
}
return
nil
}
type
TreePathProof
struct
{
TreeRootHash
string
`protobuf:"bytes,1,opt,name=treeRootHash,proto3" json:"treeRootHash,omitempty"`
TreePath
[]
string
`protobuf:"bytes,2,rep,name=treePath,proto3" json:"treePath,omitempty"`
Helpers
[]
uint32
`protobuf:"varint,3,rep,packed,name=helpers,proto3" json:"helpers,omitempty"`
ValidPath
[]
uint32
`protobuf:"varint,4,rep,packed,name=validPath,proto3" json:"validPath,omitempty"`
XXX_NoUnkeyedLiteral
struct
{}
`json:"-"`
XXX_unrecognized
[]
byte
`json:"-"`
XXX_sizecache
int32
`json:"-"`
}
func
(
m
*
TreePathProof
)
Reset
()
{
*
m
=
TreePathProof
{}
}
func
(
m
*
TreePathProof
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
TreePathProof
)
ProtoMessage
()
{}
func
(
*
TreePathProof
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
37
}
}
func
(
m
*
TreePathProof
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
return
xxx_messageInfo_TreePathProof
.
Unmarshal
(
m
,
b
)
}
func
(
m
*
TreePathProof
)
XXX_Marshal
(
b
[]
byte
,
deterministic
bool
)
([]
byte
,
error
)
{
return
xxx_messageInfo_TreePathProof
.
Marshal
(
b
,
m
,
deterministic
)
}
func
(
m
*
TreePathProof
)
XXX_Merge
(
src
proto
.
Message
)
{
xxx_messageInfo_TreePathProof
.
Merge
(
m
,
src
)
}
func
(
m
*
TreePathProof
)
XXX_Size
()
int
{
return
xxx_messageInfo_TreePathProof
.
Size
(
m
)
}
func
(
m
*
TreePathProof
)
XXX_DiscardUnknown
()
{
xxx_messageInfo_TreePathProof
.
DiscardUnknown
(
m
)
}
var
xxx_messageInfo_TreePathProof
proto
.
InternalMessageInfo
func
(
m
*
TreePathProof
)
GetTreeRootHash
()
string
{
if
m
!=
nil
{
return
m
.
TreeRootHash
}
return
""
}
func
(
m
*
TreePathProof
)
GetTreePath
()
[]
string
{
if
m
!=
nil
{
return
m
.
TreePath
}
return
nil
}
func
(
m
*
TreePathProof
)
GetHelpers
()
[]
uint32
{
if
m
!=
nil
{
return
m
.
Helpers
}
return
nil
}
func
(
m
*
TreePathProof
)
GetValidPath
()
[]
uint32
{
if
m
!=
nil
{
return
m
.
ValidPath
}
return
nil
}
type
WithdrawProofReq
struct
{
NoteHash
string
`protobuf:"bytes,1,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
XXX_NoUnkeyedLiteral
struct
{}
`json:"-"`
XXX_unrecognized
[]
byte
`json:"-"`
XXX_sizecache
int32
`json:"-"`
}
func
(
m
*
WithdrawProofReq
)
Reset
()
{
*
m
=
WithdrawProofReq
{}
}
func
(
m
*
WithdrawProofReq
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
WithdrawProofReq
)
ProtoMessage
()
{}
func
(
*
WithdrawProofReq
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
38
}
}
func
(
m
*
WithdrawProofReq
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
return
xxx_messageInfo_WithdrawProofReq
.
Unmarshal
(
m
,
b
)
}
func
(
m
*
WithdrawProofReq
)
XXX_Marshal
(
b
[]
byte
,
deterministic
bool
)
([]
byte
,
error
)
{
return
xxx_messageInfo_WithdrawProofReq
.
Marshal
(
b
,
m
,
deterministic
)
}
func
(
m
*
WithdrawProofReq
)
XXX_Merge
(
src
proto
.
Message
)
{
xxx_messageInfo_WithdrawProofReq
.
Merge
(
m
,
src
)
}
func
(
m
*
WithdrawProofReq
)
XXX_Size
()
int
{
return
xxx_messageInfo_WithdrawProofReq
.
Size
(
m
)
}
func
(
m
*
WithdrawProofReq
)
XXX_DiscardUnknown
()
{
xxx_messageInfo_WithdrawProofReq
.
DiscardUnknown
(
m
)
}
var
xxx_messageInfo_WithdrawProofReq
proto
.
InternalMessageInfo
func
(
m
*
WithdrawProofReq
)
GetNoteHash
()
string
{
if
m
!=
nil
{
return
m
.
NoteHash
}
return
""
}
type
WithdrawProofResp
struct
{
Proof
*
SecretData
`protobuf:"bytes,1,opt,name=proof,proto3" json:"proof,omitempty"`
NullifierHash
string
`protobuf:"bytes,2,opt,name=nullifierHash,proto3" json:"nullifierHash,omitempty"`
AuthSpendHash
string
`protobuf:"bytes,3,opt,name=authSpendHash,proto3" json:"authSpendHash,omitempty"`
NoteHash
string
`protobuf:"bytes,4,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
SpendPrivKey
string
`protobuf:"bytes,5,opt,name=spendPrivKey,proto3" json:"spendPrivKey,omitempty"`
SpendFlag
uint32
`protobuf:"varint,6,opt,name=spendFlag,proto3" json:"spendFlag,omitempty"`
AuthFlag
uint32
`protobuf:"varint,7,opt,name=authFlag,proto3" json:"authFlag,omitempty"`
TreeProof
*
TreePathProof
`protobuf:"bytes,8,opt,name=treeProof,proto3" json:"treeProof,omitempty"`
XXX_NoUnkeyedLiteral
struct
{}
`json:"-"`
XXX_unrecognized
[]
byte
`json:"-"`
XXX_sizecache
int32
`json:"-"`
}
func
(
m
*
WithdrawProofResp
)
Reset
()
{
*
m
=
WithdrawProofResp
{}
}
func
(
m
*
WithdrawProofResp
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
WithdrawProofResp
)
ProtoMessage
()
{}
func
(
*
WithdrawProofResp
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
39
}
}
func
(
m
*
WithdrawProofResp
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
return
xxx_messageInfo_WithdrawProofResp
.
Unmarshal
(
m
,
b
)
}
func
(
m
*
WithdrawProofResp
)
XXX_Marshal
(
b
[]
byte
,
deterministic
bool
)
([]
byte
,
error
)
{
return
xxx_messageInfo_WithdrawProofResp
.
Marshal
(
b
,
m
,
deterministic
)
}
func
(
m
*
WithdrawProofResp
)
XXX_Merge
(
src
proto
.
Message
)
{
xxx_messageInfo_WithdrawProofResp
.
Merge
(
m
,
src
)
}
func
(
m
*
WithdrawProofResp
)
XXX_Size
()
int
{
return
xxx_messageInfo_WithdrawProofResp
.
Size
(
m
)
}
func
(
m
*
WithdrawProofResp
)
XXX_DiscardUnknown
()
{
xxx_messageInfo_WithdrawProofResp
.
DiscardUnknown
(
m
)
}
var
xxx_messageInfo_WithdrawProofResp
proto
.
InternalMessageInfo
func
(
m
*
WithdrawProofResp
)
GetProof
()
*
SecretData
{
if
m
!=
nil
{
return
m
.
Proof
}
return
nil
}
func
(
m
*
WithdrawProofResp
)
GetNullifierHash
()
string
{
if
m
!=
nil
{
return
m
.
NullifierHash
}
return
""
}
func
(
m
*
WithdrawProofResp
)
GetAuthSpendHash
()
string
{
if
m
!=
nil
{
return
m
.
AuthSpendHash
}
return
""
}
func
(
m
*
WithdrawProofResp
)
GetNoteHash
()
string
{
if
m
!=
nil
{
return
m
.
NoteHash
}
return
""
}
func
(
m
*
WithdrawProofResp
)
GetSpendPrivKey
()
string
{
if
m
!=
nil
{
return
m
.
SpendPrivKey
}
return
""
}
func
(
m
*
WithdrawProofResp
)
GetSpendFlag
()
uint32
{
if
m
!=
nil
{
return
m
.
SpendFlag
}
return
0
}
func
(
m
*
WithdrawProofResp
)
GetAuthFlag
()
uint32
{
if
m
!=
nil
{
return
m
.
AuthFlag
}
return
0
}
func
(
m
*
WithdrawProofResp
)
GetTreeProof
()
*
TreePathProof
{
if
m
!=
nil
{
return
m
.
TreeProof
}
return
nil
}
type
AuthProofReq
struct
{
NoteHash
string
`protobuf:"bytes,1,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
AuthReturn
uint32
`protobuf:"varint,2,opt,name=authReturn,proto3" json:"authReturn,omitempty"`
XXX_NoUnkeyedLiteral
struct
{}
`json:"-"`
XXX_unrecognized
[]
byte
`json:"-"`
XXX_sizecache
int32
`json:"-"`
}
func
(
m
*
AuthProofReq
)
Reset
()
{
*
m
=
AuthProofReq
{}
}
func
(
m
*
AuthProofReq
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
AuthProofReq
)
ProtoMessage
()
{}
func
(
*
AuthProofReq
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
40
}
}
func
(
m
*
AuthProofReq
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
return
xxx_messageInfo_AuthProofReq
.
Unmarshal
(
m
,
b
)
}
func
(
m
*
AuthProofReq
)
XXX_Marshal
(
b
[]
byte
,
deterministic
bool
)
([]
byte
,
error
)
{
return
xxx_messageInfo_AuthProofReq
.
Marshal
(
b
,
m
,
deterministic
)
}
func
(
m
*
AuthProofReq
)
XXX_Merge
(
src
proto
.
Message
)
{
xxx_messageInfo_AuthProofReq
.
Merge
(
m
,
src
)
}
func
(
m
*
AuthProofReq
)
XXX_Size
()
int
{
return
xxx_messageInfo_AuthProofReq
.
Size
(
m
)
}
func
(
m
*
AuthProofReq
)
XXX_DiscardUnknown
()
{
xxx_messageInfo_AuthProofReq
.
DiscardUnknown
(
m
)
}
var
xxx_messageInfo_AuthProofReq
proto
.
InternalMessageInfo
func
(
m
*
AuthProofReq
)
GetNoteHash
()
string
{
if
m
!=
nil
{
return
m
.
NoteHash
}
return
""
}
func
(
m
*
AuthProofReq
)
GetAuthReturn
()
uint32
{
if
m
!=
nil
{
return
m
.
AuthReturn
}
return
0
}
type
AuthProofResp
struct
{
Proof
*
SecretData
`protobuf:"bytes,1,opt,name=proof,proto3" json:"proof,omitempty"`
AuthPubKey
string
`protobuf:"bytes,2,opt,name=authPubKey,proto3" json:"authPubKey,omitempty"`
AuthPrivKey
string
`protobuf:"bytes,3,opt,name=authPrivKey,proto3" json:"authPrivKey,omitempty"`
AuthHash
string
`protobuf:"bytes,4,opt,name=authHash,proto3" json:"authHash,omitempty"`
AuthSpendHash
string
`protobuf:"bytes,5,opt,name=authSpendHash,proto3" json:"authSpendHash,omitempty"`
NoteHash
string
`protobuf:"bytes,6,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
SpendFlag
uint32
`protobuf:"varint,7,opt,name=spendFlag,proto3" json:"spendFlag,omitempty"`
TreeProof
*
TreePathProof
`protobuf:"bytes,8,opt,name=treeProof,proto3" json:"treeProof,omitempty"`
XXX_NoUnkeyedLiteral
struct
{}
`json:"-"`
XXX_unrecognized
[]
byte
`json:"-"`
XXX_sizecache
int32
`json:"-"`
}
func
(
m
*
AuthProofResp
)
Reset
()
{
*
m
=
AuthProofResp
{}
}
func
(
m
*
AuthProofResp
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
AuthProofResp
)
ProtoMessage
()
{}
func
(
*
AuthProofResp
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
41
}
}
func
(
m
*
AuthProofResp
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
return
xxx_messageInfo_AuthProofResp
.
Unmarshal
(
m
,
b
)
}
func
(
m
*
AuthProofResp
)
XXX_Marshal
(
b
[]
byte
,
deterministic
bool
)
([]
byte
,
error
)
{
return
xxx_messageInfo_AuthProofResp
.
Marshal
(
b
,
m
,
deterministic
)
}
func
(
m
*
AuthProofResp
)
XXX_Merge
(
src
proto
.
Message
)
{
xxx_messageInfo_AuthProofResp
.
Merge
(
m
,
src
)
}
func
(
m
*
AuthProofResp
)
XXX_Size
()
int
{
return
xxx_messageInfo_AuthProofResp
.
Size
(
m
)
}
func
(
m
*
AuthProofResp
)
XXX_DiscardUnknown
()
{
xxx_messageInfo_AuthProofResp
.
DiscardUnknown
(
m
)
}
var
xxx_messageInfo_AuthProofResp
proto
.
InternalMessageInfo
func
(
m
*
AuthProofResp
)
GetProof
()
*
SecretData
{
if
m
!=
nil
{
return
m
.
Proof
}
return
nil
}
func
(
m
*
AuthProofResp
)
GetAuthPubKey
()
string
{
if
m
!=
nil
{
return
m
.
AuthPubKey
}
return
""
}
func
(
m
*
AuthProofResp
)
GetAuthPrivKey
()
string
{
if
m
!=
nil
{
return
m
.
AuthPrivKey
}
return
""
}
func
(
m
*
AuthProofResp
)
GetAuthHash
()
string
{
if
m
!=
nil
{
return
m
.
AuthHash
}
return
""
}
func
(
m
*
AuthProofResp
)
GetAuthSpendHash
()
string
{
if
m
!=
nil
{
return
m
.
AuthSpendHash
}
return
""
}
func
(
m
*
AuthProofResp
)
GetNoteHash
()
string
{
if
m
!=
nil
{
return
m
.
NoteHash
}
return
""
}
func
(
m
*
AuthProofResp
)
GetSpendFlag
()
uint32
{
if
m
!=
nil
{
return
m
.
SpendFlag
}
return
0
}
func
(
m
*
AuthProofResp
)
GetTreeProof
()
*
TreePathProof
{
if
m
!=
nil
{
return
m
.
TreeProof
}
return
nil
}
type
WalletIndexInfo
struct
{
type
WalletIndexInfo
struct
{
NoteHash
string
`protobuf:"bytes,1,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
NoteHash
string
`protobuf:"bytes,1,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
Nullifier
string
`protobuf:"bytes,2,opt,name=nullifier,proto3" json:"nullifier,omitempty"`
Nullifier
string
`protobuf:"bytes,2,opt,name=nullifier,proto3" json:"nullifier,omitempty"`
AuthSpendHash
string
`protobuf:"bytes,3,opt,name=authSpendHash,proto3" json:"authSpendHash,omitempty"`
AuthSpendHash
string
`protobuf:"bytes,3,opt,name=authSpendHash,proto3" json:"authSpendHash,omitempty"`
Spender
string
`protobuf:"bytes,4,opt,name=spender,proto3" json:"spend
er,omitempty"`
IsReturner
bool
`protobuf:"varint,4,opt,name=isReturner,proto3" json:"isReturn
er,omitempty"`
Account
string
`protobuf:"bytes,5,opt,name=account,proto3" json:"account,omitempty"`
Account
string
`protobuf:"bytes,5,opt,name=account,proto3" json:"account,omitempty"`
Status
NoteStatus
`protobuf:"varint,6,opt,name=status,proto3,enum=types.NoteStatus" json:"status,omitempty"`
Status
NoteStatus
`protobuf:"varint,6,opt,name=status,proto3,enum=types.NoteStatus" json:"status,omitempty"`
Secret
*
SecretData
`protobuf:"bytes,7,opt,name=secret,proto3" json:"secret,omitempty"`
Secret
*
SecretData
`protobuf:"bytes,7,opt,name=secret,proto3" json:"secret,omitempty"`
...
@@ -2074,7 +2547,7 @@ func (m *WalletIndexInfo) Reset() { *m = WalletIndexInfo{} }
...
@@ -2074,7 +2547,7 @@ func (m *WalletIndexInfo) Reset() { *m = WalletIndexInfo{} }
func
(
m
*
WalletIndexInfo
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
WalletIndexInfo
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
WalletIndexInfo
)
ProtoMessage
()
{}
func
(
*
WalletIndexInfo
)
ProtoMessage
()
{}
func
(
*
WalletIndexInfo
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
WalletIndexInfo
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
34
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
42
}
}
}
func
(
m
*
WalletIndexInfo
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
WalletIndexInfo
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -2116,11 +2589,11 @@ func (m *WalletIndexInfo) GetAuthSpendHash() string {
...
@@ -2116,11 +2589,11 @@ func (m *WalletIndexInfo) GetAuthSpendHash() string {
return
""
return
""
}
}
func
(
m
*
WalletIndexInfo
)
Get
Spender
()
string
{
func
(
m
*
WalletIndexInfo
)
Get
IsReturner
()
bool
{
if
m
!=
nil
{
if
m
!=
nil
{
return
m
.
Spend
er
return
m
.
IsReturn
er
}
}
return
""
return
false
}
}
func
(
m
*
WalletIndexInfo
)
GetAccount
()
string
{
func
(
m
*
WalletIndexInfo
)
GetAccount
()
string
{
...
@@ -2156,7 +2629,7 @@ func (m *WalletDbMixInfo) Reset() { *m = WalletDbMixInfo{} }
...
@@ -2156,7 +2629,7 @@ func (m *WalletDbMixInfo) Reset() { *m = WalletDbMixInfo{} }
func
(
m
*
WalletDbMixInfo
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
WalletDbMixInfo
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
WalletDbMixInfo
)
ProtoMessage
()
{}
func
(
*
WalletDbMixInfo
)
ProtoMessage
()
{}
func
(
*
WalletDbMixInfo
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
WalletDbMixInfo
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
35
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
43
}
}
}
func
(
m
*
WalletDbMixInfo
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
WalletDbMixInfo
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -2195,7 +2668,6 @@ type WalletMixIndexReq struct {
...
@@ -2195,7 +2668,6 @@ type WalletMixIndexReq struct {
NoteHash
string
`protobuf:"bytes,1,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
NoteHash
string
`protobuf:"bytes,1,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
Nullifier
string
`protobuf:"bytes,2,opt,name=nullifier,proto3" json:"nullifier,omitempty"`
Nullifier
string
`protobuf:"bytes,2,opt,name=nullifier,proto3" json:"nullifier,omitempty"`
AuthSpendHash
string
`protobuf:"bytes,3,opt,name=authSpendHash,proto3" json:"authSpendHash,omitempty"`
AuthSpendHash
string
`protobuf:"bytes,3,opt,name=authSpendHash,proto3" json:"authSpendHash,omitempty"`
Spender
string
`protobuf:"bytes,4,opt,name=spender,proto3" json:"spender,omitempty"`
Account
string
`protobuf:"bytes,5,opt,name=account,proto3" json:"account,omitempty"`
Account
string
`protobuf:"bytes,5,opt,name=account,proto3" json:"account,omitempty"`
Status
int32
`protobuf:"varint,6,opt,name=status,proto3" json:"status,omitempty"`
Status
int32
`protobuf:"varint,6,opt,name=status,proto3" json:"status,omitempty"`
Count
int32
`protobuf:"varint,7,opt,name=count,proto3" json:"count,omitempty"`
Count
int32
`protobuf:"varint,7,opt,name=count,proto3" json:"count,omitempty"`
...
@@ -2209,7 +2681,7 @@ func (m *WalletMixIndexReq) Reset() { *m = WalletMixIndexReq{} }
...
@@ -2209,7 +2681,7 @@ func (m *WalletMixIndexReq) Reset() { *m = WalletMixIndexReq{} }
func
(
m
*
WalletMixIndexReq
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
WalletMixIndexReq
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
WalletMixIndexReq
)
ProtoMessage
()
{}
func
(
*
WalletMixIndexReq
)
ProtoMessage
()
{}
func
(
*
WalletMixIndexReq
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
WalletMixIndexReq
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
36
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
44
}
}
}
func
(
m
*
WalletMixIndexReq
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
WalletMixIndexReq
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -2251,13 +2723,6 @@ func (m *WalletMixIndexReq) GetAuthSpendHash() string {
...
@@ -2251,13 +2723,6 @@ func (m *WalletMixIndexReq) GetAuthSpendHash() string {
return
""
return
""
}
}
func
(
m
*
WalletMixIndexReq
)
GetSpender
()
string
{
if
m
!=
nil
{
return
m
.
Spender
}
return
""
}
func
(
m
*
WalletMixIndexReq
)
GetAccount
()
string
{
func
(
m
*
WalletMixIndexReq
)
GetAccount
()
string
{
if
m
!=
nil
{
if
m
!=
nil
{
return
m
.
Account
return
m
.
Account
...
@@ -2297,7 +2762,7 @@ func (m *WalletIndexResp) Reset() { *m = WalletIndexResp{} }
...
@@ -2297,7 +2762,7 @@ func (m *WalletIndexResp) Reset() { *m = WalletIndexResp{} }
func
(
m
*
WalletIndexResp
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
WalletIndexResp
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
WalletIndexResp
)
ProtoMessage
()
{}
func
(
*
WalletIndexResp
)
ProtoMessage
()
{}
func
(
*
WalletIndexResp
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
WalletIndexResp
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
37
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
45
}
}
}
func
(
m
*
WalletIndexResp
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
WalletIndexResp
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -2336,7 +2801,7 @@ func (m *WalletReqAddrs) Reset() { *m = WalletReqAddrs{} }
...
@@ -2336,7 +2801,7 @@ func (m *WalletReqAddrs) Reset() { *m = WalletReqAddrs{} }
func
(
m
*
WalletReqAddrs
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
WalletReqAddrs
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
WalletReqAddrs
)
ProtoMessage
()
{}
func
(
*
WalletReqAddrs
)
ProtoMessage
()
{}
func
(
*
WalletReqAddrs
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
WalletReqAddrs
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
38
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
46
}
}
}
func
(
m
*
WalletReqAddrs
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
WalletReqAddrs
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -2377,7 +2842,7 @@ func (m *WalletEnablePrivacyRst) Reset() { *m = WalletEnablePrivacyRst{}
...
@@ -2377,7 +2842,7 @@ func (m *WalletEnablePrivacyRst) Reset() { *m = WalletEnablePrivacyRst{}
func
(
m
*
WalletEnablePrivacyRst
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
WalletEnablePrivacyRst
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
WalletEnablePrivacyRst
)
ProtoMessage
()
{}
func
(
*
WalletEnablePrivacyRst
)
ProtoMessage
()
{}
func
(
*
WalletEnablePrivacyRst
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
WalletEnablePrivacyRst
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
39
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
47
}
}
}
func
(
m
*
WalletEnablePrivacyRst
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
WalletEnablePrivacyRst
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -2430,7 +2895,7 @@ func (m *WalletEnablePrivacyResp) Reset() { *m = WalletEnablePrivacyResp
...
@@ -2430,7 +2895,7 @@ func (m *WalletEnablePrivacyResp) Reset() { *m = WalletEnablePrivacyResp
func
(
m
*
WalletEnablePrivacyResp
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
WalletEnablePrivacyResp
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
WalletEnablePrivacyResp
)
ProtoMessage
()
{}
func
(
*
WalletEnablePrivacyResp
)
ProtoMessage
()
{}
func
(
*
WalletEnablePrivacyResp
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
WalletEnablePrivacyResp
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
4
0
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
4
8
}
}
}
func
(
m
*
WalletEnablePrivacyResp
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
WalletEnablePrivacyResp
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -2471,7 +2936,7 @@ func (m *LocalMixTx) Reset() { *m = LocalMixTx{} }
...
@@ -2471,7 +2936,7 @@ func (m *LocalMixTx) Reset() { *m = LocalMixTx{} }
func
(
m
*
LocalMixTx
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
LocalMixTx
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
LocalMixTx
)
ProtoMessage
()
{}
func
(
*
LocalMixTx
)
ProtoMessage
()
{}
func
(
*
LocalMixTx
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
LocalMixTx
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
4
1
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
4
9
}
}
}
func
(
m
*
LocalMixTx
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
LocalMixTx
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -2529,7 +2994,7 @@ func (m *MixTxListReq) Reset() { *m = MixTxListReq{} }
...
@@ -2529,7 +2994,7 @@ func (m *MixTxListReq) Reset() { *m = MixTxListReq{} }
func
(
m
*
MixTxListReq
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
MixTxListReq
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
MixTxListReq
)
ProtoMessage
()
{}
func
(
*
MixTxListReq
)
ProtoMessage
()
{}
func
(
*
MixTxListReq
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
MixTxListReq
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
42
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
50
}
}
}
func
(
m
*
MixTxListReq
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
MixTxListReq
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -2603,7 +3068,7 @@ func (m *MixTxListResp) Reset() { *m = MixTxListResp{} }
...
@@ -2603,7 +3068,7 @@ func (m *MixTxListResp) Reset() { *m = MixTxListResp{} }
func
(
m
*
MixTxListResp
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
MixTxListResp
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
MixTxListResp
)
ProtoMessage
()
{}
func
(
*
MixTxListResp
)
ProtoMessage
()
{}
func
(
*
MixTxListResp
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
MixTxListResp
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
43
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
51
}
}
}
func
(
m
*
MixTxListResp
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
MixTxListResp
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -2644,7 +3109,7 @@ func (m *PrivacyAddrResult) Reset() { *m = PrivacyAddrResult{} }
...
@@ -2644,7 +3109,7 @@ func (m *PrivacyAddrResult) Reset() { *m = PrivacyAddrResult{} }
func
(
m
*
PrivacyAddrResult
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
PrivacyAddrResult
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
PrivacyAddrResult
)
ProtoMessage
()
{}
func
(
*
PrivacyAddrResult
)
ProtoMessage
()
{}
func
(
*
PrivacyAddrResult
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
PrivacyAddrResult
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
44
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
52
}
}
}
func
(
m
*
PrivacyAddrResult
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
PrivacyAddrResult
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -2697,7 +3162,7 @@ func (m *ReqEnablePrivacyRst) Reset() { *m = ReqEnablePrivacyRst{} }
...
@@ -2697,7 +3162,7 @@ func (m *ReqEnablePrivacyRst) Reset() { *m = ReqEnablePrivacyRst{} }
func
(
m
*
ReqEnablePrivacyRst
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
m
*
ReqEnablePrivacyRst
)
String
()
string
{
return
proto
.
CompactTextString
(
m
)
}
func
(
*
ReqEnablePrivacyRst
)
ProtoMessage
()
{}
func
(
*
ReqEnablePrivacyRst
)
ProtoMessage
()
{}
func
(
*
ReqEnablePrivacyRst
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
ReqEnablePrivacyRst
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
45
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
53
}
}
}
func
(
m
*
ReqEnablePrivacyRst
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
func
(
m
*
ReqEnablePrivacyRst
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
@@ -2727,7 +3192,6 @@ func (m *ReqEnablePrivacyRst) GetResults() []*PrivacyAddrResult {
...
@@ -2727,7 +3192,6 @@ func (m *ReqEnablePrivacyRst) GetResults() []*PrivacyAddrResult {
func
init
()
{
func
init
()
{
proto
.
RegisterEnum
(
"types.VerifyType"
,
VerifyType_name
,
VerifyType_value
)
proto
.
RegisterEnum
(
"types.VerifyType"
,
VerifyType_name
,
VerifyType_value
)
proto
.
RegisterEnum
(
"types.ZkCurveId"
,
ZkCurveId_name
,
ZkCurveId_value
)
proto
.
RegisterEnum
(
"types.MixConfigType"
,
MixConfigType_name
,
MixConfigType_value
)
proto
.
RegisterEnum
(
"types.MixConfigType"
,
MixConfigType_name
,
MixConfigType_value
)
proto
.
RegisterEnum
(
"types.MixConfigAct"
,
MixConfigAct_name
,
MixConfigAct_value
)
proto
.
RegisterEnum
(
"types.MixConfigAct"
,
MixConfigAct_name
,
MixConfigAct_value
)
proto
.
RegisterEnum
(
"types.NoteStatus"
,
NoteStatus_name
,
NoteStatus_value
)
proto
.
RegisterEnum
(
"types.NoteStatus"
,
NoteStatus_name
,
NoteStatus_value
)
...
@@ -2735,6 +3199,7 @@ func init() {
...
@@ -2735,6 +3199,7 @@ func init() {
proto
.
RegisterType
((
*
ZkVerifyKey
)(
nil
),
"types.ZkVerifyKey"
)
proto
.
RegisterType
((
*
ZkVerifyKey
)(
nil
),
"types.ZkVerifyKey"
)
proto
.
RegisterType
((
*
ZkVerifyKeys
)(
nil
),
"types.ZkVerifyKeys"
)
proto
.
RegisterType
((
*
ZkVerifyKeys
)(
nil
),
"types.ZkVerifyKeys"
)
proto
.
RegisterType
((
*
AuthPubKeys
)(
nil
),
"types.AuthPubKeys"
)
proto
.
RegisterType
((
*
AuthPubKeys
)(
nil
),
"types.AuthPubKeys"
)
proto
.
RegisterType
((
*
PaymentKey
)(
nil
),
"types.PaymentKey"
)
proto
.
RegisterType
((
*
MixConfigAction
)(
nil
),
"types.MixConfigAction"
)
proto
.
RegisterType
((
*
MixConfigAction
)(
nil
),
"types.MixConfigAction"
)
proto
.
RegisterType
((
*
DHSecret
)(
nil
),
"types.DHSecret"
)
proto
.
RegisterType
((
*
DHSecret
)(
nil
),
"types.DHSecret"
)
proto
.
RegisterType
((
*
DHSecretGroup
)(
nil
),
"types.DHSecretGroup"
)
proto
.
RegisterType
((
*
DHSecretGroup
)(
nil
),
"types.DHSecretGroup"
)
...
@@ -2766,6 +3231,13 @@ func init() {
...
@@ -2766,6 +3231,13 @@ func init() {
proto
.
RegisterType
((
*
EncodedSecretData
)(
nil
),
"types.EncodedSecretData"
)
proto
.
RegisterType
((
*
EncodedSecretData
)(
nil
),
"types.EncodedSecretData"
)
proto
.
RegisterType
((
*
EncryptSecretData
)(
nil
),
"types.EncryptSecretData"
)
proto
.
RegisterType
((
*
EncryptSecretData
)(
nil
),
"types.EncryptSecretData"
)
proto
.
RegisterType
((
*
DecryptSecretData
)(
nil
),
"types.DecryptSecretData"
)
proto
.
RegisterType
((
*
DecryptSecretData
)(
nil
),
"types.DecryptSecretData"
)
proto
.
RegisterType
((
*
DepositProofReq
)(
nil
),
"types.DepositProofReq"
)
proto
.
RegisterType
((
*
DepositProofResp
)(
nil
),
"types.DepositProofResp"
)
proto
.
RegisterType
((
*
TreePathProof
)(
nil
),
"types.TreePathProof"
)
proto
.
RegisterType
((
*
WithdrawProofReq
)(
nil
),
"types.WithdrawProofReq"
)
proto
.
RegisterType
((
*
WithdrawProofResp
)(
nil
),
"types.WithdrawProofResp"
)
proto
.
RegisterType
((
*
AuthProofReq
)(
nil
),
"types.AuthProofReq"
)
proto
.
RegisterType
((
*
AuthProofResp
)(
nil
),
"types.AuthProofResp"
)
proto
.
RegisterType
((
*
WalletIndexInfo
)(
nil
),
"types.WalletIndexInfo"
)
proto
.
RegisterType
((
*
WalletIndexInfo
)(
nil
),
"types.WalletIndexInfo"
)
proto
.
RegisterType
((
*
WalletDbMixInfo
)(
nil
),
"types.WalletDbMixInfo"
)
proto
.
RegisterType
((
*
WalletDbMixInfo
)(
nil
),
"types.WalletDbMixInfo"
)
proto
.
RegisterType
((
*
WalletMixIndexReq
)(
nil
),
"types.WalletMixIndexReq"
)
proto
.
RegisterType
((
*
WalletMixIndexReq
)(
nil
),
"types.WalletMixIndexReq"
)
...
@@ -2785,133 +3257,149 @@ func init() {
...
@@ -2785,133 +3257,149 @@ func init() {
}
}
var
fileDescriptor_5c21d519a9be369a
=
[]
byte
{
var
fileDescriptor_5c21d519a9be369a
=
[]
byte
{
// 2014 bytes of a gzipped FileDescriptorProto
// 2266 bytes of a gzipped FileDescriptorProto
0x1f
,
0x8b
,
0x08
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x02
,
0xff
,
0xcc
,
0x58
,
0x5b
,
0x73
,
0x1b
,
0x49
,
0x1f
,
0x8b
,
0x08
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x02
,
0xff
,
0xac
,
0x59
,
0x4b
,
0x93
,
0x1b
,
0x49
,
0x15
,
0xf6
,
0xe8
,
0xae
,
0x23
,
0xcb
,
0x1e
,
0x75
,
0xbc
,
0x5e
,
0xad
,
0x8b
,
0x05
,
0x33
,
0xeb
,
0xdd
,
0xf1
,
0x57
,
0xeb
,
0xad
,
0x94
,
0x34
,
0x23
,
0x95
,
0xbd
,
0x5e
,
0xed
,
0xc4
,
0x7f
,
0xf7
,
0x3f
,
0xf4
,
0xf2
,
0x2a
,
0x10
,
0x76
,
0x95
,
0x6c
,
0x36
,
0x14
,
0x05
,
0x94
,
0x62
,
0x29
,
0x91
,
0x88
,
0x2d
,
0xa9
,
0x7a
,
0x97
,
0xd9
,
0x31
,
0x0c
,
0xbb
,
0xb2
,
0x71
,
0x40
,
0x10
,
0x40
,
0x08
,
0x4b
,
0xb6
,
0x64
,
0x7b
,
0x5a
,
0xf2
,
0x3a
,
0x31
,
0x97
,
0xaa
,
0xb1
,
0xa6
,
0x6d
,
0x4d
,
0x59
,
0x9a
,
0x19
,
0xcf
,
0xb4
,
0x1c
,
0x34
,
0x8a
,
0x92
,
0xfc
,
0xe4
,
0x11
,
0xd1
,
0x23
,
0xd5
,
0x8c
,
0x2a
,
0x2c
,
0x75
,
0xf7
,
0x74
,
0xb7
,
0x89
,
0x1f
,
0xc0
,
0x1b
,
0xaf
,
0x3c
,
0x42
,
0xf1
,
0xc4
,
0x1f
,
0xa0
,
0x28
,
0x8a
,
0x5f
,
0xc0
,
0x6f
,
0xc6
,
0x12
,
0x37
,
0x2e
,
0x70
,
0xe2
,
0xc0
,
0x85
,
0x23
,
0x04
,
0x27
,
0x22
,
0x38
,
0x13
,
0x04
,
0xc1
,
0xe1
,
0x95
,
0x47
,
0x5e
,
0xa8
,
0xbe
,
0xcd
,
0x45
,
0x96
,
0x72
,
0x81
,
0x97
,
0x7d
,
0x9b
,
0x73
,
0xfa
,
0x27
,
0xe0
,
0x2b
,
0xf0
,
0x2d
,
0xf8
,
0x08
,
0x44
,
0xbd
,
0xba
,
0xab
,
0x7b
,
0xa4
,
0x79
,
0x2c
,
0xdc
,
0xeb
,
0xd3
,
0xe7
,
0xde
,
0xa7
,
0x07
,
0x8a
,
0x53
,
0x7b
,
0xfe
,
0xc0
,
0xf3
,
0x5d
,
0xea
,
0xa2
,
0x2c
,
0x94
,
0x59
,
0xbf
,
0xca
,
0xca
,
0xfc
,
0x65
,
0x56
,
0x55
,
0x76
,
0x09
,
0x4a
,
0x73
,
0xba
,
0x3c
,
0x70
,
0x5d
,
0x78
,
0x24
,
0xd8
,
0xdb
,
0x1c
,
0xb9
,
0xd3
,
0xa9
,
0xeb
,
0x08
,
0xe6
,
0x5e
,
0x85
,
0xfa
,
0xa6
,
0x3d
,
0x27
,
0x70
,
0x50
,
0x2e
,
0x58
,
0xb9
,
0xc4
,
0xdf
,
0xa9
,
0x8c
,
0x9d
,
0xf9
,
0xdc
,
0xb1
,
0x85
,
0x13
,
0x98
,
0x23
,
0x6a
,
0x2b
,
0x96
,
0x71
,
0x0b
,
0xa5
,
0xf3
,
0xeb
,
0x6f
,
0x88
,
0x6f
,
0x5f
,
0x2e
,
0x72
,
0xa7
,
0x1e
,
0x78
,
0x96
,
0xed
,
0x5b
,
0xe3
,
0x80
,
0x2a
,
0x95
,
0xf9
,
0x14
,
0xca
,
0x6f
,
0xdf
,
0x5e
,
0x90
,
0x05
,
0xaa
,
0x41
,
0x7e
,
0x34
,
0xf3
,
0x6f
,
0x49
,
0xc7
,
0xaa
,
0x6a
,
0xfb
,
0xda
,
0xe1
,
0xbd
,
0x24
,
0x1e
,
0x3d
,
0x59
,
0x3d
,
0x23
,
0x2b
,
0xf4
,
0x19
,
0x64
,
0xd9
,
0xc4
,
0x86
,
0xb1
,
0x6b
,
0x56
,
0x5d
,
0x7f
,
0xc0
,
0x05
,
0x3d
,
0x38
,
0xbf
,
0x3e
,
0x12
,
0x7c
,
0xac
,
0x00
,
0xe8
,
0x53
,
0xc8
,
0xec
,
0x6d
,
0x35
,
0xeb
,
0x07
,
0xdc
,
0xca
,
0x81
,
0x18
,
0x1f
,
0xad
,
0x5c
,
0x82
,
0xf9
,
0x30
,
0xba
,
0xb0
,
0xb5
,
0x6a
,
0x8a
,
0x03
,
0x2b
,
0x12
,
0x28
,
0x64
,
0x0d
,
0x17
,
0x1e
,
0xc1
,
0x7c
,
0x19
,
0xed
,
0x0d
,
0xb9
,
0x73
,
0x6b
,
0xb6
,
0x20
,
0x8d
,
0xf4
,
0xae
,
0xb1
,
0x57
,
0xc2
,
0x42
,
0x30
,
0x1f
,
0x42
,
0x40
,
0xf6
,
0xd6
,
0x9c
,
0xcc
,
0x48
,
0x35
,
0xbd
,
0xaf
,
0x1d
,
0x16
,
0xb1
,
0x20
,
0x8c
,
0xc7
,
0xb0
,
0x45
,
0xb3
,
0xe5
,
0xa3
,
0xcf
,
0x21
,
0x3b
,
0xb1
,
0x02
,
0xab
,
0x61
,
0xec
,
0x66
,
0xf6
,
0xca
,
0x4d
,
0x19
,
0x3b
,
0x37
,
0x40
,
0x9f
,
0x41
,
0xc6
,
0x32
,
0xa9
,
0x59
,
0xd5
,
0xf6
,
0xd3
,
0x87
,
0xa5
,
0x3a
,
0x24
,
0x8d
,
0x69
,
0x10
,
0xcc
,
0xc7
,
0xcd
,
0x6f
,
0x40
,
0xb9
,
0xb5
,
0x08
,
0xa6
,
0x83
,
0xc5
,
0x31
,
0x0a
,
0x4f
,
0x0d
,
0x21
,
0x98
,
0xaf
,
0x1b
,
0xdf
,
0x87
,
0x52
,
0x63
,
0x46
,
0xc7
,
0xfd
,
0xd9
,
0x05
,
0x9f
,
0x86
,
0xb4
,
0x69
,
0x25
,
0x09
,
0x39
,
0x03
,
0x18
,
0x58
,
0xab
,
0x39
,
0xb1
,
0x03
,
0xe6
,
0x25
,
0xdf
,
0x86
,
0x62
,
0xdb
,
0x8a
,
0x12
,
0xf2
,
0x2f
,
0x0d
,
0xb6
,
0x4f
,
0xec
,
0xf9
,
0x91
,
0xeb
,
0x5c
,
0x82
,
0xac
,
0x35
,
0x99
,
0x78
,
0xdc
,
0xcb
,
0x12
,
0xe6
,
0xbf
,
0xd1
,
0xff
,
0x41
,
0xc9
,
0xb5
,
0x56
,
0xda
,
0x57
,
0x0d
,
0x6e
,
0x2c
,
0x3a
,
0x80
,
0xd4
,
0x70
,
0x21
,
0x4d
,
0xda
,
0x91
,
0xc2
,
0x43
,
0x0c
,
0xd4
,
0x3e
,
0x7d
,
0x46
,
0x56
,
0xd2
,
0xad
,
0x48
,
0x81
,
0xbe
,
0x82
,
0x8a
,
0x47
,
0xc6
,
0x84
,
0x9e
,
0x57
,
0x36
,
0x35
,
0x5c
,
0xa0
,
0xfb
,
0x90
,
0x13
,
0x78
,
0x69
,
0xd3
,
0xbd
,
0x65
,
0x64
,
0x63
,
0x44
,
0x4b
,
0x40
,
0x66
,
0xd7
,
0xd8
,
0x2b
,
0x37
,
0xab
,
0xd2
,
0x25
,
0xb1
,
0x32
,
0x8e
,
0x41
,
0xcc
,
0x7f
,
0xb1
,
0x84
,
0xa0
,
0x3a
,
0x14
,
0x6f
,
0x95
,
0x72
,
0xdc
,
0xb6
,
0x95
,
0x6a
,
0xb7
,
0x37
,
0x70
,
0x04
,
0x1b
,
0xb0
,
0x7d
,
0x48
,
0x97
,
0x8f
,
0x1c
,
0xfb
,
0x84
,
0x9e
,
0xb6
,
0x38
,
0x67
,
0xe8
,
0x2e
,
0xa4
,
0x43
,
0x55
,
0xc8
,
0x99
,
0x4c
,
0xfb
,
0xeb
,
0x6a
,
0x86
,
0x39
,
0xa3
,
0xbd
,
0x81
,
0x25
,
0x8d
,
0x7e
,
0x47
,
0x2b
,
0x49
,
0xce
,
0x6d
,
0x39
,
0x39
,
0xc4
,
0x70
,
0x7e
,
0xd2
,
0xa3
,
0x15
,
0xba
,
0x07
,
0x79
,
0x08
,
0x45
,
0xcf
,
0x5c
,
0x4c
,
0x89
,
0x43
,
0xfb
,
0xd7
,
0xd5
,
0x2c
,
0x97
,
0x56
,
0x96
,
0xd2
,
0x84
,
0x81
,
0xe7
,
0x7e
,
0x6c
,
0x35
,
0x6f
,
0x25
,
0x91
,
0xad
,
0x71
,
0x80
,
0x25
,
0x04
,
0x35
,
0xa1
,
0x74
,
0xad
,
0x4c
,
0x50
,
0x88
,
0x78
,
0x9a
,
0x97
,
0x4e
,
0x35
,
0x8e
,
0xa0
,
0xd0
,
0x6c
,
0x0f
,
0xc8
,
0xc8
,
0xae
,
0xf8
,
0x90
,
0x6e
,
0xad
,
0x61
,
0xaa
,
0x9b
,
0xc2
,
0x11
,
0x0c
,
0x35
,
0x20
,
0x6f
,
0x31
,
0xc2
,
0x27
,
0x14
,
0x7d
,
0x0f
,
0xd2
,
0xc4
,
0xbb
,
0xe6
,
0x56
,
0x2e
,
0xef
,
0xc6
,
0x6c
,
0x05
,
0xed
,
0x42
,
0xde
,
0x35
,
0xb2
,
0x2c
,
0xd0
,
0x6e
,
0x0a
,
0x4b
,
0x19
,
0xdd
,
0x07
,
0x70
,
0x43
,
0x9e
,
0x1a
,
0x39
,
0x2e
,
0xe0
,
0x50
,
0x19
,
0x0b
,
0x49
,
0x19
,
0x7f
,
0xd0
,
0xa0
,
0xac
,
0xa4
,
0x3c
,
0xf7
,
0xdd
,
0x99
,
0x6e
,
0x4e
,
0x65
,
0x31
,
0x22
,
0xb0
,
0x9b
,
0xc2
,
0x1a
,
0xec
,
0x27
,
0x05
,
0x99
,
0x4d
,
0xf3
,
0x11
,
0x87
,
0x3e
,
0x87
,
0x7c
,
0xe0
,
0x11
,
0xc7
,
0x22
,
0xbe
,
0x14
,
0xb7
,
0x2d
,
0xc5
,
0x29
,
0x18
,
0x56
,
0x14
,
0xdb
,
0xdd
,
0x21
,
0x19
,
0x7b
,
0x24
,
0x40
,
0xff
,
0x0f
,
0x19
,
0xe2
,
0xbe
,
0xe3
,
0xb1
,
0x5e
,
0xeb
,
0xe8
,
0x3e
,
0x14
,
0x7c
,
0x42
,
0x67
,
0xbe
,
0x43
,
0x7c
,
0xee
,
0xb6
,
0x15
,
0xd8
,
0x10
,
0xc0
,
0x20
,
0x8a
,
0x8d
,
0xa0
,
0x3b
,
0x90
,
0xf7
,
0x39
,
0x94
,
0x7b
,
0x5d
,
0xc2
,
0x52
,
0x32
,
0x7f
,
0x6f
,
0xcc
,
0x64
,
0x06
,
0xbb
,
0xbe
,
0xfd
,
0x5b
,
0x22
,
0x9d
,
0x76
,
0x07
,
0x1d
,
0x21
,
0x8c
,
0x1b
,
0x96
,
0x40
,
0x55
,
0x59
,
0x79
,
0xe2
,
0x39
,
0x0b
,
0x17
,
0x7d
,
0x01
,
0x05
,
0xb9
,
0x9a
,
0x34
,
0xb7
,
0x2d
,
0x9d
,
0x7d
,
0xdf
,
0x75
,
0x2f
,
0x3b
,
0xce
,
0xa5
,
0xcb
,
0x52
,
0xc9
,
0x63
,
0x04
,
0xd7
,
0xa9
,
0x88
,
0xcd
,
0x29
,
0x18
,
0x56
,
0xe3
,
0xe8
,
0x1e
,
0x14
,
0x3d
,
0x12
,
0x2c
,
0x3c
,
0x9b
,
0x78
,
0x9c
,
0xbc
,
0x05
,
0x81
,
0xf6
,
0xa1
,
0xe4
,
0xcd
,
0x2e
,
0x26
,
0xf6
,
0xa8
,
0xe3
,
0x78
,
0x33
,
0xca
,
0x75
,
0x28
,
0x35
,
0xd8
,
0x10
,
0x80
,
0xbe
,
0x0d
,
0x25
,
0x16
,
0xb6
,
0xe3
,
0xd1
,
0x5f
,
0x12
,
0x49
,
0xdd
,
0x05
,
0xe2
,
0x38
,
0x0b
,
0xd5
,
0x20
,
0x7b
,
0xc5
,
0xcc
,
0x92
,
0x27
,
0xee
,
0x2c
,
0x9d
,
0xc8
,
0x4d
,
0xc6
,
0x74
,
0x84
,
0x30
,
0xcf
,
0x58
,
0xa9
,
0x0f
,
0x3c
,
0xc7
,
0x39
,
0xe9
,
0xd9
,
0x27
,
0x0e
,
0xab
,
0x61
,
0x02
,
0x62
,
0xfc
,
0x06
,
0xf4
,
0x13
,
0x7b
,
0xde
,
0x24
,
0x9e
,
0x1b
,
0xd8
,
0x54
,
0x86
,
0x7a
,
0x17
,
0x97
,
0x09
,
0xb2
,
0x8a
,
0x84
,
0x80
,
0x76
,
0xa1
,
0xec
,
0x2e
,
0x8e
,
0x67
,
0x74
,
0xdc
,
0xb3
,
0xdd
,
0x72
,
0xe6
,
0xd4
,
0x9d
,
0x39
,
0x94
,
0x1f
,
0x9c
,
0xc1
,
0x92
,
0x42
,
0x75
,
0x00
,
0x87
,
0xbc
,
0x3e
,
0x45
,
0x20
,
0x0b
,
0x49
,
0x57
,
0xa1
,
0x7d
,
0xc8
,
0x9d
,
0xb2
,
0xb0
,
0xe4
,
0x8a
,
0xb7
,
0x13
,
0x2b
,
0x72
,
0xa7
,
0x53
,
0x9b
,
0x06
,
0xd5
,
0xd4
,
0x52
,
0xea
,
0x86
,
0x7a
,
0xe3
,
0x18
,
0xca
,
0xb0
,
0xa1
,
0xf2
,
0x90
,
0xb1
,
0x80
,
0x98
,
0xbf
,
0x80
,
0xda
,
0x21
,
0x5d
,
0xb6
,
0x89
,
0xeb
,
0xf8
,
0x34
,
0x90
,
0x72
,
0x62
,
0xcf
,
0x87
,
0xac
,
0x10
,
0x2f
,
0x89
,
0x2f
,
0x0f
,
0x38
,
0x84
,
0xac
,
0xcd
,
0x95
,
0xd7
,
0x09
,
0xbf
,
0x03
,
0x79
,
0x6b
,
0xee
,
0x2c
,
0x24
,
0x19
,
0x59
,
0x2c
,
0x25
,
0xd4
,
0x04
,
0xb0
,
0xc9
,
0xd6
,
0xca
,
0x10
,
0x00
,
0x54
,
0x83
,
0x9c
,
0x3b
,
0xa3
,
0xc2
,
0xce
,
0x75
,
0x50
,
0x89
,
0x30
,
0x46
,
0xfb
,
0x47
,
0xce
,
0x7c
,
0x4e
,
0x03
,
0xbf
,
0x91
,
0x4e
,
0xec
,
0x99
,
0xd0
,
0x6f
,
0xac
,
0xa1
,
0x4c
,
0xfc
,
0xa8
,
0x33
,
0x9b
,
0x8e
,
0x2d
,
0xdf
,
0x7c
,
0xfd
,
0x16
,
0x5b
,
0x1e
,
0xc3
,
0x26
,
0x8f
,
0xe8
,
0x0a
,
0xf5
,
0x43
,
0xba
,
0x1c
,
0xb1
,
0x5d
,
0x7d
,
0x42
,
0x3c
,
0xb9
,
0xc0
,
0x1e
,
0xe4
,
0x28
,
0x77
,
0xdb
,
0xad
,
0x49
,
0xe0
,
0x8c
,
0x5f
,
0x00
,
0x3a
,
0xb1
,
0xe7
,
0x0d
,
0x15
,
0x32
,
0x79
,
0xca
,
0x23
,
0xde
,
0xd8
,
0x68
,
0x43
,
0x00
,
0xd0
,
0x3e
,
0xe4
,
0x9d
,
0x45
,
0x20
,
0xe2
,
0xdc
,
0x04
,
0x95
,
0x08
,
0x28
,
0xb1
,
0x28
,
0x2a
,
0x61
,
0xeb
,
0xcd
,
0x8a
,
0xc3
,
0x8c
,
0xbf
,
0xa5
,
0xa0
,
0xc8
,
0x84
,
0x09
,
0x73
,
0xcc
,
0x97
,
0x7a
,
0x45
,
0x83
,
0xe9
,
0xc4
,
0xb3
,
0xde
,
0x5f
,
0x11
,
0xcb
,
0x43
,
0xa8
,
0xf8
,
0x19
,
0x5b
,
0x90
,
0xa2
,
0xa2
,
0x66
,
0xb3
,
0x38
,
0x45
,
0x17
,
0xe8
,
0x0b
,
0xc8
,
0x8d
,
0x78
,
0x15
,
0x2e
,
0xb1
,
0x27
,
0x57
,
0x47
,
0x13
,
0xc3
,
0x99
,
0x4f
,
0x01
,
0x1d
,
0xd2
,
0x65
,
0x4b
,
0xa5
,
0x4c
,
0xca
,
0x34
,
0xdb
,
0x5d
,
0x51
,
0x9d
,
0xb6
,
0xeb
,
0xb0
,
0xa2
,
0x12
,
0x38
,
0xf4
,
0x10
,
0xf2
,
0x96
,
0xae
,
0xf2
,
0x00
,
0xca
,
0x2c
,
0x8b
,
0xca
,
0xd8
,
0xe6
,
0xb0
,
0x74
,
0x98
,
0xf9
,
0xb7
,
0x34
,
0x94
,
0x08
,
0xa4
,
0x8c
,
0xfc
,
0x87
,
0xd1
,
0x96
,
0x44
,
0x84
,
0xdb
,
0x1b
,
0x58
,
0x21
,
0xd1
,
0x63
,
0x28
,
0x98
,
0x31
,
0x61
,
0x63
,
0x0b
,
0xd2
,
0x81
,
0xd8
,
0xb9
,
0x39
,
0x9c
,
0x0e
,
0x56
,
0xe8
,
0x4b
,
0xc8
,
0xbc
,
0x96
,
0x2e
,
0xe3
,
0x55
,
0x5a
,
0xaa
,
0x57
,
0xa3
,
0x5d
,
0x49
,
0x67
,
0xb6
,
0x37
,
0x70
,
0x88
,
0x8f
,
0xf9
,
0x5e
,
0x94
,
0x65
,
0x76
,
0x67
,
0xcd
,
0x1e
,
0xa5
,
0x8e
,
0xcd
,
0xb6
,
0x96
,
0xc0
,
0xa1
,
0x65
,
0xfb
,
0xa8
,
0x8c
,
0xaa
,
0x2c
,
0xe0
,
0xd8
,
0xbe
,
0x64
,
0xbc
,
0xd9
,
0x3e
,
0x85
,
0x45
,
0x3f
,
0xfb
,
0x50
,
0x98
,
0x88
,
0x44
,
0xca
,
0xcc
,
0x7f
,
0x18
,
0x4d
,
0x89
,
0x65
,
0xb8
,
0x9b
,
0xc2
,
0x0a
,
0x8e
,
0x97
,
0x44
,
0x8e
,
0x6f
,
0xfc
,
0x28
,
0xda
,
0xb8
,
0xe4
,
0x58
,
0xd6
,
0x05
,
0x42
,
0x74
,
0xd4
,
0x89
,
0x1e
,
0x42
,
0xf1
,
0xbd
,
0xa4
,
0x8c
,
0xef
,
0xd5
,
0x72
,
0xb3
,
0x11
,
0xcd
,
0x8a
,
0x93
,
0xd9
,
0x05
,
0xda
,
0x80
,
0xa4
,
0x3d
,
0xfd
,
0x58
,
0xda
,
0xef
,
0x41
,
0xc1
,
0x71
,
0x29
,
0x69
,
0x9b
,
0xc1
,
0x4d
,
0xe1
,
0x10
,
0xcb
,
0xe6
,
0x05
,
0x32
,
0xab
,
0x72
,
0x17
,
0x6b
,
0xf3
,
0xe2
,
0xf9
,
0x66
,
0xf3
,
0x58
,
0x56
,
0x4c
,
0x48
,
0xc7
,
0xd2
,
0x40
,
0xd4
,
0x8b
,
0xa4
,
0x8c
,
0xbf
,
0x68
,
0x70
,
0x4f
,
0x19
,
0x14
,
0x16
,
0x7d
,
0x5f
,
0xdf
,
0x12
,
0x79
,
0x3e
,
0xf1
,
0xa3
,
0x68
,
0x62
,
0x82
,
0x58
,
0x76
,
0xa8
,
0x19
,
0x97
,
0x65
,
0xc0
,
0x26
,
0xf5
,
0x09
,
0xc1
,
0xae
,
0x4b
,
0x63
,
0xf2
,
0x12
,
0x3c
,
0x74
,
0x00
,
0x84
,
0xe8
,
0xe8
,
0x14
,
0xe8
,
0x02
,
0x92
,
0xf1
,
0x0c
,
0xb4
,
0xb2
,
0xdf
,
0x81
,
0xa2
,
0xed
,
0x04
,
0x65
,
0x67
,
0x36
,
0x99
,
0xd8
,
0x97
,
0x36
,
0xf1
,
0x39
,
0x48
,
0x88
,
0x4e
,
0x32
,
0xd1
,
0x03
,
0x40
,
0xa4
,
0x6b
,
0xf9
,
0x53
,
0xb9
,
0x63
,
0x42
,
0x59
,
0x2b
,
0x03
,
0xb1
,
0x5f
,
0xa4
,
0x64
,
0xfe
,
0xd9
,
0xa1
,
0x05
,
0x03
,
0x96
,
0x49
,
0x1c
,
0x2a
,
0x1a
,
0xd2
,
0x8a
,
0x95
,
0x98
,
0xa6
,
0x99
,
0x84
,
0xa6
,
0x80
,
0x5b
,
0x2a
,
0x48
,
0xdd
,
0x96
,
0x09
,
0x95
,
0xc0
,
0x23
,
0x04
,
0x3b
,
0x4e
,
0xa0
,
0xd9
,
0x8b
,
0x35
,
0xe0
,
0x97
,
0x9b
,
0x4d
,
0x1b
,
0x22
,
0x81
,
0x37
,
0x41
,
0x7b
,
0x29
,
0xd5
,
0xd2
,
0x5e
,
0x32
,
0xe9
,
0xd0
,
0x5d
,
0xa8
,
0xda
,
0x8b
,
0xd9
,
0x8c
,
0x9e
,
0x50
,
0xe2
,
0x71
,
0x90
,
0x30
,
0x1d
,
0x57
,
0xea
,
0x95
,
0x3c
,
0x5f
,
0x7b
,
0x65
,
0xfc
,
0x53
,
0x83
,
0xaa
,
0x0a
,
0x01
,
0xb7
,
0xe7
,
0x7d
,
0x4d
,
0xa2
,
0x03
,
0x40
,
0x61
,
0x04
,
0x43
,
0x56
,
0x49
,
0x1c
,
0x2a
,
0x0e
,
0xa4
,
0x35
,
0x23
,
0x9a
,
0xa7
,
0xab
,
0x42
,
0x5e
,
0x1c
,
0xfb
,
0x52
,
0x0a
,
0x55
,
0x64
,
0xb4
,
0xf2
,
0x4a
,
0xda
,
0xa0
,
0xc8
,
0x35
,
0xd9
,
0x98
,
0xa7
,
0xfb
,
0xc0
,
0x6f
,
0x4a
,
0x1a
,
0xb4
,
0x44
,
0x01
,
0x57
,
0xc0
,
0x78
,
0x2d
,
0xdd
,
0x86
,
0x66
,
0xd6
,
0x1a
,
0x7a
,
0xc7
,
0x7d
,
0xd9
,
0x15
,
0xee
,
0x33
,
0xfe
,
0xa4
,
0xc1
,
0x47
,
0xca
,
0x32
,
0x5e
,
0x33
,
0xe9
,
0x8d
,
0x5c
,
0xdf
,
0x78
,
0x63
,
0xfe
,
0xd3
,
0x80
,
0x86
,
0x4a
,
0x01
,
0x8f
,
0x94
,
0x1e
,
0xaf
,
0xf3
,
0x77
,
0x0d
,
0xf9
,
0xff
,
0x62
,
0x43
,
0x1d
,
0x8a
,
0xd6
,
0x58
,
0x74
,
0xc9
,
0xe7
,
0xa6
,
0xa1
,
0x35
,
0xa0
,
0x20
,
0x96
,
0x7d
,
0x2d
,
0x8d
,
0x2a
,
0x31
,
0x1a
,
0x79
,
0x23
,
0x63
,
0x40
,
0x56
,
0xc3
,
0xea
,
0xee
,
0x19
,
0xc1
,
0x8c
,
0x7f
,
0x68
,
0xb0
,
0x13
,
0xa6
,
0xed
,
0xfb
,
0x3a
,
0x50
,
0xe2
,
0x86
,
0x40
,
0xb3
,
0x1b
,
0x03
,
0xbd
,
0x40
,
0x5f
,
0x6e
,
0x0d
,
0x7d
,
0xe6
,
0x1f
,
0x0d
,
0xfa
,
0x10
,
0xb6
,
0xcd
,
0xd8
,
0x5e
,
0x76
,
0xb7
,
0x0a
,
0x65
,
0x97
,
0xd9
,
0xcc
,
0x5d
,
0x21
,
0x2b
,
0xf8
,
0x48
,
0x85
,
0x72
,
0xc4
,
0xf7
,
0xf9
,
0x75
,
0x53
,
0xfe
,
0x75
,
0x62
,
0x68
,
0x42
,
0x69
,
0x32
,
0x96
,
0x42
,
0x49
,
0xe6
,
0xfb
,
0x06
,
0xc1
,
0xd8
,
0x07
,
0x68
,
0xcd
,
0xed
,
0x80
,
0x7e
,
0xc3
,
0xea
,
0x15
,
0xa7
,
0xa4
,
0x2f
,
0x77
,
0xc3
,
0xfa
,
0xd3
,
0x33
,
0x82
,
0x99
,
0xff
,
0x30
,
0xe0
,
0x76
,
0x58
,
0x2a
,
0x36
,
0x5e
,
0x68
,
0x87
,
0x05
,
0x39
,
0x5e
,
0x7c
,
0x06
,
0xba
,
0xe8
,
0x57
,
0x43
,
0x9f
,
0x90
,
0xb6
,
0x37
,
0x25
,
0x7a
,
0x0f
,
0xb6
,
0x2d
,
0x6d
,
0x6e
,
0xd4
,
0x19
,
0x24
,
0xd5
,
0x8c
,
0xae
,
0x50
,
0x63
,
0x62
,
0xde
,
0x92
,
0xe4
,
0x18
,
0xb2
,
0x29
,
0x71
,
0x9f
,
0xc2
,
0x76
,
0x84
,
0x63
,
0xf6
,
0xad
,
0xa5
,
0x95
,
0x50
,
0x5c
,
0x79
,
0xd3
,
0x24
,
0x98
,
0xbb
,
0x00
,
0x9d
,
0x25
,
0xf5
,
0x83
,
0x97
,
0x6c
,
0x86
,
0xfd
,
0x59
,
0x8b
,
0xe3
,
0xfa
,
0xbe
,
0x7b
,
0x4b
,
0x58
,
0x14
,
0xfd
,
0xa4
,
0x93
,
0x42
,
0x9a
,
0x5f
,
0x69
,
0x7d
,
0x8d
,
0xb1
,
0x57
,
0x94
,
0x7d
,
0xcd
,
0xe7
,
0x50
,
0x13
,
0xe7
,
0xd5
,
0xc8
,
0x23
,
0xad
,
0xf1
,
0x6b
,
0x6f
,
0x40
,
0xc4
,
0x15
,
0x50
,
0xc4
,
0x21
,
0x8d
,
0xbe
,
0x0b
,
0xe0
,
0x89
,
0xce
,
0xe4
,
0x39
,
0xb1
,
0xce
,
0x49
,
0xbc
,
0xff
,
0xa9
,
0x48
,
0xdc
,
0x67
,
0xb0
,
0x1d
,
0xe1
,
0x58
,
0x7c
,
0x6a
,
0x91
,
0x39
,
0xf7
,
0x47
,
0x19
,
0xc7
,
0x38
,
0xe8
,
0x3b
,
0x50
,
0x74
,
0x66
,
0x53
,
0xa1
,
0x33
,
0xeb
,
0x61
,
0x7f
,
0x32
,
0x74
,
0xdc
,
0xc0
,
0x73
,
0xce
,
0x09
,
0xcb
,
0xa2
,
0x17
,
0x27
,
0x29
,
0x94
,
0xf7
,
0x41
,
0x19
,
0x47
,
0x0c
,
0x96
,
0x05
,
0x63
,
0x32
,
0xf1
,
0x88
,
0x1f
,
0xc8
,
0xcc
,
0x53
,
0xa4
,
0xd9
,
0x18
,
0xbf
,
0xf6
,
0x86
,
0x44
,
0x5c
,
0x01
,
0x25
,
0x1c
,
0xca
,
0xe8
,
0x13
,
0x00
,
0x57
,
0x9c
,
0xd1
,
0x82
,
0x12
,
0x53
,
0x8e
,
0x37
,
0x6c
,
0x72
,
0xf3
,
0x36
,
0xf5
,
0x26
,
0xc4
,
0xbc
,
0x8c
,
0x95
,
0xac
,
0x13
,
0xb2
,
0xe4
,
0x7c
,
0x54
,
0xb1
,
0xa6
,
0x61
,
0x0d
,
0x97
,
0xbd
,
0x98
,
0x0b
,
0x9f
,
0x39
,
0x7f
,
0x48
,
0x1b
,
0x07
,
0xb0
,
0xc9
,
0x7d
,
0x66
,
0x07
,
0x14
,
0x93
,
0xc0
,
0x63
,
0xd7
,
0x39
,
0x73
,
0x07
,
0x55
,
0x1c
,
0x29
,
0x58
,
0x15
,
0x4c
,
0xc9
,
0xcc
,
0x25
,
0x9e
,
0xdf
,
0xc8
,
0xed
,
0x66
,
0xf6
,
0x41
,
0x20
,
0xa7
,
0x37
,
0x41
,
0x18
,
0x4d
,
0xd8
,
0xea
,
0x8b
,
0x39
,
0xe7
,
0x05
,
0x59
,
0xf4
,
0x4d
,
0xaa
,
0x58
,
0x89
,
0x66
,
0x07
,
0xca
,
0xcc
,
0x39
,
0x7e
,
0x60
,
0x93
,
0xb3
,
0xab
,
0xdc
,
0x9b
,
0x11
,
0xdb
,
0x67
,
0x1d
,
0xc0
,
0x33
,
0xf9
,
0x98
,
0x25
,
0x4e
,
0x93
,
0x14
,
0x3b
,
0x8b
,
0x5f
,
0x45
,
0x51
,
0xeb
,
0x44
,
0xdb
,
0xfe
,
0xa1
,
0x6c
,
0xde
,
0x85
,
0x0a
,
0xe7
,
0x8c
,
0xfa
,
0x01
,
0x26
,
0xbe
,
0xcb
,
0x92
,
0x84
,
0xb4
,
0x71
,
0x00
,
0x39
,
0x99
,
0x27
,
0x6f
,
0xea
,
0x0b
,
0x1f
,
0x43
,
0xbe
,
0xef
,
0xdb
,
0xae
,
0x73
,
0x46
,
0x81
,
0x2f
,
0xdb
,
0x46
,
0x21
,
0x98
,
0x6d
,
0xd8
,
0x8a
,
0xda
,
0x9e
,
0x81
,
0x45
,
0xb7
,
0x0c
,
0x16
,
0x0f
,
0xb5
,
0x9a
,
0x24
,
0x5d
,
0x40
,
0x83
,
0xb1
,
0xe9
,
0x13
,
0x91
,
0xd9
,
0x4a
,
0x3d
,
0x76
,
0x02
,
0xb8
,
0x16
,
0x6f
,
0xb6
,
0xc4
,
0x6a
,
0x52
,
0x62
,
0x6b
,
0xf1
,
0xab
,
0x28
,
0x2a
,
0x9d
,
0x43
,
0xc8
,
0x7b
,
0x62
,
0x93
,
0x9c
,
0x8d
,
0xb6
,
0xd4
,
0xa8
,
0x25
,
0xb8
,
0x58
,
0x2d
,
0xa3
,
0x92
,
0x50
,
0x36
,
0xef
,
0x42
,
0x5e
,
0xd6
,
0xc9
,
0x65
,
0xe7
,
0xc2
,
0xc7
,
0x50
,
0x18
,
0x78
,
0xf4
,
0x1f
,
0x41
,
0xc9
,
0x27
,
0x23
,
0x62
,
0xdf
,
0xda
,
0xce
,
0x55
,
0xff
,
0x5a
,
0x5e
,
0x5b
,
0x4b
,
0x83
,
0x5c
,
0x36
,
0xa8
,
0x61
,
0xaa
,
0x55
,
0x0b
,
0xeb
,
0x00
,
0x1a
,
0x4e
,
0x2d
,
0x8f
,
0x88
,
0xca
,
0x56
,
0x59
,
0x1c
,
0x61
,
0xfc
,
0x5e
,
0x83
,
0x4a
,
0x63
,
0x34
,
0x62
,
0xb5
,
0xc7
,
0x84
,
0x99
,
0x23
,
0x6e
,
0xee
,
0xec
,
0x41
,
0xc1
,
0x15
,
0x93
,
0x64
,
0x6f
,
0xb4
,
0xa5
,
0x5a
,
0x2d
,
0xa1
,
0xc5
,
0x6a
,
0x18
,
0xe7
,
0x57
,
0x00
,
0x5e
,
0xe8
,
0x11
,
0x79
,
0xe6
,
0x07
,
0x4a
,
0x4a
,
0xc2
,
0x55
,
0x38
,
0x06
,
0x44
,
0x7d
,
0x07
,
0xca
,
0x61
,
0x7f
,
0x3a
,
0x78
,
0x27
,
0xaf
,
0xad
,
0x44
,
0x63
,
0xa6
,
0x23
,
0xcc
,
0xdf
,
0x0d
,
0xd8
,
0x0a
,
0x12
,
0xda
,
0x4b
,
0x05
,
0xd4
,
0xed
,
0x72
,
0xd7
,
0x34
,
0xbc
,
0xb4
,
0xc1
,
0xf8
,
0x1a
,
0x50
,
0x6f
,
0x8d
,
0xc7
,
0x6c
,
0xef
,
0x31
,
0x63
,
0xd6
,
0x98
,
0xc7
,
0xf9
,
0xdd
,
0x58
,
0x87
,
0x25
,
0x54
,
0xce
,
0xcc
,
0xc9
,
0x84
,
0xd0
,
0x86
,
0x65
,
0xf9
,
0x52
,
0x23
,
0x54
,
0x17
,
0xf6
,
0x9b
,
0x28
,
0xd6
,
0xfc
,
0xe0
,
0x42
,
0x87
,
0xc8
,
0x7c
,
0xd3
,
0x7b
,
0x44
,
0xd4
,
0x82
,
0x2d
,
0x3f
,
0xe6
,
0x23
,
0xa5
,
0x8b
,
0xba
,
0xe7
,
0xee
,
0x68
,
0x8e
,
0x15
,
0x90
,
0x79
,
0xd7
,
0xb4
,
0x2c
,
0x5f
,
0x7a
,
0xbd
,
0x74
,
0x40
,
0xdd
,
0x2e
,
0x17
,
0x43
,
0xc3
,
0x89
,
0x09
,
0xe6
,
0x4f
,
0xa1
,
0xfe
,
0xca
,
0x9a
,
0x9e
,
0x7f
,
0x1b
,
0x7f
,
0xd7
,
0x00
,
0xc4
,
0x51
,
0x4d
,
0x93
,
0x9a
,
0xac
,
0x9e
,
0xd5
,
0x7c
,
0x2b
,
0xcd
,
0x48
,
0xd0
,
0x9a
,
0x4c
,
0x3c
,
0xe9
,
0x11
,
0x6a
,
0x8a
,
0xf8
,
0xad
,
0xb1
,
0xf2
,
0x45
,
0xdd
,
0xea
,
0x5e
,
0x44
,
0x22
,
0xc9
,
0x64
,
0x3d
,
0x44
,
0x0c
,
0x93
,
0x89
,
0xe6
,
0x90
,
0xe0
,
0xad
,
0xea
,
0x73
,
0x17
,
0x3c
,
0xc7
,
0x0a
,
0x18
,
0xb6
,
0xff
,
0xe9
,
0xa8
,
0xfd
,
0x37
,
0xff
,
0x6e
,
0x00
,
0x88
,
0x21
,
0xe9
,
0xd5
,
0x3d
,
0x64
,
0xcd
,
0xdd
,
0xc2
,
0x0a
,
0x89
,
0xb5
,
0x4d
,
0x6c
,
0x3a
,
0x96
,
0x3b
,
0xa5
,
0xda
,
0x56
,
0x60
,
0xb1
,
0xfd
,
0x2c
,
0x9d
,
0x97
,
0xfb
,
0x5e
,
0x64
,
0x22
,
0xae
,
0x64
,
0x67
,
0x95
,
0xd5
,
0x10
,
0xe3
,
0x18
,
0xe7
,
0x50
,
0x69
,
0x39
,
0x23
,
0xd7
,
0x22
,
0x56
,
0xcc
,
0x80
,
0x2a
,
0x88
,
0x68
,
0x26
,
0x63
,
0x87
,
0x43
,
0x4c
,
0xb7
,
0xee
,
0x0c
,
0xc9
,
0xac
,
0x3f
,
0x43
,
0x36
,
0xdc
,
0xe4
,
0x89
,
0x60
,
0x4a
,
0xd5
,
0x15
,
0x89
,
0xee
,
0x43
,
0xde
,
0x37
,
0x5f
,
0x33
,
0x90
,
0x0c
,
0x81
,
0x2d
,
0x6c
,
0x23
,
0xb1
,
0x63
,
0x13
,
0x5b
,
0xf6
,
0xc4
,
0x99
,
0xcb
,
0x73
,
0x58
,
0xd3
,
0x98
,
0x6f
,
0x7a
,
0x2c
,
0x45
,
0xbb
,
0xb1
,
0x42
,
0x18
,
0xbf
,
0xe2
,
0xb2
,
0xfd
,
0x85
,
0x47
,
0x63
,
0xb2
,
0xa3
,
0xa1
,
0xde
,
0xb1
,
0xc7
,
0xce
,
0x84
,
0x4c
,
0xb4
,
0x00
,
0x1a
,
0x50
,
0x20
,
0x42
,
0x29
,
0x5d
,
0x57
,
0xc9
,
0x5d
,
0x8b
,
0x4f
,
0xee
,
0xef
,
0x9f
,
0x61
,
0xbf
,
0xd3
,
0xa0
,
0xd2
,
0x24
,
0xef
,
0x2a
,
0xfe
,
0x22
,
0xba
,
0x07
,
0x05
,
0xcf
,
0x7a
,
0xcf
,
0x40
,
0x32
,
0x05
,
0xaa
,
0xbf
,
0x8f
,
0x66
,
0x63
,
0x85
,
0x09
,
0x6c
,
0x47
,
0x9b
,
0x7d
,
0x3b
,
0xca
,
0xa1
,
0xe5
,
0x94
,
0x5f
,
0x86
,
0xa9
,
0xb7
,
0x48
,
0x7a
,
0x30
,
0x7f
,
0xc6
,
0x6d
,
0x7b
,
0x2b
,
0x37
,
0xd0
,
0x6c
,
0x47
,
0x9d
,
0xbb
,
0xa1
,
0x77
,
0xee
,
0x37
,
0xdd
,
0x5b
,
0xc4
,
0xf8
,
0x8f
,
0x06
,
0xdb
,
0x22
,
0xb7
,
0x78
,
0x6f
,
0xe2
,
0xf3
,
0xfd
,
0x9b
,
0x6e
,
0xaf
,
0xb0
,
0x5f
,
0x1b
,
0x50
,
0x6f
,
0x93
,
0xeb
,
0x9a
,
0xff
,
0x1e
,
0x6c
,
0x47
,
0x93
,
0x3d
,
0x1a
,
0x2f
,
0xde
,
0xbb
,
0xe4
,
0x45
,
0x28
,
0xa3
,
0x1e
,
0x31
,
0xd4
,
0x65
,
0xb0
,
0x3c
,
0x4f
,
0x24
,
0x99
,
0xd5
,
0x50
,
0xb2
,
0xe4
,
0x93
,
0x30
,
0xf5
,
0x2d
,
0x92
,
0xd9
,
0xf4
,
0x2d
,
0x62
,
0xfe
,
0xce
,
0x80
,
0x2c
,
0x42
,
0xea
,
0x55
,
0x23
,
0xe2
,
0x1d
,
0x3e
,
0x62
,
0xd8
,
0x0d
,
0x28
,
0xb2
,
0x57
,
0xf5
,
0x3e
,
0x6d
,
0xd5
,
0xb3
,
0xb0
,
0x13
,
0x8a
,
0x1d
,
0x2c
,
0xac
,
0x93
,
0x17
,
0xd9
,
0x6e
,
0x45
,
0xdf
,
0x8a
,
0x49
,
0xa2
,
0xcf
,
0x21
,
0x17
,
0x50
,
0x93
,
0xce
,
0x02
,
0x3e
,
0x9b
,
0x45
,
0xef
,
0xdc
,
0xae
,
0x4b
,
0xba
,
0x8a
,
0x25
,
0x46
,
0xa4
,
0xba
,
0x15
,
0x55
,
0x93
,
0xa6
,
0x89
,
0x5d
,
0x0a
,
0x1c
,
0x92
,
0xbc
,
0xc9
,
0x80
,
0x2f
,
0x60
,
0x09
,
0xe0
,
0x50
,
0xe1
,
0xc5
,
0xfc
,
0xba
,
0x28
,
0xab
,
0x17
,
0xd7
,
0x99
,
0x14
,
0x38
,
0x6a
,
0x53
,
0x4b
,
0xf1
,
0x1b
,
0x03
,
0x6a
,
0x71
,
0x9f
,
0x7c
,
0xf7
,
0xd2
,
0x2b
,
0xf5
,
0x32
,
0xbe
,
0x79
,
0x71
,
0x62
,
0x0b
,
0xe3
,
0x6b
,
0x90
,
0xb1
,
0x9d
,
0x4b
,
0x57
,
0xd6
,
0x94
,
0x1a
,
0x9b
,
0xea
,
0x83
,
0x64
,
0x63
,
0x5a
,
0xe5
,
0x37
,
0xca
,
0x01
,
0x14
,
0x7c
,
0x79
,
0x8b
,
0x5e
,
0xf6
,
0x6e
,
0x97
,
0x5c
,
0x84
,
0x39
,
0x86
,
0xa9
,
0x4b
,
0xe7
,
0xa2
,
0xcb
,
0xcb
,
0xab
,
0x5c
,
0x92
,
0xc6
,
0x0d
,
0xa2
,
0x40
,
0xcc
,
0x93
,
0x2a
,
0xbf
,
0x0f
,
0xac
,
0x60
,
0xca
,
0x5d
,
0xb9
,
0xd6
,
0xe5
,
0xb9
,
0xbf
,
0x35
,
0x55
,
0xb2
,
0x5c
,
0xae
,
0x45
,
0xe6
,
0xb2
,
0x63
,
0x7f
,
0xeb
,
0x1c
,
0xbb
,
0x9b
,
0x70
,
0xc3
,
0x5a
,
0x50
,
0x31
,
0x49
,
0xdd
,
0x0d
,
0x4a
,
0xd6
,
0x4f
,
0xf7
,
0x4c
,
0xec
,
0x74
,
0x67
,
0xb7
,
0x6c
,
0x36
,
0xf4
,
0xe2
,
0x0e
,
0x64
,
0x05
,
0x3e
,
0xcf
,
0xd9
,
0x82
,
0x60
,
0x5a
,
0x5a
,
0xb6
,
0x4f
,
0xc2
,
0xb9
,
0x35
,
0xa3
,
0x13
,
0x3e
,
0x2d
,
0xcb
,
0xc7
,
0x22
,
0x85
,
0x79
,
0x00
,
0xb5
,
0xb0
,
0x1f
,
0xc4
,
0xeb
,
0xbc
,
0xc0
,
0x57
,
0x22
,
0x86
,
0xf1
,
0xf3
,
0x44
,
0x2e
,
0xf1
,
0xcb
,
0xe5
,
0x07
,
0xf1
,
0x54
,
0x79
,
0xba
,
0x84
,
0x12
,
0xd6
,
0xc3
,
0xd7
,
0x13
,
0x13
,
0x7c
,
0x37
,
0x22
,
0xca
,
0xb8
,
0x82
,
0xcb
,
0x65
,
0xbd
,
0x3f
,
0xe5
,
0xa5
,
0x73
,
0x00
,
0x5b
,
0x62
,
0x05
,
0x93
,
0x1b
,
0xd6
,
0xeb
,
0x56
,
0xa8
,
0xeb
,
0xf5
,
0x90
,
0x32
,
0xcd
,
0xc9
,
0xf6
,
0x31
,
0xae
,
0x8c
,
0xb9
,
0x99
,
0x4d
,
0x64
,
0xce
,
0xff
,
0x59
,
0xc0
,
0xb0
,
0x2b
,
0x50
,
0x2d
,
0xc7
,
0xbc
,
0x98
,
0x10
,
0xd9
,
0xe8
,
0x70
,
0x40
,
0xc3
,
0x94
,
0x9f
,
0x3b
,
0xb2
,
0x80
,
0xe5
,
0x1e
,
0x8f
,
0xe9
,
0x18
,
0x31
,
0x5c
,
0x7e
,
0x3c
,
0xb3
,
0x4e
,
0xfe
,
0xa6
,
0x45
,
0xfd
,
0x8d
,
0xf1
,
0xec
,
0xa0
,
0xf7
,
0x82
,
0xfb
,
0xb4
,
0x80
,
0xf9
,
0x37
,
0xd2
,
0x79
,
0x67
,
0x5e
,
0xc5
,
0x91
,
0x82
,
0x59
,
0x67
,
0xcb
,
0xf1
,
0xc1
,
0x02
,
0x1f
,
0x0c
,
0x65
,
0xd6
,
0x21
,
0x3d
,
0x0d
,
0xae
,
0xa4
,
0x13
,
0xd9
,
0xa7
,
0x71
,
0x0c
,
0x1f
,
0xae
,
0x92
,
0xc9
,
0x4c
,
0xf8
,
0x36
,
0x05
,
0xe2
,
0x36
,
0x77
,
0x4e
,
0x1a
,
0xc5
,
0x58
,
0xc2
,
0x63
,
0x59
,
0xc5
,
0x11
,
0xcc
,
0x7c
,
0x32
,
0xf1
,
0x4f
,
0xe4
,
0xe3
,
0x84
,
0x05
,
0xcb
,
0x1a
,
0x48
,
0x0d
,
0xbb
,
0x00
,
0xc7
,
0xee
,
0xc8
,
0x0a
,
0x15
,
0xfe
,
0xa4
,
0x72
,
0x0d
,
0x92
,
0xd9
,
0x36
,
0x60
,
0x6b
,
0x61
,
0x5e
,
0xf8
,
0x9c
,
0xa2
,
0x9c
,
0xb0
,
0x27
,
0xc7
,
0x9c
,
0x69
,
0x30
,
0x8e
,
0x42
,
0xce
,
0xbf
,
0x99
,
0xdb
,
0xc7
,
0xc4
,
0xbe
,
0x2a
,
0xd6
,
0x34
,
0xe6
,
0x5f
,
0xd2
,
0x50
,
0xd5
,
0x8c
,
0xdd
,
0x24
,
0x01
,
0xd2
,
0x74
,
0xec
,
0x78
,
0x1a
,
0x8b
,
0xc1
,
0x3f
,
0x8d
,
0x25
,
0xc5
,
0xdc
,
0x6e
,
0x87
,
0x63
,
0x43
,
0x1a
,
0x0b
,
0xc2
,
0xf8
,
0xd5
,
0x34
,
0x6c
,
0x8f
,
0x72
,
0x49
,
0xf2
,
0x26
,
0x88
,
0xd7
,
0x55
,
0x8a
,
0x18
,
0x9d
,
0x76
,
0x25
,
0xa3
,
0x06
,
0x9b
,
0x5c
,
0x96
,
0xb8
,
0xb4
,
0x6f
,
0xe2
,
0x99
,
0xa7
,
0x25
,
0x32
,
0x2f
,
0x3c
,
0x2c
,
0x5f
,
0x4c
,
0x5c
,
0xee
,
0xaa
,
0xc4
,
0xe5
,
0x13
,
0xa1
,
0xc7
,
0x92
,
0x52
,
0x48
,
0x26
,
0xe5
,
0xeb
,
0xb5
,
0xf2
,
0xb0
,
0xf4
,
0xea
,
0xc3
,
0x32
,
0xb1
,
0xc3
,
0xa2
,
0xc8
,
0x67
,
0xd7
,
0x46
,
0x3e
,
0xb7
,
0x10
,
0xff
,
0xab
,
0x34
,
0x6c
,
0x8b
,
0x5b
,
0x8e
,
0x77
,
0x49
,
0xfc
,
0xa5
,
0xe1
,
0x32
,
0xf2
,
0x79
,
0x1c
,
0xf9
,
0x47
,
0x50
,
0x8e
,
0xe9
,
0x17
,
0x78
,
0xe8
,
0x13
,
0x48
,
0xd3
,
0xb9
,
0x8a
,
0xba
,
0xaa
,
0x17
,
0x25
,
0xab
,
0x51
,
0x3d
,
0x5b
,
0x85
,
0x8a
,
0x6b
,
0x96
,
0xe6
,
0x27
,
0x00
,
0xd4
,
0xc7
,
0xea
,
0xc0
,
0xc8
,
0x27
,
0x98
,
0xad
,
0x1a
,
0x27
,
0x50
,
0x91
,
0xae
,
0x63
,
0xc1
,
0xc6
,
0x24
,
0x98
,
0x4d
,
0xd9
,
0x24
,
0xcb
,
0xdb
,
0x4b
,
0x4d
,
0xc3
,
0x3b
,
0x72
,
0x71
,
0x9b
,
0x4a
,
0x86
,
0x94
,
0x88
,
0xbe
,
0xfe
,
0x9f
,
0x18
,
0x76
,
0xe0
,
0x1e
,
0x26
,
0x37
,
0x77
,
0x92
,
0xa2
,
0x0e
,
0x79
,
0x9f
,
0x8b
,
0x56
,
0x80
,
0xbc
,
0x1f
,
0x58
,
0xc1
,
0xc2
,
0xe7
,
0xcc
,
0x44
,
0x0f
,
0x7e
,
0x7d
,
0x27
,
0x20
,
0x43
,
0x3e
,
0xea
,
0x54
,
0x63
,
0x5d
,
0x33
,
0x71
,
0x36
,
0x56
,
0xc0
,
0xda
,
0xaf
,
0x01
,
0xa2
,
0x3f
,
0x68
,
0xa8
,
0x80
,
0x25
,
0x80
,
0x43
,
0xc5
,
0xa9
,
0x5e
,
0xd8
,
0x94
,
0x74
,
0xf5
,
0x02
,
0xf4
,
0x4a
,
0x51
,
0xd0
,
0x04
,
0xf9
,
0x66
,
0xab
,
0xdf
,
0x1b
,
0x74
,
0x86
,
0xfa
,
0x06
,
0xda
,
0x84
,
0xc2
,
0x59
,
0x67
,
0xd8
,
0x3e
,
0x3e
,
0xa4
,
0x82
,
0x82
,
0x7d
,
0xc8
,
0x52
,
0xfb
,
0xc4
,
0x91
,
0x05
,
0xa3
,
0x3e
,
0xb6
,
0x13
,
0x6e
,
0xe2
,
0xc6
,
0x99
,
0xae
,
0xa1
,
0x0a
,
0x94
,
0x87
,
0xb8
,
0xd1
,
0x1d
,
0x3c
,
0x6b
,
0xe1
,
0x4e
,
0x44
,
0x61
,
0x8e
,
0x61
,
0xee
,
0x06
,
0x4b
,
0xd1
,
0x75
,
0xca
,
0x4f
,
0x0b
,
0x29
,
0x9a
,
0xff
,
0x32
,
0xb7
,
0x7f
,
0x3a
,
0xd4
,
0x53
,
0x08
,
0xc1
,
0x96
,
0x62
,
0xf5
,
0x4e
,
0x87
,
0x8c
,
0x97
,
0x46
,
0x65
,
0x54
,
0x0b
,
0xc1
,
0xed
,
0x4e
,
0xc8
,
0xf2
,
0xaa
,
0xda
,
0xfe
,
0x5f
,
0xd0
,
0xbb
,
0x99
,
0xbe
,
0x3b
,
0x28
,
0x36
,
0x4e
,
0x87
,
0xed
,
0x1e
,
0xee
,
0x9c
,
0xb7
,
0xf4
,
0x4c
,
0xed
,
0x27
,
0x50
,
0x0c
,
0xff
,
0x31
,
0xfa
,
0x72
,
0x21
,
0x57
,
0xb7
,
0x21
,
0x27
,
0xf0
,
0x05
,
0xae
,
0x16
,
0x02
,
0xf3
,
0x65
,
0x42
,
0xe4
,
0x31
,
0xe9
,
0xa7
,
0xdd
,
0x17
,
0xdd
,
0xde
,
0x59
,
0x57
,
0xdf
,
0x40
,
0x00
,
0xb9
,
0xa7
,
0xc7
,
0x3d
,
0x22
,
0x5e
,
0x06
,
0x8b
,
0x7c
,
0x24
,
0x52
,
0x98
,
0x3f
,
0x8e
,
0xd5
,
0x0d
,
0xdf
,
0x66
,
0xdf
,
0x83
,
0x87
,
0x5f
,
0x7f
,
0xad
,
0x6b
,
0xea
,
0xfb
,
0xc9
,
0x97
,
0x7a
,
0x0a
,
0x15
,
0x21
,
0xfb
,
0xb4
,
0xd2
,
0x5b
,
0xda
,
0xcd
,
0xac
,
0xc9
,
0x56
,
0xf7
,
0x2e
,
0x6c
,
0x89
,
0x11
,
0x4c
,
0xce
,
0xd8
,
0xc5
,
0x5b
,
0xff
,
0xea
,
0xb1
,
0x9e
,
0xae
,
0x35
,
0xb8
,
0xaf
,
0xa3
,
0x7f
,
0x66
,
0x4c
,
0x78
,
0xf8
,
0xa3
,
0xb4
,
0xfe
,
0x21
,
0x15
,
0xc3
,
0x1d
,
0x81
,
0xea
,
0xd8
,
0xd6
,
0xf1
,
0x8c
,
0xc8
,
0xf6
,
0x0a
,
0xfb
,
0x4b
,
0xdf
,
0x40
,
0x5b
,
0x00
,
0xd1
,
0xbf
,
0x39
,
0xa1
,
0x62
,
0x3f
,
0x7e
,
0x79
,
0xeb
,
0xa9
,
0xda
,
0xc1
,
0xda
,
0x47
,
0x55
,
0x04
,
0x59
,
0xea
,
0x1f
,
0x3d
,
0xe3
,
0xcc
,
0x15
,
0x31
,
0xff
,
0x8d
,
0x6a
,
0x27
,
0x3c
,
0x9d
,
0xc2
,
0xe7
,
0x3a
,
0xca
,
0x43
,
0xba
,
0x61
,
0x59
,
0xe2
,
0xf8
,
0x26
,
0x99
,
0x10
,
0x90
,
0x99
,
0xfb
,
0xa7
,
0x92
,
0x2a
,
0xf6
,
0xd3
,
0x7c
,
0x0e
,
0x1f
,
0xae
,
0xb3
,
0xc9
,
0x42
,
0xf8
,
0x4a
,
0x74
,
0xad
,
0xf6
,
0x04
,
0x20
,
0xea
,
0xae
,
0x4c
,
0x81
,
0xd3
,
0x6e
,
0xb3
,
0xf5
,
0x4c
,
0x80
,
0x2a
,
0xf6
,
0x04
,
0xfc
,
0x71
,
0x2c
,
0x82
,
0xa4
,
0x07
,
0xd2
,
0xc3
,
0x3e
,
0xc0
,
0x73
,
0x67
,
0x6c
,
0x9e
,
0xe1
,
0xde
,
0x79
,
0xab
,
0xab
,
0x6b
,
0xa8
,
0x00
,
0x99
,
0x5e
,
0xbf
,
0xd5
,
0x15
,
0x1a
,
0x1e
,
0xcd
,
0x0e
,
0xe9
,
0x72
,
0xb4
,
0x64
,
0x1e
,
0x4c
,
0xa3
,
0xc4
,
0xf2
,
0xdf
,
0x8c
,
0xf6
,
0x29
,
0xa1
,
0x1d
,
0xf7
,
0x06
,
0x2d
,
0x3d
,
0x5d
,
0xfb
,
0x29
,
0x7c
,
0xc0
,
0x1e
,
0xe9
,
0xb2
,
0x92
,
0x83
,
0x91
,
0xa7
,
0x53
,
0xf1
,
0xdc
,
0x90
,
0xc1
,
0x52
,
0x62
,
0xb4
,
0xd3
,
0xf0
,
0x63
,
0x25
,
0x83
,
0x85
,
0x60
,
0xe9
,
0x48
,
0x21
,
0x05
,
0xc8
,
0x74
,
0x9a
,
0xc7
,
0x2d
,
0xe1
,
0xc5
,
0xc1
,
0x51
,
0xa3
,
0xdb
,
0xed
,
0xfe
,
0xc1
,
0x80
,
0x0a
,
0xb7
,
0x25
,
0x3e
,
0x15
,
0xce
,
0xf4
,
0xfa
,
0x32
,
0x62
,
0xf5
,
0x15
,
0x2e
,
0x74
,
0x9f
,
0xeb
,
0x1a
,
0xa3
,
0x9e
,
0x75
,
0xba
,
0x9d
,
0x41
,
0xbb
,
0xd5
,
0xd4
,
0x53
,
0xf5
,
0xbf
,
0x96
,
0x5e
,
0xbb
,
0x58
,
0x66
,
0xfd
,
0x62
,
0x59
,
0x6d
,
0xb1
,
0x28
,
0xf3
,
0xb9
,
0x8d
,
0x99
,
0xcf
,
0x6a
,
0x00
,
0x53
,
0x7b
,
0xae
,
0x06
,
0x9d
,
0x47
,
0xb0
,
0xfd
,
0x7c
,
0x49
,
0x8e
,
0xba
,
0xc9
,
0x30
,
0x27
,
0x33
,
0xff
,
0x00
,
0xaa
,
0x9a
,
0x7f
,
0xbe
,
0x8b
,
0x3e
,
0x85
,
0x4c
,
0xb0
,
0x54
,
0x59
,
0x57
,
0xb9
,
0xe9
,
0xda
,
0x93
,
0x3d
,
0x3d
,
0x22
,
0x07
,
0xd4
,
0xb7
,
0x9d
,
0x2b
,
0x63
,
0x03
,
0x7d
,
0x01
,
0xfb
,
0x2c
,
0xe2
,
0x04
,
0xb3
,
0x51
,
0xf3
,
0x10
,
0xea
,
0x92
,
0x3a
,
0x96
,
0x6c
,
0x4c
,
0xfc
,
0xc5
,
0x25
,
0xb1
,
0x85
,
0xd9
,
0xf0
,
0x4e
,
0x3b
,
0x7e
,
0x06
,
0xe5
,
0x44
,
0xee
,
0xa0
,
0xed
,
0x08
,
0xc4
,
0xec
,
0xbf
,
0xc9
,
0x61
,
0x0f
,
0x6e
,
0x61
,
0x72
,
0x76
,
0xa1
,
0x28
,
0x9a
,
0x50
,
0xf0
,
0xb8
,
0x69
,
0x9b
,
0xd1
,
0xde
,
0x5e
,
0xc4
,
0x58
,
0xce
,
0x32
,
0x63
,
0xe3
,
0x22
,
0xc7
,
0x7f
,
0xe5
,
0x3e
,
0xfc
,
0xe5
,
0x4e
,
0x43
,
0xeb
,
0xd5
,
0x62
,
0x6b
,
0x63
,
0x05
,
0xdc
,
0xff
,
0x39
,
0x40
,
0xf4
,
0x87
,
0x01
,
0x6f
,
0x00
,
0x00
,
0x00
,
0xff
,
0xff
,
0x4a
,
0x7b
,
0x68
,
0x23
,
0xff
,
0x15
,
0x00
,
0x00
,
0x2a
,
0x43
,
0xa1
,
0xdd
,
0x19
,
0x1c
,
0x0d
,
0x7b
,
0xa3
,
0x5a
,
0x0a
,
0x55
,
0xa0
,
0xf8
,
0xaa
,
0x37
,
0xea
,
0xb6
,
0x71
,
0xeb
,
0x55
,
0xcd
,
0x40
,
0x75
,
0xa8
,
0x8e
,
0x70
,
0xab
,
0x3f
,
0x7c
,
0xdc
,
0xc1
,
0xbd
,
0xfe
,
0xe0
,
0xc5
,
0xa8
,
0x96
,
0x46
,
0x08
,
0xb6
,
0x94
,
0xea
,
0xe8
,
0xc5
,
0x88
,
0xe9
,
0x32
,
0xa8
,
0x0a
,
0xa5
,
0xd6
,
0x8b
,
0x51
,
0xf7
,
0x08
,
0xf7
,
0xde
,
0x76
,
0x6a
,
0xd9
,
0xfd
,
0x16
,
0xa7
,
0x2b
,
0x7a
,
0x72
,
0x67
,
0xe3
,
0xe1
,
0x3b
,
0x79
,
0x2d
,
0x85
,
0xb6
,
0x00
,
0xa2
,
0x7f
,
0x13
,
0xc4
,
0x2a
,
0x03
,
0xbd
,
0xeb
,
0xaf
,
0xa5
,
0xf7
,
0x3f
,
0xe5
,
0x15
,
0x11
,
0xbe
,
0xf3
,
0xa1
,
0x02
,
0x64
,
0x5a
,
0x93
,
0x49
,
0x2d
,
0x85
,
0x00
,
0xf2
,
0x6d
,
0x32
,
0x23
,
0x01
,
0xa9
,
0x19
,
0xfb
,
0x3f
,
0x00
,
0x88
,
0x8e
,
0x41
,
0x54
,
0x82
,
0xdc
,
0x8b
,
0x7e
,
0xbb
,
0xf3
,
0x58
,
0x80
,
0x1e
,
0xe3
,
0xa3
,
0xb7
,
0x9d
,
0x7e
,
0xcd
,
0x60
,
0xea
,
0x97
,
0xad
,
0xe7
,
0xbd
,
0x76
,
0x2d
,
0xcd
,
0x02
,
0xed
,
0xf5
,
0x85
,
0x90
,
0xd9
,
0xff
,
0x21
,
0x7c
,
0x70
,
0x48
,
0x97
,
0x6a
,
0x3f
,
0xfa
,
0x63
,
0xcb
,
0x96
,
0x76
,
0x8a
,
0x90
,
0xed
,
0xb5
,
0x9f
,
0x77
,
0x04
,
0x17
,
0xc3
,
0x47
,
0xad
,
0x7e
,
0xbf
,
0xd7
,
0x7f
,
0x52
,
0x33
,
0x98
,
0xf4
,
0xb8
,
0xd7
,
0xef
,
0x0d
,
0xbb
,
0x9d
,
0x76
,
0x2d
,
0xdd
,
0xfc
,
0xab
,
0x01
,
0x30
,
0xa7
,
0x4b
,
0xf5
,
0x91
,
0xf4
,
0x00
,
0xb6
,
0x9f
,
0x24
,
0xec
,
0xa8
,
0x2e
,
0x18
,
0x93
,
0xb3
,
0x3e
,
0x9d
,
0xed
,
0xd4
,
0x22
,
0x71
,
0x18
,
0x78
,
0xd4
,
0x3e
,
0x35
,
0x53
,
0xe8
,
0x4b
,
0x28
,
0x8b
,
0x29
,
0x2c
,
0x8c
,
0x6b
,
0xcd
,
0xf8
,
0x11
,
0x54
,
0x63
,
0x15
,
0x80
,
0xb6
,
0x23
,
0x10
,
0x3f
,
0x52
,
0x76
,
0x76
,
0x22
,
0x45
,
0xb2
,
0x56
,
0xcc
,
0xd4
,
0x71
,
0x9e
,
0xff
,
0xa7
,
0x74
,
0xff
,
0x3f
,
0x01
,
0x00
,
0x00
,
0xff
,
0xff
,
0xb2
,
0x56
,
0xda
,
0xeb
,
0x88
,
0x1a
,
0x00
,
0x00
,
}
}
// Reference imports to suppress errors if they are not otherwise used.
// Reference imports to suppress errors if they are not otherwise used.
...
...
plugin/dapp/mix/wallet/exec.go
View file @
25cf36cb
...
@@ -46,3 +46,11 @@ func (policy *mixPolicy) On_EncryptSecretData(req *mixTy.EncryptSecretData) (typ
...
@@ -46,3 +46,11 @@ func (policy *mixPolicy) On_EncryptSecretData(req *mixTy.EncryptSecretData) (typ
func
(
policy
*
mixPolicy
)
On_DecryptSecretData
(
req
*
mixTy
.
DecryptSecretData
)
(
types
.
Message
,
error
)
{
func
(
policy
*
mixPolicy
)
On_DecryptSecretData
(
req
*
mixTy
.
DecryptSecretData
)
(
types
.
Message
,
error
)
{
return
decryptSecretData
(
req
)
return
decryptSecretData
(
req
)
}
}
func
(
policy
*
mixPolicy
)
On_DepositProof
(
req
*
mixTy
.
DepositProofReq
)
(
types
.
Message
,
error
)
{
return
policy
.
depositProof
(
req
)
}
func
(
policy
*
mixPolicy
)
On_WithdrawProof
(
req
*
mixTy
.
WithdrawProofReq
)
(
types
.
Message
,
error
)
{
return
policy
.
withdrawProof
(
req
)
}
plugin/dapp/mix/wallet/mix.go
View file @
25cf36cb
...
@@ -7,8 +7,6 @@ package wallet
...
@@ -7,8 +7,6 @@ package wallet
import
(
import
(
"bytes"
"bytes"
"fmt"
"fmt"
"math/big"
"github.com/33cn/chain33/system/dapp"
"github.com/33cn/chain33/system/dapp"
"github.com/pkg/errors"
"github.com/pkg/errors"
...
@@ -26,10 +24,10 @@ import (
...
@@ -26,10 +24,10 @@ import (
//payment, payPrivKey=hash(privkey), payPubkey=hash(payPrivKey)
//payment, payPrivKey=hash(privkey), payPubkey=hash(payPrivKey)
//DH crypt key, prikey=payPrikey, pubKey=payPrikey*G
//DH crypt key, prikey=payPrikey, pubKey=payPrikey*G
func
newPrivacyWithPrivKey
(
privKey
[]
byte
)
(
*
mixTy
.
AccountPrivacyKey
,
error
)
{
func
newPrivacyWithPrivKey
(
privKey
[]
byte
)
(
*
mixTy
.
AccountPrivacyKey
,
error
)
{
payPrivacyKey
:=
M
imcHashByte
([][]
byte
{
privKey
})
payPrivacyKey
:=
m
imcHashByte
([][]
byte
{
privKey
})
paymentKey
:=
&
mixTy
.
PaymentKeyPair
{}
paymentKey
:=
&
mixTy
.
PaymentKeyPair
{}
paymentKey
.
SpendKey
=
getFrString
(
payPrivacyKey
)
paymentKey
.
SpendKey
=
getFrString
(
payPrivacyKey
)
paymentKey
.
PayKey
=
getFrString
(
M
imcHashByte
([][]
byte
{
payPrivacyKey
}))
paymentKey
.
PayKey
=
getFrString
(
m
imcHashByte
([][]
byte
{
payPrivacyKey
}))
shareSecretKey
:=
&
mixTy
.
ShareSecretKeyPair
{}
shareSecretKey
:=
&
mixTy
.
ShareSecretKeyPair
{}
ecdh
:=
NewCurveBn256ECDH
()
ecdh
:=
NewCurveBn256ECDH
()
...
@@ -71,13 +69,14 @@ func encryptDataWithPadding(password, data []byte) []byte {
...
@@ -71,13 +69,14 @@ func encryptDataWithPadding(password, data []byte) []byte {
return
wcom
.
CBCEncrypterPrivkey
(
password
,
paddingText
)
return
wcom
.
CBCEncrypterPrivkey
(
password
,
paddingText
)
}
}
func
encryptData
(
receiverPubKey
*
mixTy
.
PubKey
,
data
[]
byte
)
(
*
mixTy
.
PubKey
,
[]
byte
,
error
)
{
func
encryptData
(
receiverPubKey
*
mixTy
.
PubKey
,
data
[]
byte
)
*
mixTy
.
DHSecret
{
ecdh
:=
NewCurveBn256ECDH
()
ecdh
:=
NewCurveBn256ECDH
()
//generate ephemeral priv/pub key
//generate ephemeral priv/pub key
ephPriv
,
ephPub
:=
ecdh
.
GenerateKey
(
nil
)
ephPriv
,
ephPub
:=
ecdh
.
GenerateKey
(
nil
)
password
,
_
:=
ecdh
.
GenerateSharedSecret
(
ephPriv
,
receiverPubKey
)
password
,
_
:=
ecdh
.
GenerateSharedSecret
(
ephPriv
,
receiverPubKey
)
encrypt
:=
encryptDataWithPadding
(
password
,
data
)
return
ephPub
,
encryptDataWithPadding
(
password
,
data
),
nil
return
&
mixTy
.
DHSecret
{
Epk
:
ephPub
,
Secret
:
common
.
ToHex
(
encrypt
)}
}
}
...
@@ -104,25 +103,25 @@ func getFrString(v []byte) string {
...
@@ -104,25 +103,25 @@ func getFrString(v []byte) string {
return
f
.
String
()
return
f
.
String
()
}
}
func
M
imcHashString
(
params
[]
string
)
[]
byte
{
func
m
imcHashString
(
params
[]
string
)
[]
byte
{
var
sum
[]
byte
var
sum
[]
byte
for
_
,
k
:=
range
params
{
for
_
,
k
:=
range
params
{
fmt
.
Println
(
"input:"
,
k
)
//
fmt.Println("input:", k)
sum
=
append
(
sum
,
getByte
(
k
)
...
)
sum
=
append
(
sum
,
getByte
(
k
)
...
)
}
}
hash
:=
mimcHashCalc
(
sum
)
hash
:=
mimcHashCalc
(
sum
)
fmt
.
Println
(
"hash="
,
getFrString
(
hash
))
//
fmt.Println("hash=", getFrString(hash))
return
hash
return
hash
}
}
func
M
imcHashByte
(
params
[][]
byte
)
[]
byte
{
func
m
imcHashByte
(
params
[][]
byte
)
[]
byte
{
var
sum
[]
byte
var
sum
[]
byte
for
_
,
k
:=
range
params
{
for
_
,
k
:=
range
params
{
sum
=
append
(
sum
,
k
...
)
sum
=
append
(
sum
,
k
...
)
}
}
hash
:=
mimcHashCalc
(
sum
)
hash
:=
mimcHashCalc
(
sum
)
fmt
.
Println
(
"hash="
,
getFrString
(
hash
))
//
fmt.Println("hash=", getFrString(hash))
return
hash
return
hash
}
}
...
@@ -387,64 +386,3 @@ func (policy *mixPolicy) showAccountNoteInfo(addrs []string) (*mixTy.WalletIndex
...
@@ -387,64 +386,3 @@ func (policy *mixPolicy) showAccountNoteInfo(addrs []string) (*mixTy.WalletIndex
}
}
return
&
resps
,
nil
return
&
resps
,
nil
}
}
//对secretData 编码为string,同时增加随机值
func
encodeSecretData
(
secret
*
mixTy
.
SecretData
)
(
*
mixTy
.
EncodedSecretData
,
error
)
{
if
secret
==
nil
{
return
nil
,
errors
.
Wrap
(
types
.
ErrInvalidParam
,
"para is nil"
)
}
if
len
(
secret
.
PaymentPubKey
)
<=
0
{
return
nil
,
errors
.
Wrap
(
types
.
ErrInvalidParam
,
"spendPubKey is nil"
)
}
var
val
big
.
Int
ret
,
succ
:=
val
.
SetString
(
secret
.
Amount
,
10
)
if
!
succ
{
return
nil
,
errors
.
Wrapf
(
types
.
ErrInvalidParam
,
"wrong amount = %s"
,
secret
.
Amount
)
}
if
ret
.
Sign
()
<=
0
{
return
nil
,
errors
.
Wrapf
(
types
.
ErrInvalidParam
,
"amount = %s, need bigger than 0"
,
secret
.
Amount
)
}
//获取随机值
var
fr
fr_bn256
.
Element
fr
.
SetRandom
()
secret
.
NoteRandom
=
fr
.
String
()
code
:=
types
.
Encode
(
secret
)
var
resp
mixTy
.
EncodedSecretData
resp
.
Encoded
=
common
.
ToHex
(
code
)
resp
.
RawData
=
secret
return
&
resp
,
nil
}
//产生随机秘钥和receivingPk对data DH加密,返回随机秘钥的公钥
func
encryptSecretData
(
req
*
mixTy
.
EncryptSecretData
)
(
*
mixTy
.
DHSecret
,
error
)
{
secret
,
err
:=
common
.
FromHex
(
req
.
Secret
)
if
err
!=
nil
{
return
nil
,
errors
.
Wrap
(
err
,
"decode secret"
)
}
epk
,
crypt
,
err
:=
encryptData
(
req
.
ReceivingPk
,
secret
)
if
err
!=
nil
{
return
nil
,
errors
.
Wrap
(
err
,
"encrypt"
)
}
return
&
mixTy
.
DHSecret
{
Epk
:
epk
,
Secret
:
common
.
ToHex
(
crypt
)},
nil
}
func
decryptSecretData
(
req
*
mixTy
.
DecryptSecretData
)
(
*
mixTy
.
SecretData
,
error
)
{
secret
,
err
:=
common
.
FromHex
(
req
.
Secret
)
if
err
!=
nil
{
return
nil
,
errors
.
Wrap
(
err
,
"decode req.secret"
)
}
decrypt
,
err
:=
decryptData
(
req
.
ReceivingPriKey
,
req
.
Epk
,
secret
)
if
err
!=
nil
{
return
nil
,
errors
.
Wrap
(
err
,
"decrypt secret"
)
}
var
raw
mixTy
.
SecretData
err
=
types
.
Decode
(
decrypt
,
&
raw
)
if
err
!=
nil
{
return
nil
,
errors
.
Wrap
(
mixTy
.
ErrDecryptDataFail
,
"decode decrypt.secret"
)
}
return
&
raw
,
nil
}
plugin/dapp/mix/wallet/mixbizdb.go
View file @
25cf36cb
...
@@ -158,7 +158,7 @@ func updateNullifier(ldb *table.Table, nullifier string) error {
...
@@ -158,7 +158,7 @@ func updateNullifier(ldb *table.Table, nullifier string) error {
return
nil
return
nil
}
}
u
.
Info
.
Status
=
mixTy
.
NoteStatus_
CLOSE
u
.
Info
.
Status
=
mixTy
.
NoteStatus_
INVALID
return
ldb
.
Update
([]
byte
(
u
.
TxIndex
),
u
)
return
ldb
.
Update
([]
byte
(
u
.
TxIndex
),
u
)
}
}
...
@@ -174,7 +174,7 @@ func updateAuthSpend(ldb *table.Table, authSpend string) error {
...
@@ -174,7 +174,7 @@ func updateAuthSpend(ldb *table.Table, authSpend string) error {
return
nil
return
nil
}
}
u
.
Info
.
Status
=
mixTy
.
NoteStatus_
OPEN
u
.
Info
.
Status
=
mixTy
.
NoteStatus_
VALID
return
ldb
.
Update
([]
byte
(
u
.
TxIndex
),
u
)
return
ldb
.
Update
([]
byte
(
u
.
TxIndex
),
u
)
}
}
...
@@ -193,8 +193,6 @@ func (e *mixPolicy) listMixInfos(req *mixTy.WalletMixIndexReq) (types.Message, e
...
@@ -193,8 +193,6 @@ func (e *mixPolicy) listMixInfos(req *mixTy.WalletMixIndexReq) (types.Message, e
indexName
=
"nullifier"
indexName
=
"nullifier"
}
else
if
len
(
req
.
AuthSpendHash
)
>
0
{
}
else
if
len
(
req
.
AuthSpendHash
)
>
0
{
indexName
=
"authSpendHash"
indexName
=
"authSpendHash"
}
else
if
len
(
req
.
Spender
)
>
0
{
indexName
=
"spender"
}
else
if
len
(
req
.
Account
)
>
0
{
}
else
if
len
(
req
.
Account
)
>
0
{
indexName
=
"account"
indexName
=
"account"
}
else
if
req
.
Status
>
0
{
}
else
if
req
.
Status
>
0
{
...
@@ -206,7 +204,6 @@ func (e *mixPolicy) listMixInfos(req *mixTy.WalletMixIndexReq) (types.Message, e
...
@@ -206,7 +204,6 @@ func (e *mixPolicy) listMixInfos(req *mixTy.WalletMixIndexReq) (types.Message, e
NoteHash
:
req
.
NoteHash
,
NoteHash
:
req
.
NoteHash
,
Nullifier
:
req
.
Nullifier
,
Nullifier
:
req
.
Nullifier
,
AuthSpendHash
:
req
.
AuthSpendHash
,
AuthSpendHash
:
req
.
AuthSpendHash
,
Spender
:
req
.
Spender
,
Account
:
req
.
Account
,
Account
:
req
.
Account
,
Status
:
mixTy
.
NoteStatus
(
req
.
Status
),
Status
:
mixTy
.
NoteStatus
(
req
.
Status
),
}},
}},
...
@@ -271,7 +268,7 @@ func (p *mixPolicy) processSecretGroup(noteHash string, secretGroup *mixTy.DHSec
...
@@ -271,7 +268,7 @@ func (p *mixPolicy) processSecretGroup(noteHash string, secretGroup *mixTy.DHSec
}
}
//可能自己账户里面既有spender,也有returner 或authorize,都要解一遍
//可能自己账户里面既有spender,也有returner 或authorize,都要解一遍
info
,
err
:=
p
.
decodeSecret
(
noteHash
,
secretGroup
.
Spender
,
privacyKeys
)
info
,
err
:=
p
.
decodeSecret
(
noteHash
,
secretGroup
.
Payment
,
privacyKeys
)
if
err
!=
nil
{
if
err
!=
nil
{
bizlog
.
Error
(
"processSecretGroup.spender"
,
"err"
,
err
)
bizlog
.
Error
(
"processSecretGroup.spender"
,
"err"
,
err
)
}
}
...
@@ -324,18 +321,17 @@ func (p *mixPolicy) decodeSecret(noteHash string, dhSecret *mixTy.DHSecret, priv
...
@@ -324,18 +321,17 @@ func (p *mixPolicy) decodeSecret(noteHash string, dhSecret *mixTy.DHSecret, priv
//decrypted, save database
//decrypted, save database
var
info
mixTy
.
WalletIndexInfo
var
info
mixTy
.
WalletIndexInfo
info
.
NoteHash
=
noteHash
info
.
NoteHash
=
noteHash
info
.
Nullifier
=
getFrString
(
M
imcHashString
([]
string
{
rawData
.
NoteRandom
}))
info
.
Nullifier
=
getFrString
(
m
imcHashString
([]
string
{
rawData
.
NoteRandom
}))
//如果自己是spender,则记录有关spenderAuthHash,如果是returner,则记录returnerAuthHash
//如果自己是spender,则记录有关spenderAuthHash,如果是returner,则记录returnerAuthHash
//如果授权为spenderAuthHash,则spender更新本地为OPEN,returner侧仍为FROZEN,花费后,两端都变为USED
//如果授权为spenderAuthHash,则spender更新本地为OPEN,returner侧仍为FROZEN,花费后,两端都变为USED
//如果授权为returnerAuthHash,则returner更新本地为OPEN,spender侧仍为FROZEN,
//如果授权为returnerAuthHash,则returner更新本地为OPEN,spender侧仍为FROZEN,
if
rawData
.
PaymentPubKey
==
key
.
Privacy
.
PaymentKey
.
PayKey
{
if
rawData
.
PaymentPubKey
==
key
.
Privacy
.
PaymentKey
.
PayKey
{
info
.
Spender
=
rawData
.
PaymentPubKey
info
.
AuthSpendHash
=
getFrString
(
mimcHashString
([]
string
{
rawData
.
PaymentPubKey
,
rawData
.
Amount
,
rawData
.
NoteRandom
}))
info
.
AuthSpendHash
=
getFrString
(
MimcHashString
([]
string
{
rawData
.
PaymentPubKey
,
rawData
.
Amount
,
rawData
.
NoteRandom
}))
}
else
if
rawData
.
ReturnPubKey
==
key
.
Privacy
.
PaymentKey
.
PayKey
{
}
else
if
rawData
.
ReturnPubKey
==
key
.
Privacy
.
PaymentKey
.
PayKey
{
info
.
Spender
=
rawData
.
ReturnPubKey
info
.
IsReturner
=
true
info
.
AuthSpendHash
=
getFrString
(
M
imcHashString
([]
string
{
rawData
.
ReturnPubKey
,
rawData
.
Amount
,
rawData
.
NoteRandom
}))
info
.
AuthSpendHash
=
getFrString
(
m
imcHashString
([]
string
{
rawData
.
ReturnPubKey
,
rawData
.
Amount
,
rawData
.
NoteRandom
}))
}
}
info
.
Status
=
mixTy
.
NoteStatus_
OPEN
info
.
Status
=
mixTy
.
NoteStatus_
VALID
if
len
(
rawData
.
AuthorizePubKey
)
>
0
{
if
len
(
rawData
.
AuthorizePubKey
)
>
0
{
info
.
Status
=
mixTy
.
NoteStatus_FROZEN
info
.
Status
=
mixTy
.
NoteStatus_FROZEN
}
}
...
...
plugin/dapp/mix/wallet/mixbiztable.go
View file @
25cf36cb
...
@@ -23,7 +23,6 @@ var boardOpt = &table.Option{
...
@@ -23,7 +23,6 @@ var boardOpt = &table.Option{
"noteHash"
,
"noteHash"
,
"nullifier"
,
"nullifier"
,
"authSpendHash"
,
"authSpendHash"
,
"spender"
,
"account"
,
"account"
,
"status"
},
"status"
},
}
}
...
@@ -73,8 +72,6 @@ func (r *MixRow) Get(key string) ([]byte, error) {
...
@@ -73,8 +72,6 @@ func (r *MixRow) Get(key string) ([]byte, error) {
return
[]
byte
(
r
.
Info
.
Nullifier
),
nil
return
[]
byte
(
r
.
Info
.
Nullifier
),
nil
case
"authSpendHash"
:
case
"authSpendHash"
:
return
[]
byte
(
r
.
Info
.
AuthSpendHash
),
nil
return
[]
byte
(
r
.
Info
.
AuthSpendHash
),
nil
case
"spender"
:
return
[]
byte
(
r
.
Info
.
Spender
),
nil
case
"account"
:
case
"account"
:
return
[]
byte
(
r
.
Info
.
Account
),
nil
return
[]
byte
(
r
.
Info
.
Account
),
nil
case
"status"
:
case
"status"
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment