- Eros Test Net JS-SDK 文档
官方提供JS-SDK,可运行于浏览器、Electron客户端和手机端。支持 Eros 系统内置交易类型。本开发包多数函数调用需要个人密钥作为参数,但只在本地使用密钥,发送给服务端的数据只包含公钥或者签名等信息,不包含用户敏感信息。
1.1 创建一笔新的交易,调用SDK导出的相应函数。
1.2 SDK使用用户传入的参数,根据 Eros 的接口规则,产生一个交易,并进行签名,最终得到完整的交易数据。
1.3 发送请求,把构造完成的数据通过 POST/GET 等方式传发送给 Eros 节点。
1.4 服务端节点接收到请求后,立即进行校验,验证通过后便会处理该次发送过来的请求。
1.5 以 JSON 格式返回响应结果数据。每个响应都包含 code 字段,0 表示成功,其他值表示失败,并包含错误原因。
TODO
接口地址:/api/account/address/:address
请求方式:GET
备注:返回此地址账户详细信息
请求示例:
curl -k -X GET 'http://123.56.187.196:10086/api/account/address/24dYNPt2Ed8ukwuaQi66R4npkeSWdygcUFo8hEHKseZ7DZtzV8'
const keyPair = erosLib.fromSecret('your secret')
console.log(keyPair)
erosLib.getPublicKeyByAddress
erosLib.getAddressByPublicKey
接口地址:/api/account/trss/:address
请求方式:GET
参数说明:
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
page | string | Y | 分页的页数,从零开始 |
请求示例:
curl -k -X GET 'http://123.56.187.196:10086/api/account/trss/24dYNPt2Ed8ukwuaQi66R4npkeSWdygcUFo8hEHKseZ7DZtzV8?page=0'
接口地址:/api/transaction/transaction
请求方式:POST
支持格式:'application/json'
SDK 导出函数:send
参数说明:
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
secret | string | Y | 发送者密码 |
recipient | string | Y | 接收者地址 |
amount | number | Y | 数量 |
message | string | N | 备注信息 |
secondSecret | string | N | 发送者二级密码 |
SDK 请求示例:
const send = erosLib.send(secret, recipient, amount, message,secondSecret)
接口地址:/api/transaction/transaction
请求方式:POST
支持格式:'application/json'
SDK 导出函数:signature
参数说明:
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
secret | string | Y | 发送者密码 |
secondSecret | string | Y | 二级密码 |
secondSecretOld | string | N | 当前二级密码 |
备注:如果当前无二级密码,第三个参数省略。
SDK 请求示例:
const signature = erosLib.signature(secret, secondSecret, secondSecretOld)
接口地址:/api/transaction/transaction
请求方式:POST
支持格式:'application/json'
SDK 导出函数:delegate
参数说明:
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
secret | string | Y | 发送者密码 |
username | string | Y | 名称 |
secondSecret | string | N | 二级密码 |
SDK 请求示例:
const delegate = erosLib.delegate(secret, username,secondSecret)
接口地址:/api/transaction/transaction
请求方式:POST
支持格式:'application/json'
SDK 导出函数:vote
参数说明:
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
secret | string | Y | 发送者密码 |
votes | array | Y | 投票列表 |
备注:投票列表为公钥字符串数组,+/- 代表投票/取消投票
SDK 请求示例:
const vote = erosLib.vote(secret, [
'+bc7e64263844ab3d4f91edbe76d6c2a066efa29159b941cbcd411e0cbb825cf9'
])
接口地址:/api/transaction/transaction
请求方式:POST
支持格式:'application/json'
SDK 导出函数:storage
参数说明:
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
secret | string | Y | 发送者密码 |
content | string | Y | 内容 |
备注:存储的是 content 的 hash
SDK 请求示例:
const storage = erosLib.storage(secret, content)
接口地址:/api/transaction/transaction
请求方式:POST
支持格式:'application/json'
SDK 导出函数:lock
参数说明:
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
secret | string | Y | 发送者密码 |
height | integer | Y | 高度 |
secondSecret | string | N | 二级密码 |
SDK 请求示例:
const lock = erosLib.lock(secret, height, secondSecret)
待开放
接口地址:/api/transaction/:id
请求方式:GET
备注:返回此交易原始信息
请求示例:
curl -k -X GET 'http://123.56.187.196:10086/api/transaction/1722550667642e772fb834c6e8d3b9eb3aa04c7f27fd05df74a62758290f8e4a'
接口地址:/api/transaction/transaction
请求方式:POST
支持格式:'application/json'
SDK 导出函数: turnDelegate
参数说明:
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
secret | string | Y | 发送者密码 |
open | boolean | Y | 打开 true,关闭 false |
secondSecret | string | N | 二级密码 |
备注:只有注册为代理之后的账户才可关闭
SDK 请求示例:
const turnDelegate = erosLib.turnDelegate(secret, false, secondSecret)
接口地址:/api/transaction/trss/:page
请求方式:GET
请求示例:
curl -k -X GET 'http://123.56.187.196:10086/api/transaction/trss/0'
接口地址:/api/transaction/transaction
请求方式:POST
支持格式:'application/json'
SDK 导出函数: contract
参数说明:
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
secret | string | Y | 发送者密码 |
option | object | Y | option 对象 |
option.code | string | Y | 合约代码 |
option.message | string | N | 备注,最多255个字符 |
secondSecret | string | N | 二级密码 |
SDK 请求示例:
const code = `function main(args) {
var strget = storageGet()
var getObj = []
if (strget) {
getObj = JSON.parse(strget)
}
if (getObj.indexOf(requesterKey) >= 0) {
return JSON.stringify({
amount: 0
})
} else {
getObj.push(requesterKey)
storageSet(JSON.stringify(getObj))
return JSON.stringify({
amount: 5
})
}
}`
const contract = erosLib.contract(secret, { code }, secondSecret)
接口地址:/api/transaction/transaction
请求方式:POST
支持格式:'application/json'
SDK 导出函数: invoke
参数说明:
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
secret | string | Y | 发送者密码 |
option | object | Y | option 对象 |
option.contractId | string | Y | 合约id |
option.args | array | N | 字符串数组,不大于8项 |
option.message | string | N | 备注,最多255个字符 |
SDK 请求示例:
const invoke = erosLib.invoke(secret, { contractId })
接口地址:/api/transaction/transaction
请求方式:POST
支持格式:'application/json'
SDK 导出函数: regAsset
参数说明:
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
secret | string | Y | 发送者密码 |
option | object | Y | option 对象 |
option.amount | long | Y | 资产总额 |
option.message | string | N | 备注,最多255个字符 |
secondSecret | string | N | 二级密码 |
SDK 请求示例:
const regAsset = erosLib.regAsset(secret, { amount }, secondSecret)
接口地址:/api/transaction/transaction
请求方式:POST
支持格式:'application/json'
SDK 导出函数: assetTransfer
参数说明:
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
secret | string | Y | 发送者密码 |
receiver | string | Y | 接收者地址 |
option | object | Y | option 对象 |
option.assetId | string | Y | 资产id |
option.amount | long | Y | 数量 |
option.message | string | N | 备注,最多255个字符 |
secondSecret | string | N | 二级密码 |
SDK 请求示例:
const assetTransfer = erosLib.assetTransfer(secret, { assetId, amount }, secondSecret)
接口地址:/api/block/height/:height
请求方式:GET
参数:
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
org | string | N | 只能为 1 |
备注:返回此区块原始信息
请求示例:
curl -k -X GET 'http://123.56.187.196:10086/api/block/height/230?org=1'
接口地址:/api/block/top
请求方式:GET
参数:
备注:返回已入库之最高区块
请求示例:
curl -k -X GET 'http://123.56.187.196:10086/api/block/top'
接口地址:/api/block/blocks/:page
请求方式:GET
参数:
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
page | string | Y | 页数,从零开始 |
请求示例:
curl -k -X GET 'http://123.56.187.196:10086/api/block/blocks/0'
接口地址:/api/delegate/list/:page
请求方式:GET
参数:
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
page | integer | Y | 第几页,从零开始 |
address | string | N | 自己的地址 |
备注:address 用?address=xxx 来传,可以没有,如果有则额外返回是否给相应的代理投了票
请求示例:
curl -k -X GET 'http://123.56.187.196:10086/api/delegate/list/1'
接口地址:/api/vote/voted/:address
请求方式:GET
参数:
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
page | string | Y | 页信息,从零开始 |
请求示例:
curl -k -X GET 'http://123.56.187.196:10086/api/vote/voted/2S1pW43jTeZAvhXZRWcVjbpZhqS1ZMEczaRq7u4mGJfPwEoxW3?page=0'
erosLib.Buffer
示例:
erosLib.jshash.sha256().update('abc').digest('hex')
示例:
new Date(erosLib.realTime(trs.timestamp)).toLocaleString()
示例:
console.log(erosLib.typeLiteral(trs.type))
示例:
if (erosLib.isAddress(address)) {
// ...
}
示例:
if (erosLib.isTrsId('02be8404f181404847b63f7f19fcb52734f95f7ad22095848d76adb2faf2f67c')) {
// ...
}
示例:
if (erosLib.isValidHeight('20')) {
// ...
}
接口地址:/peer/list
请求方式:GET
<!DOCTYPE html>
<html><head>
<meta charset="utf-8"/>
<title>TEST</title>
<script type="text/javascript" charset="utf-8" src="http://apps.bdimg.com/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript" charset="utf-8" src="http://admin.waketu.com/cryp.js"></script>
<script type="text/javascript" charset="utf-8" src="index.bundle.js"></script>
</head>
<body>
<script type="text/javascript" charset="utf-8">
$(function(){
const secret = 'your secret'
const recipient = '24dYNPt2Ed8ukwuaQi66R4npkeSWdygcUFo8hEHKseZ7DZtzV8'
const send = erosLib.send(secret, recipient, 2.9)
$.ajax({
url: 'http://123.56.187.196:10086/api/transaction/transaction',
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({ transaction: send }),
success: function(res){
console.log(res)
},
error: function(err){
}
})
})
</script>
</body>
</html>