Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
whqwjb
go-ethereum
提交
45134de7
G
go-ethereum
项目概览
whqwjb
/
go-ethereum
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
go-ethereum
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
45134de7
编写于
2月 03, 2015
作者:
M
Marek Kotewicz
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
jsonrpc.js file && batch polling
上级
f3ce1f07
变更
7
展开全部
隐藏空白更改
内联
并排
Showing
7 changed file
with
196 addition
and
46 deletion
+196
-46
dist/ethereum.js
dist/ethereum.js
+101
-26
dist/ethereum.js.map
dist/ethereum.js.map
+6
-4
dist/ethereum.min.js
dist/ethereum.min.js
+1
-1
lib/httpsync.js
lib/httpsync.js
+2
-1
lib/jsonrpc.js
lib/jsonrpc.js
+61
-0
lib/providermanager.js
lib/providermanager.js
+23
-13
lib/qtsync.js
lib/qtsync.js
+2
-1
未找到文件。
dist/ethereum.js
浏览文件 @
45134de7
...
...
@@ -210,7 +210,7 @@ module.exports = {
};
},{
"
./const
"
:
2
,
"
./formatters
"
:
6
,
"
./types
"
:
1
0
,
"
./utils
"
:
11
,
"
./web3
"
:
12
}],
2
:[
function
(
require
,
module
,
exports
){
},{
"
./const
"
:
2
,
"
./formatters
"
:
6
,
"
./types
"
:
1
1
,
"
./utils
"
:
12
,
"
./web3
"
:
13
}],
2
:[
function
(
require
,
module
,
exports
){
/*
This file is part of ethereum.js.
...
...
@@ -487,7 +487,7 @@ var contract = function (address, desc) {
module
.
exports
=
contract
;
},{
"
./abi
"
:
1
,
"
./event
"
:
4
,
"
./utils
"
:
1
1
,
"
./web3
"
:
12
}],
4
:[
function
(
require
,
module
,
exports
){
},{
"
./abi
"
:
1
,
"
./event
"
:
4
,
"
./utils
"
:
1
2
,
"
./web3
"
:
13
}],
4
:[
function
(
require
,
module
,
exports
){
/*
This file is part of ethereum.js.
...
...
@@ -624,7 +624,7 @@ module.exports = {
};
},{
"
./abi
"
:
1
,
"
./utils
"
:
1
1
}],
5
:[
function
(
require
,
module
,
exports
){
},{
"
./abi
"
:
1
,
"
./utils
"
:
1
2
}],
5
:[
function
(
require
,
module
,
exports
){
/*
This file is part of ethereum.js.
...
...
@@ -727,7 +727,7 @@ Filter.prototype.logs = function () {
module
.
exports
=
Filter
;
},{
"
./web3
"
:
1
2
}],
6
:[
function
(
require
,
module
,
exports
){
},{
"
./web3
"
:
1
3
}],
6
:[
function
(
require
,
module
,
exports
){
/*
This file is part of ethereum.js.
...
...
@@ -883,7 +883,7 @@ module.exports = {
};
},{
"
./const
"
:
2
,
"
./utils
"
:
1
1
}],
7
:[
function
(
require
,
module
,
exports
){
},{
"
./const
"
:
2
,
"
./utils
"
:
1
2
}],
7
:[
function
(
require
,
module
,
exports
){
/*
This file is part of ethereum.js.
...
...
@@ -924,7 +924,8 @@ HttpSyncProvider.prototype.send = function (payload) {
request
.
send
(
JSON
.
stringify
(
payload
));
// check request.status
return
request
.
responseText
;
var
result
=
request
.
responseText
;
return
JSON
.
parse
(
result
);
};
module
.
exports
=
HttpSyncProvider
;
...
...
@@ -947,6 +948,69 @@ module.exports = HttpSyncProvider;
You should have received a copy of the GNU Lesser General Public License
along with ethereum.js. If not, see <http://www.gnu.org/licenses/>.
*/
/** @file jsonrpc.js
* @authors:
* Marek Kotewicz <marek@ethdev.com>
* @date 2015
*/
var
messageId
=
1
;
/// Should be called to valid json create payload object
/// @param method of jsonrpc call, required
/// @param params, an array of method params, optional
/// @returns valid jsonrpc payload object
var
toPayload
=
function
(
method
,
params
)
{
if
(
!
method
)
console
.
error
(
'
jsonrpc method should be specified!
'
);
return
{
jsonrpc
:
'
2.0
'
,
method
:
method
,
params
:
params
||
[],
id
:
messageId
++
};
};
/// Should be called to check if jsonrpc response is valid
/// @returns true if response doesn't have error field
var
isValidResponse
=
function
(
response
)
{
return
response
&&
!
response
.
error
;
};
/// Should be called to create batch payload object
/// @param messages, an array of objects with method (required) and params (optional) fields
var
toBatchPayload
=
function
(
messages
)
{
return
messages
.
map
(
function
(
message
)
{
return
toPayload
(
message
.
method
,
message
.
params
);
});
};
module
.
exports
=
{
toPayload
:
toPayload
,
isValidResponse
:
isValidResponse
,
toBatchPayload
:
toBatchPayload
};
},{}],
9
:[
function
(
require
,
module
,
exports
){
/*
This file is part of ethereum.js.
ethereum.js is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ethereum.js is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with ethereum.js. If not, see <http://www.gnu.org/licenses/>.
*/
/** @file providermanager.js
* @authors:
* Jeffrey Wilcke <jeff@ethdev.com>
...
...
@@ -956,7 +1020,9 @@ module.exports = HttpSyncProvider;
* @date 2014
*/
var
web3
=
require
(
'
./web3
'
);
// jshint ignore:line
var
web3
=
require
(
'
./web3
'
);
var
jsonrpc
=
require
(
'
./jsonrpc
'
);
/**
* Provider manager object prototype
...
...
@@ -970,21 +1036,34 @@ var web3 = require('./web3'); // jshint ignore:line
var
ProviderManager
=
function
()
{
this
.
polls
=
[];
this
.
provider
=
undefined
;
this
.
id
=
1
;
var
self
=
this
;
var
poll
=
function
()
{
if
(
self
.
provider
)
{
self
.
polls
.
forEach
(
function
(
data
)
{
var
result
=
self
.
send
(
data
.
data
);
var
pollsBatch
=
self
.
polls
.
map
(
function
(
data
)
{
return
data
.
data
;
});
var
payload
=
jsonrpc
.
toBatchPayload
(
pollsBatch
);
var
results
=
self
.
provider
.
send
(
payload
);
self
.
polls
.
forEach
(
function
(
data
,
index
)
{
var
result
=
results
[
index
];
if
(
!
jsonrpc
.
isValidResponse
(
result
))
{
return
;
}
result
=
result
.
result
;
// dont call the callback if result is not an array, or empty one
if
(
!
(
result
instanceof
Array
)
||
result
.
length
===
0
)
{
return
;
}
data
.
callback
(
result
);
});
}
setTimeout
(
poll
,
1000
);
};
...
...
@@ -994,21 +1073,16 @@ var ProviderManager = function() {
/// sends outgoing requests
/// @params data - an object with at least 'method' property
ProviderManager
.
prototype
.
send
=
function
(
data
)
{
data
.
jsonrpc
=
'
2.0
'
;
data
.
params
=
data
.
params
||
[];
data
.
id
=
this
.
id
++
;
var
payload
=
jsonrpc
.
toPayload
(
data
.
method
,
data
.
params
);
if
(
this
.
provider
===
undefined
)
{
console
.
error
(
'
provider is not set
'
);
return
null
;
}
//TODO: handle error here?
var
result
=
this
.
provider
.
send
(
data
);
result
=
JSON
.
parse
(
result
);
var
result
=
this
.
provider
.
send
(
payload
);
if
(
result
.
error
)
{
if
(
!
jsonrpc
.
isValidResponse
(
result
)
)
{
console
.
log
(
result
.
error
);
return
null
;
}
...
...
@@ -1040,7 +1114,7 @@ ProviderManager.prototype.stopPolling = function (pollId) {
module
.
exports
=
ProviderManager
;
},{
"
./
web3
"
:
12
}],
9
:[
function
(
require
,
module
,
exports
){
},{
"
./
jsonrpc
"
:
8
,
"
./web3
"
:
13
}],
10
:[
function
(
require
,
module
,
exports
){
/*
This file is part of ethereum.js.
...
...
@@ -1068,13 +1142,14 @@ var QtSyncProvider = function () {
};
QtSyncProvider
.
prototype
.
send
=
function
(
payload
)
{
return
navigator
.
qt
.
callMethod
(
JSON
.
stringify
(
payload
));
var
result
=
navigator
.
qt
.
callMethod
(
JSON
.
stringify
(
payload
));
return
JSON
.
parse
(
result
);
};
module
.
exports
=
QtSyncProvider
;
},{}],
1
0
:[
function
(
require
,
module
,
exports
){
},{}],
1
1
:[
function
(
require
,
module
,
exports
){
/*
This file is part of ethereum.js.
...
...
@@ -1155,7 +1230,7 @@ module.exports = {
};
},{
"
./formatters
"
:
6
}],
1
1
:[
function
(
require
,
module
,
exports
){
},{
"
./formatters
"
:
6
}],
1
2
:[
function
(
require
,
module
,
exports
){
/*
This file is part of ethereum.js.
...
...
@@ -1299,7 +1374,7 @@ module.exports = {
};
},{
"
./const
"
:
2
}],
1
2
:[
function
(
require
,
module
,
exports
){
},{
"
./const
"
:
2
}],
1
3
:[
function
(
require
,
module
,
exports
){
/*
This file is part of ethereum.js.
...
...
@@ -1557,7 +1632,7 @@ web3.setProvider = function(provider) {
module
.
exports
=
web3
;
},{
"
./utils
"
:
1
1
}],
"
web3
"
:[
function
(
require
,
module
,
exports
){
},{
"
./utils
"
:
1
2
}],
"
web3
"
:[
function
(
require
,
module
,
exports
){
var
web3
=
require
(
'
./lib/web3
'
);
var
ProviderManager
=
require
(
'
./lib/providermanager
'
);
web3
.
provider
=
new
ProviderManager
();
...
...
@@ -1570,7 +1645,7 @@ web3.abi = require('./lib/abi');
module
.
exports
=
web3
;
},{
"
./lib/abi
"
:
1
,
"
./lib/contract
"
:
3
,
"
./lib/filter
"
:
5
,
"
./lib/httpsync
"
:
7
,
"
./lib/providermanager
"
:
8
,
"
./lib/qtsync
"
:
9
,
"
./lib/web3
"
:
12
}]},{},[
"
web3
"
])
},{
"
./lib/abi
"
:
1
,
"
./lib/contract
"
:
3
,
"
./lib/filter
"
:
5
,
"
./lib/httpsync
"
:
7
,
"
./lib/providermanager
"
:
9
,
"
./lib/qtsync
"
:
10
,
"
./lib/web3
"
:
13
}]},{},[
"
web3
"
])
//# sourceMappingURL=ethereum.js.map
\ No newline at end of file
dist/ethereum.js.map
浏览文件 @
45134de7
此差异已折叠。
点击以展开。
dist/ethereum.min.js
浏览文件 @
45134de7
此差异已折叠。
点击以展开。
lib/httpsync.js
浏览文件 @
45134de7
...
...
@@ -38,7 +38,8 @@ HttpSyncProvider.prototype.send = function (payload) {
request
.
send
(
JSON
.
stringify
(
payload
));
// check request.status
return
request
.
responseText
;
var
result
=
request
.
responseText
;
return
JSON
.
parse
(
result
);
};
module
.
exports
=
HttpSyncProvider
;
...
...
lib/jsonrpc.js
0 → 100644
浏览文件 @
45134de7
/*
This file is part of ethereum.js.
ethereum.js is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ethereum.js is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with ethereum.js. If not, see <http://www.gnu.org/licenses/>.
*/
/** @file jsonrpc.js
* @authors:
* Marek Kotewicz <marek@ethdev.com>
* @date 2015
*/
var
messageId
=
1
;
/// Should be called to valid json create payload object
/// @param method of jsonrpc call, required
/// @param params, an array of method params, optional
/// @returns valid jsonrpc payload object
var
toPayload
=
function
(
method
,
params
)
{
if
(
!
method
)
console
.
error
(
'
jsonrpc method should be specified!
'
);
return
{
jsonrpc
:
'
2.0
'
,
method
:
method
,
params
:
params
||
[],
id
:
messageId
++
};
};
/// Should be called to check if jsonrpc response is valid
/// @returns true if response doesn't have error field
var
isValidResponse
=
function
(
response
)
{
return
response
&&
!
response
.
error
;
};
/// Should be called to create batch payload object
/// @param messages, an array of objects with method (required) and params (optional) fields
var
toBatchPayload
=
function
(
messages
)
{
return
messages
.
map
(
function
(
message
)
{
return
toPayload
(
message
.
method
,
message
.
params
);
});
};
module
.
exports
=
{
toPayload
:
toPayload
,
isValidResponse
:
isValidResponse
,
toBatchPayload
:
toBatchPayload
};
lib/providermanager.js
浏览文件 @
45134de7
...
...
@@ -23,7 +23,9 @@
* @date 2014
*/
var
web3
=
require
(
'
./web3
'
);
// jshint ignore:line
var
web3
=
require
(
'
./web3
'
);
var
jsonrpc
=
require
(
'
./jsonrpc
'
);
/**
* Provider manager object prototype
...
...
@@ -37,21 +39,34 @@ var web3 = require('./web3'); // jshint ignore:line
var
ProviderManager
=
function
()
{
this
.
polls
=
[];
this
.
provider
=
undefined
;
this
.
id
=
1
;
var
self
=
this
;
var
poll
=
function
()
{
if
(
self
.
provider
)
{
self
.
polls
.
forEach
(
function
(
data
)
{
var
result
=
self
.
send
(
data
.
data
);
var
pollsBatch
=
self
.
polls
.
map
(
function
(
data
)
{
return
data
.
data
;
});
var
payload
=
jsonrpc
.
toBatchPayload
(
pollsBatch
);
var
results
=
self
.
provider
.
send
(
payload
);
self
.
polls
.
forEach
(
function
(
data
,
index
)
{
var
result
=
results
[
index
];
if
(
!
jsonrpc
.
isValidResponse
(
result
))
{
return
;
}
result
=
result
.
result
;
// dont call the callback if result is not an array, or empty one
if
(
!
(
result
instanceof
Array
)
||
result
.
length
===
0
)
{
return
;
}
data
.
callback
(
result
);
});
}
setTimeout
(
poll
,
1000
);
};
...
...
@@ -61,21 +76,16 @@ var ProviderManager = function() {
/// sends outgoing requests
/// @params data - an object with at least 'method' property
ProviderManager
.
prototype
.
send
=
function
(
data
)
{
data
.
jsonrpc
=
'
2.0
'
;
data
.
params
=
data
.
params
||
[];
data
.
id
=
this
.
id
++
;
var
payload
=
jsonrpc
.
toPayload
(
data
.
method
,
data
.
params
);
if
(
this
.
provider
===
undefined
)
{
console
.
error
(
'
provider is not set
'
);
return
null
;
}
//TODO: handle error here?
var
result
=
this
.
provider
.
send
(
data
);
result
=
JSON
.
parse
(
result
);
var
result
=
this
.
provider
.
send
(
payload
);
if
(
result
.
error
)
{
if
(
!
jsonrpc
.
isValidResponse
(
result
)
)
{
console
.
log
(
result
.
error
);
return
null
;
}
...
...
lib/qtsync.js
浏览文件 @
45134de7
...
...
@@ -25,7 +25,8 @@ var QtSyncProvider = function () {
};
QtSyncProvider
.
prototype
.
send
=
function
(
payload
)
{
return
navigator
.
qt
.
callMethod
(
JSON
.
stringify
(
payload
));
var
result
=
navigator
.
qt
.
callMethod
(
JSON
.
stringify
(
payload
));
return
JSON
.
parse
(
result
);
};
module
.
exports
=
QtSyncProvider
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录