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
ce15f935
Commit
ce15f935
authored
Jan 28, 2021
by
madengji
Committed by
vipwzw
Sep 18, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add role
parent
6e5bf601
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
63 additions
and
53 deletions
+63
-53
authorize.go
plugin/dapp/mix/executor/authorize.go
+1
-1
committree.go
plugin/dapp/mix/executor/committree.go
+15
-15
config.go
plugin/dapp/mix/executor/config.go
+4
-4
query.go
plugin/dapp/mix/executor/query.go
+4
-4
mix.proto
plugin/dapp/mix/proto/mix.proto
+22
-16
mix.pb.go
plugin/dapp/mix/types/mix.pb.go
+0
-0
mixbizdb.go
plugin/dapp/mix/wallet/mixbizdb.go
+7
-3
proof.go
plugin/dapp/mix/wallet/proof.go
+10
-10
No files found.
plugin/dapp/mix/executor/authorize.go
View file @
ce15f935
...
@@ -38,7 +38,7 @@ func (a *action) authParamCheck(input *mixTy.AuthorizePublicInput) error {
...
@@ -38,7 +38,7 @@ func (a *action) authParamCheck(input *mixTy.AuthorizePublicInput) error {
//authorize pubkey hash should be configured already
//authorize pubkey hash should be configured already
var
found
bool
var
found
bool
for
_
,
k
:=
range
authPubKeys
.
Data
{
for
_
,
k
:=
range
authPubKeys
.
Pks
{
if
input
.
AuthorizePubKey
==
k
{
if
input
.
AuthorizePubKey
==
k
{
found
=
true
found
=
true
break
break
...
...
plugin/dapp/mix/executor/committree.go
View file @
ce15f935
...
@@ -87,7 +87,7 @@ func getNewTree() *merkletree.Tree {
...
@@ -87,7 +87,7 @@ func getNewTree() *merkletree.Tree {
func
calcTreeRoot
(
leaves
*
mixTy
.
CommitTreeLeaves
)
[]
byte
{
func
calcTreeRoot
(
leaves
*
mixTy
.
CommitTreeLeaves
)
[]
byte
{
tree
:=
getNewTree
()
tree
:=
getNewTree
()
for
_
,
leaf
:=
range
leaves
.
Data
{
for
_
,
leaf
:=
range
leaves
.
Leaves
{
tree
.
Push
(
leaf
)
tree
.
Push
(
leaf
)
}
}
return
tree
.
Root
()
return
tree
.
Root
()
...
@@ -100,8 +100,8 @@ func getNewCommitLeaves() (*mixTy.CommitTreeLeaves, *mixTy.CommitTreeRoots) {
...
@@ -100,8 +100,8 @@ func getNewCommitLeaves() (*mixTy.CommitTreeLeaves, *mixTy.CommitTreeRoots) {
//第一个叶子节点都是固定的"00"字节
//第一个叶子节点都是固定的"00"字节
leaf
:=
[]
byte
(
"00"
)
leaf
:=
[]
byte
(
"00"
)
leaves
.
Data
=
append
(
leaves
.
Data
,
leaf
)
leaves
.
Leaves
=
append
(
leaves
.
Leaves
,
leaf
)
roots
.
Data
=
append
(
roots
.
Data
,
calcTreeRoot
(
leaves
))
roots
.
Roots
=
append
(
roots
.
Roots
,
calcTreeRoot
(
leaves
))
return
leaves
,
roots
return
leaves
,
roots
}
}
...
@@ -109,8 +109,8 @@ func getNewCommitLeaves() (*mixTy.CommitTreeLeaves, *mixTy.CommitTreeRoots) {
...
@@ -109,8 +109,8 @@ func getNewCommitLeaves() (*mixTy.CommitTreeLeaves, *mixTy.CommitTreeRoots) {
func
initNewLeaves
(
leaf
[][]
byte
)
*
types
.
Receipt
{
func
initNewLeaves
(
leaf
[][]
byte
)
*
types
.
Receipt
{
leaves
,
roots
:=
getNewCommitLeaves
()
leaves
,
roots
:=
getNewCommitLeaves
()
if
len
(
leaf
)
>
0
{
if
len
(
leaf
)
>
0
{
leaves
.
Data
=
append
(
leaves
.
Data
,
leaf
...
)
leaves
.
Leaves
=
append
(
leaves
.
Leaves
,
leaf
...
)
roots
.
Data
=
append
(
roots
.
Data
,
calcTreeRoot
(
leaves
))
roots
.
Roots
=
append
(
roots
.
Roots
,
calcTreeRoot
(
leaves
))
}
}
return
makeCurrentTreeReceipt
(
leaves
,
roots
)
return
makeCurrentTreeReceipt
(
leaves
,
roots
)
...
@@ -127,7 +127,7 @@ func archiveRoots(db dbm.KV, root []byte, leaves *mixTy.CommitTreeLeaves) (*type
...
@@ -127,7 +127,7 @@ func archiveRoots(db dbm.KV, root []byte, leaves *mixTy.CommitTreeLeaves) (*type
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
archiveRoots
.
Data
=
append
(
archiveRoots
.
Data
,
root
)
archiveRoots
.
Roots
=
append
(
archiveRoots
.
Roots
,
root
)
receiptArch
:=
makeTreeArchiveRootsReceipt
(
archiveRoots
)
receiptArch
:=
makeTreeArchiveRootsReceipt
(
archiveRoots
)
return
mergeReceipt
(
receiptRootLeaves
,
receiptArch
),
nil
return
mergeReceipt
(
receiptRootLeaves
,
receiptArch
),
nil
}
}
...
@@ -158,13 +158,13 @@ func pushTree(db dbm.KV, leaf [][]byte) (*types.Receipt, error) {
...
@@ -158,13 +158,13 @@ func pushTree(db dbm.KV, leaf [][]byte) (*types.Receipt, error) {
return
nil
,
err
return
nil
,
err
}
}
leaves
.
Data
=
append
(
leaves
.
Data
,
leaf
...
)
leaves
.
Leaves
=
append
(
leaves
.
Leaves
,
leaf
...
)
currentRoot
:=
calcTreeRoot
(
leaves
)
currentRoot
:=
calcTreeRoot
(
leaves
)
roots
.
Data
=
append
(
roots
.
Data
,
currentRoot
)
roots
.
Roots
=
append
(
roots
.
Roots
,
currentRoot
)
r
:=
makeCurrentTreeReceipt
(
leaves
,
roots
)
r
:=
makeCurrentTreeReceipt
(
leaves
,
roots
)
//归档
//归档
if
len
(
leaves
.
Data
)
>=
mixTy
.
MaxTreeLeaves
{
if
len
(
leaves
.
Leaves
)
>=
mixTy
.
MaxTreeLeaves
{
receiptArch
,
err
:=
archiveRoots
(
db
,
currentRoot
,
leaves
)
receiptArch
,
err
:=
archiveRoots
(
db
,
currentRoot
,
leaves
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
...
@@ -184,12 +184,12 @@ func checkTreeRootHashExist(db dbm.KV, hash []byte) bool {
...
@@ -184,12 +184,12 @@ func checkTreeRootHashExist(db dbm.KV, hash []byte) bool {
var
roots
[][]
byte
var
roots
[][]
byte
currentRoots
,
err
:=
getCurrentCommitTreeRoots
(
db
)
currentRoots
,
err
:=
getCurrentCommitTreeRoots
(
db
)
if
err
==
nil
{
if
err
==
nil
{
roots
=
append
(
roots
,
currentRoots
.
Data
...
)
roots
=
append
(
roots
,
currentRoots
.
Roots
...
)
}
}
archiveRoots
,
err
:=
getArchiveCommitRoots
(
db
)
archiveRoots
,
err
:=
getArchiveCommitRoots
(
db
)
if
err
==
nil
{
if
err
==
nil
{
roots
=
append
(
roots
,
archiveRoots
.
Data
...
)
roots
=
append
(
roots
,
archiveRoots
.
Roots
...
)
}
}
for
_
,
k
:=
range
roots
{
for
_
,
k
:=
range
roots
{
...
@@ -250,7 +250,7 @@ func CalcTreeProve(db dbm.KV, rootHash, leaf string) (*mixTy.CommitTreeProve, er
...
@@ -250,7 +250,7 @@ func CalcTreeProve(db dbm.KV, rootHash, leaf string) (*mixTy.CommitTreeProve, er
}
}
leaves
,
err
:=
getCurrentCommitTreeLeaves
(
db
)
leaves
,
err
:=
getCurrentCommitTreeLeaves
(
db
)
if
err
==
nil
{
if
err
==
nil
{
p
,
err
:=
getProveData
(
transferFr2Bytes
(
leaf
),
leaves
.
Data
)
p
,
err
:=
getProveData
(
transferFr2Bytes
(
leaf
),
leaves
.
Leaves
)
if
err
==
nil
{
if
err
==
nil
{
return
p
,
nil
return
p
,
nil
}
}
...
@@ -261,7 +261,7 @@ func CalcTreeProve(db dbm.KV, rootHash, leaf string) (*mixTy.CommitTreeProve, er
...
@@ -261,7 +261,7 @@ func CalcTreeProve(db dbm.KV, rootHash, leaf string) (*mixTy.CommitTreeProve, er
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
p
,
err
:=
getProveData
(
transferFr2Bytes
(
leaf
),
leaves
.
Data
)
p
,
err
:=
getProveData
(
transferFr2Bytes
(
leaf
),
leaves
.
Leaves
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
errors
.
Wrapf
(
err
,
"hash=%s,leaf=%s"
,
rootHash
,
leaf
)
return
nil
,
errors
.
Wrapf
(
err
,
"hash=%s,leaf=%s"
,
rootHash
,
leaf
)
}
}
...
@@ -270,10 +270,10 @@ func CalcTreeProve(db dbm.KV, rootHash, leaf string) (*mixTy.CommitTreeProve, er
...
@@ -270,10 +270,10 @@ func CalcTreeProve(db dbm.KV, rootHash, leaf string) (*mixTy.CommitTreeProve, er
roots
,
err
:=
getArchiveCommitRoots
(
db
)
roots
,
err
:=
getArchiveCommitRoots
(
db
)
if
err
==
nil
{
if
err
==
nil
{
for
_
,
root
:=
range
roots
.
Data
{
for
_
,
root
:=
range
roots
.
Roots
{
leaves
,
err
:=
getCommitRootLeaves
(
db
,
transferFr2String
(
root
))
leaves
,
err
:=
getCommitRootLeaves
(
db
,
transferFr2String
(
root
))
if
err
==
nil
{
if
err
==
nil
{
p
,
err
:=
getProveData
(
transferFr2Bytes
(
leaf
),
leaves
.
Data
)
p
,
err
:=
getProveData
(
transferFr2Bytes
(
leaf
),
leaves
.
Leaves
)
if
err
==
nil
{
if
err
==
nil
{
return
p
,
nil
return
p
,
nil
}
}
...
...
plugin/dapp/mix/executor/config.go
View file @
ce15f935
...
@@ -129,14 +129,14 @@ func (a *action) ConfigAddAuthPubKey(key string) (*types.Receipt, error) {
...
@@ -129,14 +129,14 @@ func (a *action) ConfigAddAuthPubKey(key string) (*types.Receipt, error) {
keys
,
err
:=
a
.
getAuthKeys
()
keys
,
err
:=
a
.
getAuthKeys
()
if
isNotFound
(
errors
.
Cause
(
err
))
{
if
isNotFound
(
errors
.
Cause
(
err
))
{
keys
:=
&
mixTy
.
AuthPubKeys
{}
keys
:=
&
mixTy
.
AuthPubKeys
{}
keys
.
Data
=
append
(
keys
.
Data
,
key
)
keys
.
Pks
=
append
(
keys
.
Pks
,
key
)
return
makeConfigAuthKeyReceipt
(
keys
),
nil
return
makeConfigAuthKeyReceipt
(
keys
),
nil
}
}
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
keys
.
Data
=
append
(
keys
.
Data
,
key
)
keys
.
Pks
=
append
(
keys
.
Pks
,
key
)
return
makeConfigAuthKeyReceipt
(
keys
),
nil
return
makeConfigAuthKeyReceipt
(
keys
),
nil
}
}
...
@@ -147,11 +147,11 @@ func (a *action) ConfigDeleteAuthPubKey(key string) (*types.Receipt, error) {
...
@@ -147,11 +147,11 @@ func (a *action) ConfigDeleteAuthPubKey(key string) (*types.Receipt, error) {
}
}
var
newKeys
mixTy
.
AuthPubKeys
var
newKeys
mixTy
.
AuthPubKeys
for
_
,
v
:=
range
keys
.
Data
{
for
_
,
v
:=
range
keys
.
Pks
{
if
key
==
v
{
if
key
==
v
{
continue
continue
}
}
newKeys
.
Data
=
append
(
newKeys
.
Data
,
v
)
newKeys
.
Pks
=
append
(
newKeys
.
Pks
,
v
)
}
}
return
makeConfigAuthKeyReceipt
(
&
newKeys
),
nil
return
makeConfigAuthKeyReceipt
(
&
newKeys
),
nil
...
...
plugin/dapp/mix/executor/query.go
View file @
ce15f935
...
@@ -34,8 +34,8 @@ func (m *Mix) Query_GetLeavesList(in *mixTy.TreeInfoReq) (types.Message, error)
...
@@ -34,8 +34,8 @@ func (m *Mix) Query_GetLeavesList(in *mixTy.TreeInfoReq) (types.Message, error)
return
nil
,
err
return
nil
,
err
}
}
var
resp
mixTy
.
TreeListResp
var
resp
mixTy
.
TreeListResp
for
_
,
k
:=
range
leaves
.
Data
{
for
_
,
k
:=
range
leaves
.
Leaves
{
resp
.
Datas
=
append
(
resp
.
Data
s
,
transferFr2String
(
k
))
resp
.
Leaves
=
append
(
resp
.
Leave
s
,
transferFr2String
(
k
))
}
}
return
&
resp
,
nil
return
&
resp
,
nil
...
@@ -49,8 +49,8 @@ func (m *Mix) Query_GetRootList(in *types.ReqNil) (types.Message, error) {
...
@@ -49,8 +49,8 @@ func (m *Mix) Query_GetRootList(in *types.ReqNil) (types.Message, error) {
return
nil
,
err
return
nil
,
err
}
}
var
resp
mixTy
.
TreeListResp
var
resp
mixTy
.
TreeListResp
for
_
,
k
:=
range
roots
.
Data
{
for
_
,
k
:=
range
roots
.
Roots
{
resp
.
Datas
=
append
(
resp
.
Data
s
,
transferFr2String
(
k
))
resp
.
Leaves
=
append
(
resp
.
Leave
s
,
transferFr2String
(
k
))
}
}
return
&
resp
,
nil
return
&
resp
,
nil
...
...
plugin/dapp/mix/proto/mix.proto
View file @
ce15f935
...
@@ -27,7 +27,7 @@ message ZkVerifyKeys{
...
@@ -27,7 +27,7 @@ message ZkVerifyKeys{
}
}
message
AuthPubKeys
{
message
AuthPubKeys
{
repeated
string
data
=
1
;
repeated
string
pks
=
1
;
}
}
message
PaymentKey
{
message
PaymentKey
{
...
@@ -167,11 +167,11 @@ message ExistValue {
...
@@ -167,11 +167,11 @@ message ExistValue {
}
}
message
CommitTreeLeaves
{
message
CommitTreeLeaves
{
repeated
bytes
data
=
1
;
repeated
bytes
leaves
=
1
;
}
}
message
CommitTreeRoots
{
message
CommitTreeRoots
{
repeated
bytes
data
=
1
;
repeated
bytes
roots
=
1
;
}
}
...
@@ -189,7 +189,7 @@ message TreeInfoReq{
...
@@ -189,7 +189,7 @@ message TreeInfoReq{
}
}
message
TreeListResp
{
message
TreeListResp
{
repeated
string
data
s
=
1
;
repeated
string
leave
s
=
1
;
}
}
// mix wallet part
// mix wallet part
...
@@ -289,8 +289,8 @@ message WithdrawProofResp{
...
@@ -289,8 +289,8 @@ message WithdrawProofResp{
string
authorizeSpendHash
=
3
;
string
authorizeSpendHash
=
3
;
string
noteHash
=
4
;
string
noteHash
=
4
;
string
spendPrivKey
=
5
;
string
spendPrivKey
=
5
;
uint32
spendFlag
=
6
;
string
spendFlag
=
6
;
uint32
authorizeFlag
=
7
;
string
authorizeFlag
=
7
;
TreePathProof
treeProof
=
8
;
TreePathProof
treeProof
=
8
;
}
}
...
@@ -306,7 +306,7 @@ message AuthProofResp{
...
@@ -306,7 +306,7 @@ message AuthProofResp{
string
authHash
=
4
;
string
authHash
=
4
;
string
authorizeSpendHash
=
5
;
string
authorizeSpendHash
=
5
;
string
noteHash
=
6
;
string
noteHash
=
6
;
uint32
spendFlag
=
7
;
string
spendFlag
=
7
;
TreePathProof
treeProof
=
8
;
TreePathProof
treeProof
=
8
;
}
}
...
@@ -331,8 +331,8 @@ message TransferInputProof{
...
@@ -331,8 +331,8 @@ message TransferInputProof{
string
authorizeSpendHash
=
3
;
string
authorizeSpendHash
=
3
;
string
noteHash
=
4
;
string
noteHash
=
4
;
string
spendPrivKey
=
5
;
string
spendPrivKey
=
5
;
uint32
spendFlag
=
6
;
string
spendFlag
=
6
;
uint32
authorizeFlag
=
7
;
string
authorizeFlag
=
7
;
TreePathProof
treeProof
=
8
;
TreePathProof
treeProof
=
8
;
ShieldAmount
shieldAmount
=
9
;
ShieldAmount
shieldAmount
=
9
;
string
amountRandom
=
10
;
string
amountRandom
=
10
;
...
@@ -372,14 +372,20 @@ enum NoteStatus{
...
@@ -372,14 +372,20 @@ enum NoteStatus{
USED
=
3
;
//已使用
USED
=
3
;
//已使用
}
}
enum
Role
{
SPENDER
=
0
;
RETURNER
=
1
;
AUTHORIZER
=
2
;
}
message
WalletIndexInfo
{
message
WalletIndexInfo
{
string
noteHash
=
1
;
string
noteHash
=
1
;
string
nullifier
=
2
;
string
nullifier
=
2
;
string
authorizeSpendHash
=
3
;
string
authorizeSpendHash
=
3
;
bool
isReturner
=
4
;
Role
role
=
4
;
string
account
=
5
;
//账户地址
string
account
=
5
;
//账户地址
NoteStatus
status
=
6
;
NoteStatus
status
=
6
;
SecretData
secret
=
7
;
SecretData
secret
=
7
;
}
}
...
...
plugin/dapp/mix/types/mix.pb.go
View file @
ce15f935
This diff is collapsed.
Click to expand it.
plugin/dapp/mix/wallet/mixbizdb.go
View file @
ce15f935
...
@@ -350,11 +350,15 @@ func (p *mixPolicy) decodeSecret(noteHash string, secretData string, privacyKeys
...
@@ -350,11 +350,15 @@ func (p *mixPolicy) decodeSecret(noteHash string, secretData string, privacyKeys
//如果授权为returnerAuthHash,则returner更新本地为VALID,spender侧仍为FROZEN,
//如果授权为returnerAuthHash,则returner更新本地为VALID,spender侧仍为FROZEN,
info
.
AuthorizeSpendHash
=
"0"
info
.
AuthorizeSpendHash
=
"0"
if
len
(
rawData
.
AuthorizePubKey
)
>
LENNULLKEY
{
if
len
(
rawData
.
AuthorizePubKey
)
>
LENNULLKEY
{
if
rawData
.
ReceiverPubKey
==
key
.
Privacy
.
PaymentKey
.
ReceiverPubKey
{
switch
key
.
Privacy
.
PaymentKey
.
ReceiverPubKey
{
case
rawData
.
ReceiverPubKey
:
info
.
Role
=
mixTy
.
Role_SPENDER
info
.
AuthorizeSpendHash
=
getFrString
(
mimcHashString
([]
string
{
rawData
.
ReceiverPubKey
,
rawData
.
Amount
,
rawData
.
NoteRandom
}))
info
.
AuthorizeSpendHash
=
getFrString
(
mimcHashString
([]
string
{
rawData
.
ReceiverPubKey
,
rawData
.
Amount
,
rawData
.
NoteRandom
}))
}
else
if
rawData
.
ReturnPubKey
==
key
.
Privacy
.
PaymentKey
.
ReceiverPubKey
{
case
rawData
.
ReturnPubKey
:
info
.
IsReturner
=
true
info
.
Role
=
mixTy
.
Role_RETURNER
info
.
AuthorizeSpendHash
=
getFrString
(
mimcHashString
([]
string
{
rawData
.
ReturnPubKey
,
rawData
.
Amount
,
rawData
.
NoteRandom
}))
info
.
AuthorizeSpendHash
=
getFrString
(
mimcHashString
([]
string
{
rawData
.
ReturnPubKey
,
rawData
.
Amount
,
rawData
.
NoteRandom
}))
case
rawData
.
AuthorizePubKey
:
info
.
Role
=
mixTy
.
Role_AUTHORIZER
}
}
}
}
...
...
plugin/dapp/mix/wallet/proof.go
View file @
ce15f935
...
@@ -210,12 +210,12 @@ func (policy *mixPolicy) withdrawProof(req *mixTy.WithdrawProofReq) (*mixTy.With
...
@@ -210,12 +210,12 @@ func (policy *mixPolicy) withdrawProof(req *mixTy.WithdrawProofReq) (*mixTy.With
resp
.
NullifierHash
=
note
.
Nullifier
resp
.
NullifierHash
=
note
.
Nullifier
resp
.
AuthorizeSpendHash
=
note
.
AuthorizeSpendHash
resp
.
AuthorizeSpendHash
=
note
.
AuthorizeSpendHash
resp
.
NoteHash
=
note
.
NoteHash
resp
.
NoteHash
=
note
.
NoteHash
resp
.
SpendFlag
=
1
resp
.
SpendFlag
=
"1"
if
note
.
IsReturner
{
if
note
.
Role
==
mixTy
.
Role_RETURNER
{
resp
.
SpendFlag
=
0
resp
.
SpendFlag
=
"0"
}
}
if
len
(
resp
.
AuthorizeSpendHash
)
>
LENNULLKEY
{
if
len
(
resp
.
AuthorizeSpendHash
)
>
LENNULLKEY
{
resp
.
AuthorizeFlag
=
1
resp
.
AuthorizeFlag
=
"1"
}
}
//get spend privacy key
//get spend privacy key
...
@@ -260,10 +260,10 @@ func (policy *mixPolicy) authProof(req *mixTy.AuthProofReq) (*mixTy.AuthProofRes
...
@@ -260,10 +260,10 @@ func (policy *mixPolicy) authProof(req *mixTy.AuthProofReq) (*mixTy.AuthProofRes
resp
.
AuthHash
=
getFrString
(
mimcHashString
([]
string
{
resp
.
AuthPubKey
,
note
.
Secret
.
NoteRandom
}))
resp
.
AuthHash
=
getFrString
(
mimcHashString
([]
string
{
resp
.
AuthPubKey
,
note
.
Secret
.
NoteRandom
}))
//default auto to paymenter
//default auto to paymenter
resp
.
SpendFlag
=
1
resp
.
SpendFlag
=
"1"
resp
.
AuthorizeSpendHash
=
getFrString
(
mimcHashString
([]
string
{
note
.
Secret
.
ReceiverPubKey
,
note
.
Secret
.
Amount
,
note
.
Secret
.
NoteRandom
}))
resp
.
AuthorizeSpendHash
=
getFrString
(
mimcHashString
([]
string
{
note
.
Secret
.
ReceiverPubKey
,
note
.
Secret
.
Amount
,
note
.
Secret
.
NoteRandom
}))
if
req
.
ToReturn
!=
0
{
if
req
.
ToReturn
!=
0
{
resp
.
SpendFlag
=
0
resp
.
SpendFlag
=
"0"
//auth to returner
//auth to returner
resp
.
AuthorizeSpendHash
=
getFrString
(
mimcHashString
([]
string
{
note
.
Secret
.
ReturnPubKey
,
note
.
Secret
.
Amount
,
note
.
Secret
.
NoteRandom
}))
resp
.
AuthorizeSpendHash
=
getFrString
(
mimcHashString
([]
string
{
note
.
Secret
.
ReturnPubKey
,
note
.
Secret
.
Amount
,
note
.
Secret
.
NoteRandom
}))
}
}
...
@@ -313,12 +313,12 @@ func (policy *mixPolicy) getTransferInputPart(note *mixTy.WalletIndexInfo) (*mix
...
@@ -313,12 +313,12 @@ func (policy *mixPolicy) getTransferInputPart(note *mixTy.WalletIndexInfo) (*mix
return
nil
,
errors
.
Wrapf
(
types
.
ErrInvalidParam
,
"payment pubkey from note=%s not match from privacyKey=%s,for account =%s"
,
return
nil
,
errors
.
Wrapf
(
types
.
ErrInvalidParam
,
"payment pubkey from note=%s not match from privacyKey=%s,for account =%s"
,
note
.
Secret
.
ReceiverPubKey
,
privacyKey
.
Privacy
.
PaymentKey
.
ReceiverPubKey
,
note
.
Account
)
note
.
Secret
.
ReceiverPubKey
,
privacyKey
.
Privacy
.
PaymentKey
.
ReceiverPubKey
,
note
.
Account
)
}
}
input
.
SpendFlag
=
1
input
.
SpendFlag
=
"1"
if
note
.
IsReturner
{
if
note
.
Role
==
mixTy
.
Role_RETURNER
{
input
.
SpendFlag
=
0
input
.
SpendFlag
=
"0"
}
}
if
len
(
input
.
AuthorizeSpendHash
)
>
LENNULLKEY
{
if
len
(
input
.
AuthorizeSpendHash
)
>
LENNULLKEY
{
input
.
AuthorizeFlag
=
1
input
.
AuthorizeFlag
=
"1"
}
}
treeProof
,
err
:=
policy
.
getTreeProof
(
note
.
NoteHash
)
treeProof
,
err
:=
policy
.
getTreeProof
(
note
.
NoteHash
)
...
...
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