Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
validator
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
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
Odysseus
validator
Commits
c01567df
Commit
c01567df
authored
Mar 08, 2024
by
贾浩@五瓣科技
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add merkle tree rpc
parent
7565f5b2
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
47 additions
and
3 deletions
+47
-3
rpc.go
api/rpc.go
+46
-2
witness.go
core/witness.go
+1
-1
No files found.
api/rpc.go
View file @
c01567df
...
...
@@ -66,7 +66,9 @@ func rpcHandle(w http.ResponseWriter, r *http.Request) {
getPendingWorkload
(
req
.
Params
,
resp
)
_
=
json
.
NewEncoder
(
w
)
.
Encode
(
resp
)
return
case
"getDailyMerkleNodes"
:
getDailyMerkleNodes
(
req
.
Params
,
resp
)
_
=
json
.
NewEncoder
(
w
)
.
Encode
(
resp
)
default
:
resp
.
Error
=
&
jsonError
{
Code
:
-
32601
,
...
...
@@ -150,8 +152,50 @@ func getPendingWorkload(params []byte, resp *jsonrpcMessage) {
return
}
func
findNode
(
params
[]
byte
,
resp
*
jsonrpcMessage
)
{
func
getDailyMerkleNodes
(
params
[]
byte
,
resp
*
jsonrpcMessage
)
{
// date string, depth int, rootHash common.Hash
paramList
:=
make
([]
interface
{},
0
)
err
:=
json
.
Unmarshal
(
params
,
&
paramList
)
if
err
!=
nil
||
len
(
paramList
)
<
1
||
len
(
paramList
)
>
3
{
resp
.
Error
=
&
jsonError
{
Code
:
-
32602
,
Message
:
"invalid params"
,
}
return
}
var
date
string
var
depth
=
1
var
rootHash
common
.
Hash
_
,
err
=
time
.
Parse
(
"2006-01-02"
,
paramList
[
1
]
.
(
string
))
if
err
!=
nil
{
resp
.
Error
=
&
jsonError
{
Code
:
-
32602
,
Message
:
"invalid params"
,
}
return
}
date
=
paramList
[
1
]
.
(
string
)
if
len
(
paramList
)
>=
2
{
_depth
,
ok
:=
paramList
[
2
]
.
(
float64
)
if
!
ok
{
resp
.
Error
=
&
jsonError
{
Code
:
-
32602
,
Message
:
"invalid params"
,
}
return
}
depth
=
int
(
uint
(
_depth
))
}
if
len
(
paramList
)
>=
3
{
rootHash
=
common
.
HexToHash
(
paramList
[
3
]
.
(
string
))
}
nodes
:=
witness
.
GetDailyMerkleNodes
(
date
,
depth
,
rootHash
)
resp
.
Result
,
_
=
json
.
Marshal
(
nodes
)
}
func
StartJSONRPC
(
listenAddress
string
,
w
*
core
.
Witness
)
{
...
...
core/witness.go
View file @
c01567df
...
...
@@ -442,7 +442,7 @@ func (w *Witness) GetMerkleProof(address common.Address, date string) (balance s
return
object
.
Balance
,
proofs
}
func
(
w
*
Witness
)
GetDailyMerkle
Proof
s
(
date
string
,
depth
int
,
rootHash
common
.
Hash
)
(
proofs
[][]
common
.
Hash
)
{
func
(
w
*
Witness
)
GetDailyMerkle
Node
s
(
date
string
,
depth
int
,
rootHash
common
.
Hash
)
(
proofs
[][]
common
.
Hash
)
{
if
date
==
""
{
date
=
w
.
date
}
...
...
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