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
bc6fdad7
Commit
bc6fdad7
authored
May 11, 2016
by
Péter Szilágyi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
cmd/geth, internal/web3ext, rpc: surface rpc module, fix shh, fix miner
parent
c05db38a
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
136 additions
and
120 deletions
+136
-120
js.go
cmd/geth/js.go
+1
-1
web3ext.go
internal/web3ext/web3ext.go
+131
-116
server.go
rpc/server.go
+3
-2
utils.go
rpc/utils.go
+1
-1
No files found.
cmd/geth/js.go
View file @
bc6fdad7
...
...
@@ -199,7 +199,7 @@ func (js *jsre) apiBindings() error {
// load only supported API's in javascript runtime
shortcuts
:=
"var eth = web3.eth; var personal = web3.personal; "
for
_
,
apiName
:=
range
apiNames
{
if
apiName
==
"web3"
||
apiName
==
"rpc"
{
if
apiName
==
"web3"
{
continue
// manually mapped or ignore
}
...
...
internal/web3ext/web3ext.go
View file @
bc6fdad7
...
...
@@ -18,44 +18,17 @@
package
web3ext
var
Modules
=
map
[
string
]
string
{
"txpool"
:
TxPool_JS
,
"admin"
:
Admin_JS
,
"
personal"
:
Personal
_JS
,
"
debug"
:
Debug
_JS
,
"eth"
:
Eth_JS
,
"miner"
:
Miner_JS
,
"debug"
:
Debug_JS
,
"net"
:
Net_JS
,
"personal"
:
Personal_JS
,
"rpc"
:
RPC_JS
,
"shh"
:
Shh_JS
,
"txpool"
:
TxPool_JS
,
}
const
TxPool_JS
=
`
web3._extend({
property: 'txpool',
methods:
[
],
properties:
[
new web3._extend.Property({
name: 'content',
getter: 'txpool_content'
}),
new web3._extend.Property({
name: 'inspect',
getter: 'txpool_inspect'
}),
new web3._extend.Property({
name: 'status',
getter: 'txpool_status',
outputFormatter: function(status) {
status.pending = web3._extend.utils.toDecimal(status.pending);
status.queued = web3._extend.utils.toDecimal(status.queued);
return status;
}
})
]
});
`
const
Admin_JS
=
`
web3._extend({
property: 'admin',
...
...
@@ -176,88 +149,6 @@ web3._extend({
});
`
const
Personal_JS
=
`
web3._extend({
property: 'personal',
methods:
[
new web3._extend.Method({
name: 'importRawKey',
call: 'personal_importRawKey',
params: 2
})
]
});
`
const
Eth_JS
=
`
web3._extend({
property: 'eth',
methods:
[
new web3._extend.Method({
name: 'sign',
call: 'eth_sign',
params: 2,
inputFormatter: [web3._extend.formatters.inputAddressFormatter, null]
}),
new web3._extend.Method({
name: 'resend',
call: 'eth_resend',
params: 3,
inputFormatter: [web3._extend.formatters.inputTransactionFormatter, web3._extend.utils.fromDecimal, web3._extend.utils.fromDecimal]
}),
new web3._extend.Method({
name: 'getNatSpec',
call: 'eth_getNatSpec',
params: 1,
inputFormatter: [web3._extend.formatters.inputTransactionFormatter]
}),
new web3._extend.Method({
name: 'signTransaction',
call: 'eth_signTransaction',
params: 1,
inputFormatter: [web3._extend.formatters.inputTransactionFormatter]
}),
new web3._extend.Method({
name: 'submitTransaction',
call: 'eth_submitTransaction',
params: 1,
inputFormatter: [web3._extend.formatters.inputTransactionFormatter]
})
],
properties:
[
new web3._extend.Property({
name: 'pendingTransactions',
getter: 'eth_pendingTransactions',
outputFormatter: function(txs) {
var formatted = [];
for (var i = 0; i < txs.length; i++) {
formatted.push(web3._extend.formatters.outputTransactionFormatter(txs[i]));
formatted[i].blockHash = null;
}
return formatted;
}
})
]
});
`
const
Net_JS
=
`
web3._extend({
property: 'net',
methods: [],
properties:
[
new web3._extend.Property({
name: 'version',
getter: 'net_version'
})
]
});
`
const
Debug_JS
=
`
web3._extend({
property: 'debug',
...
...
@@ -410,6 +301,60 @@ web3._extend({
});
`
const
Eth_JS
=
`
web3._extend({
property: 'eth',
methods:
[
new web3._extend.Method({
name: 'sign',
call: 'eth_sign',
params: 2,
inputFormatter: [web3._extend.formatters.inputAddressFormatter, null]
}),
new web3._extend.Method({
name: 'resend',
call: 'eth_resend',
params: 3,
inputFormatter: [web3._extend.formatters.inputTransactionFormatter, web3._extend.utils.fromDecimal, web3._extend.utils.fromDecimal]
}),
new web3._extend.Method({
name: 'getNatSpec',
call: 'eth_getNatSpec',
params: 1,
inputFormatter: [web3._extend.formatters.inputTransactionFormatter]
}),
new web3._extend.Method({
name: 'signTransaction',
call: 'eth_signTransaction',
params: 1,
inputFormatter: [web3._extend.formatters.inputTransactionFormatter]
}),
new web3._extend.Method({
name: 'submitTransaction',
call: 'eth_submitTransaction',
params: 1,
inputFormatter: [web3._extend.formatters.inputTransactionFormatter]
})
],
properties:
[
new web3._extend.Property({
name: 'pendingTransactions',
getter: 'eth_pendingTransactions',
outputFormatter: function(txs) {
var formatted = [];
for (var i = 0; i < txs.length; i++) {
formatted.push(web3._extend.formatters.outputTransactionFormatter(txs[i]));
formatted[i].blockHash = null;
}
return formatted;
}
})
]
});
`
const
Miner_JS
=
`
web3._extend({
property: 'miner',
...
...
@@ -440,7 +385,7 @@ web3._extend({
name: 'setGasPrice',
call: 'miner_setGasPrice',
params: 1,
inputFormatter: [web3._extend.utils.fromDecial]
inputFormatter: [web3._extend.utils.fromDeci
m
al]
}),
new web3._extend.Method({
name: 'startAutoDAG',
...
...
@@ -463,6 +408,48 @@ web3._extend({
});
`
const
Net_JS
=
`
web3._extend({
property: 'net',
methods: [],
properties:
[
new web3._extend.Property({
name: 'version',
getter: 'net_version'
})
]
});
`
const
Personal_JS
=
`
web3._extend({
property: 'personal',
methods:
[
new web3._extend.Method({
name: 'importRawKey',
call: 'personal_importRawKey',
params: 2
})
]
});
`
const
RPC_JS
=
`
web3._extend({
property: 'rpc',
methods: [],
properties:
[
new web3._extend.Property({
name: 'modules',
getter: 'rpc_modules'
})
]
});
`
const
Shh_JS
=
`
web3._extend({
property: 'shh',
...
...
@@ -471,7 +458,35 @@ web3._extend({
[
new web3._extend.Property({
name: 'version',
getter: 'shh_version'
getter: 'shh_version',
outputFormatter: web3._extend.utils.toDecimal
})
]
});
`
const
TxPool_JS
=
`
web3._extend({
property: 'txpool',
methods: [],
properties:
[
new web3._extend.Property({
name: 'content',
getter: 'txpool_content'
}),
new web3._extend.Property({
name: 'inspect',
getter: 'txpool_inspect'
}),
new web3._extend.Property({
name: 'status',
getter: 'txpool_status',
outputFormatter: function(status) {
status.pending = web3._extend.utils.toDecimal(status.pending);
status.queued = web3._extend.utils.toDecimal(status.queued);
return status;
}
})
]
});
...
...
rpc/server.go
View file @
bc6fdad7
...
...
@@ -34,7 +34,8 @@ const (
notificationBufferSize
=
10000
// max buffered notifications before codec is closed
DefaultIPCApis
=
"admin,eth,debug,miner,net,shh,txpool,personal,web3"
MetadataApi
=
"rpc"
DefaultIPCApis
=
"admin,debug,eth,miner,net,personal,shh,txpool,web3"
DefaultHTTPApis
=
"eth,net,web3"
)
...
...
@@ -61,7 +62,7 @@ func NewServer() *Server {
// register a default service which will provide meta information about the RPC service such as the services and
// methods it offers.
rpcService
:=
&
RPCService
{
server
}
server
.
RegisterName
(
"rpc"
,
rpcService
)
server
.
RegisterName
(
MetadataApi
,
rpcService
)
return
server
}
...
...
rpc/utils.go
View file @
bc6fdad7
...
...
@@ -234,7 +234,7 @@ func SupportedModules(client Client) (map[string]string, error) {
req
:=
JSONRequest
{
Id
:
[]
byte
(
"1"
),
Version
:
"2.0"
,
Method
:
"rpc
_modules"
,
Method
:
MetadataApi
+
"
_modules"
,
}
if
err
:=
client
.
Send
(
req
);
err
!=
nil
{
return
nil
,
err
...
...
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