Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
Geth-Modification
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
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
张蕾
Geth-Modification
Commits
056e9dd3
Commit
056e9dd3
authored
Jun 24, 2015
by
Bas van Kervel
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added eth.pendingTransactions
parent
9226369b
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
79 additions
and
6 deletions
+79
-6
eth.go
rpc/api/eth.go
+35
-5
eth_args.go
rpc/api/eth_args.go
+34
-0
eth_js.go
rpc/api/eth_js.go
+8
-0
utils.go
rpc/api/utils.go
+2
-1
No files found.
rpc/api/eth.go
View file @
056e9dd3
...
...
@@ -6,9 +6,11 @@ import (
"math/big"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/eth"
"github.com/ethereum/go-ethereum/rpc/codec"
"github.com/ethereum/go-ethereum/rpc/shared"
"github.com/ethereum/go-ethereum/xeth"
"gopkg.in/fatih/set.v0"
)
const
(
...
...
@@ -18,9 +20,10 @@ const (
// eth api provider
// See https://github.com/ethereum/wiki/wiki/JSON-RPC
type
ethApi
struct
{
xeth
*
xeth
.
XEth
methods
map
[
string
]
ethhandler
codec
codec
.
ApiCoder
xeth
*
xeth
.
XEth
ethereum
*
eth
.
Ethereum
methods
map
[
string
]
ethhandler
codec
codec
.
ApiCoder
}
// eth callback handler
...
...
@@ -71,12 +74,13 @@ var (
"eth_hashrate"
:
(
*
ethApi
)
.
Hashrate
,
"eth_getWork"
:
(
*
ethApi
)
.
GetWork
,
"eth_submitWork"
:
(
*
ethApi
)
.
SubmitWork
,
"eth_pendingTransactions"
:
(
*
ethApi
)
.
PendingTransactions
,
}
)
// create new ethApi instance
func
NewEthApi
(
xeth
*
xeth
.
XEth
,
codec
codec
.
Codec
)
*
ethApi
{
return
&
ethApi
{
xeth
,
ethMapping
,
codec
.
New
(
nil
)}
func
NewEthApi
(
xeth
*
xeth
.
XEth
,
eth
*
eth
.
Ethereum
,
codec
codec
.
Codec
)
*
ethApi
{
return
&
ethApi
{
xeth
,
eth
,
eth
Mapping
,
codec
.
New
(
nil
)}
}
// collection with supported methods
...
...
@@ -548,3 +552,29 @@ func (self *ethApi) SubmitWork(req *shared.Request) (interface{}, error) {
}
return
self
.
xeth
.
RemoteMining
()
.
SubmitWork
(
args
.
Nonce
,
common
.
HexToHash
(
args
.
Digest
),
common
.
HexToHash
(
args
.
Header
)),
nil
}
func
(
self
*
ethApi
)
PendingTransactions
(
req
*
shared
.
Request
)
(
interface
{},
error
)
{
txs
:=
self
.
ethereum
.
TxPool
()
.
GetTransactions
()
// grab the accounts from the account manager. This will help with determening which
// transactions should be returned.
accounts
,
err
:=
self
.
ethereum
.
AccountManager
()
.
Accounts
()
if
err
!=
nil
{
return
nil
,
err
}
// Add the accouns to a new set
accountSet
:=
set
.
New
()
for
_
,
account
:=
range
accounts
{
accountSet
.
Add
(
account
.
Address
)
}
var
ltxs
[]
*
tx
for
_
,
tx
:=
range
txs
{
if
from
,
_
:=
tx
.
From
();
accountSet
.
Has
(
from
)
{
ltxs
=
append
(
ltxs
,
newTx
(
tx
))
}
}
return
ltxs
,
nil
}
rpc/api/eth_args.go
View file @
056e9dd3
...
...
@@ -5,8 +5,11 @@ import (
"fmt"
"math/big"
"strconv"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/state"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/rpc/shared"
)
...
...
@@ -858,3 +861,34 @@ func (args *SubmitWorkArgs) UnmarshalJSON(b []byte) (err error) {
return
nil
}
type
tx
struct
{
tx
*
types
.
Transaction
To
string
From
string
Nonce
string
Value
string
Data
string
GasLimit
string
GasPrice
string
}
func
newTx
(
t
*
types
.
Transaction
)
*
tx
{
from
,
_
:=
t
.
From
()
var
to
string
if
t
:=
t
.
To
();
t
!=
nil
{
to
=
t
.
Hex
()
}
return
&
tx
{
tx
:
t
,
To
:
to
,
From
:
from
.
Hex
(),
Value
:
t
.
Amount
.
String
(),
Nonce
:
strconv
.
Itoa
(
int
(
t
.
Nonce
())),
Data
:
"0x"
+
common
.
Bytes2Hex
(
t
.
Data
()),
GasLimit
:
t
.
GasLimit
.
String
(),
GasPrice
:
t
.
GasPrice
()
.
String
(),
}
}
rpc/api/eth_js.go
View file @
056e9dd3
...
...
@@ -15,6 +15,14 @@ web3._extend({
inputFormatter: [web3._extend.formatters.formatInputString,web3._extend.formatters.formatInputString],
outputFormatter: web3._extend.formatters.formatOutputString
})
],
properties:
[
new web3._extend.Property({
name: 'pendingTransactions',
getter: 'eth_pendingTransactions',
outputFormatter: function(obj) { return obj; }
})
]
});
`
rpc/api/utils.go
View file @
056e9dd3
...
...
@@ -84,6 +84,7 @@ var (
"hashrate"
,
"getWork"
,
"submitWork"
,
"pendingTransactions"
,
},
"miner"
:
[]
string
{
"hashrate"
,
...
...
@@ -149,7 +150,7 @@ func ParseApiString(apistr string, codec codec.Codec, xeth *xeth.XEth, eth *eth.
case
shared
.
DbApiName
:
apis
[
i
]
=
NewDbApi
(
xeth
,
eth
,
codec
)
case
shared
.
EthApiName
:
apis
[
i
]
=
NewEthApi
(
xeth
,
codec
)
apis
[
i
]
=
NewEthApi
(
xeth
,
eth
,
codec
)
case
shared
.
MinerApiName
:
apis
[
i
]
=
NewMinerApi
(
eth
,
codec
)
case
shared
.
NetApiName
:
...
...
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