订阅账户事件
event.account
用于订阅账号事件。
请求参数
将以下参数整体封装为 object 传入。
参数 | 必选 | 类型 | 说明 |
---|---|---|---|
to | true | string | 目标账户 |
示例
// 创建事件实例
const contractEvent = chain.event.contract({
to: 'first'
}, (err, data) => {
console.log(data)
})
// 注册事件回调
contractEvent.on((err, data) => {
console.log(data)
})
// 更新合约 code,触发事件
chain.ctr.contract('first').update(bytecode, {}, (err, contract, data) => {})
取消订阅账户事件
accountEvent.close
用于取消订阅账号事件,该接口无需请求参数。
示例
// 创建事件实例
const accountEvent = chain.event.account({
to: 'Tester001'
}, (err, data) => {
console.log(data)
})
// 取消事件
accountEvent.close((err, data) => {
console.log(data)
})
订阅合约事件
event.contract
用于订阅合约事件。
请求参数
将以下参数整体封装为 object 传入。
参数 | 必选 | 类型 | 说明 |
---|---|---|---|
to | true | string | 目标合约名称或 hash |
示例
// 创建事件实例
const contractEvent = chain.event.contract({
to: 'first'
}, (err, data) => {
console.log(data)
})
// 注册事件回调
contractEvent.on((err, data) => {
console.log(data)
})
// 更新合约代码,触发事件
chain.ctr.UpdateContract({
to: 'first',
data: {
code: bytecode
}
}, (err, data, rlpData) => {})
取消订阅合约事件
contractEvent.close
用于取消订阅账号事件,该接口无需请求参数。
示例
// 创建事件实例
const contractEvent = chain.event.contract({
to: 'first'
}, (err, data) => {
console.log(data)
})
// 取消事件
contractEvent.close((err, data) => {
console.log(data)
})
订阅主题事件
event.topic
用于订阅合约事件。
请求参数
将以下参数整体封装为 object 传入。
参数 | 必选 | 类型 | 说明 |
---|---|---|---|
to | true | string | 目标主题 |
示例
// 创建事件实例
const topicEvent = chain.event.topic({
to: 'create_account'
}, (err, data) => {
console.log(data)
})
// 注册事件回调
topicEvent.on((err, data) => {
console.log(data)
})
// 执行 CreateAccount,触发 create_account 主题事件
chain.ctr.CreateAccount({
from: 'Tester001',
to: 'Tester002',
data: {
recover_key: '0xf5e50510a04a3f659a0e89f2063f79f8c1aed5ddaab6420ac47700020d9889dc14dae4dc9843c88d8222167095d9e6ce052e8a19cbc737c3f3cddf66409dbb0a',
auth_key: '0xf5e50510a04a3f659a0e89f2063f79f8c1aed5ddaab6420ac47700020d9889dc14dae4dc9843c88d8222167095d9e6ce052e8a19cbc737c3f3cddf66409dbb0a',
auth_weight: 100
}
}, (err, data) => {})
取消订阅主题事件
topicEvent.close
用于取消订阅主题事件,该接口无需请求参数。
示例
// 创建事件实例
const topicEvent = chain.event.topic({
to: 'create_account'
}, (err, data) => {
console.log(data)
})
// 取消事件
topicEvent.close((err, data) => {
console.log(data)
})
订阅区块事件
event.block
用于订阅合约事件,该接口无需请求参数。
示例
// 创建事件实例
const blockEvent = chain.event.block({}, (err, data) => {
console.log(data)
})
// 注册事件回调,出块时触发事件
blockEvent.on((err, data) => {
console.log(data)
})
取消订阅区块事件
blockEvent.close
用于取消订阅主题事件,该接口无需请求参数。
示例
// 创建事件实例
const blockEvent = chain.event.block({}, (err, data) => {
console.log(data)
})
// 取消事件
blockEvent.close((err, data) => {
console.log(data)
})
订阅合约自定义事件
直接使用目标合约事件名。此接口用于完成合约内自定义事件的订阅。
请求参数
将以下参数整体封装为 object 传入。
参数 | 必选 | 类型 | 说明 |
---|---|---|---|
filter | false | object | 事件过滤,可通过自定义事件的参数进行过滤。 |
callback | false | function | 事件回调。 |
示例
myContract.new(bytecode, {
from: 'Tester001',
// parameters: [param1, param2]
}, (err, contract, data) => {
console.log(data)
// 订阅合约事件‘IssueEvent’,参数为事件回调,这里 filter: {a: 10} 可以控制只监听 IssueEvent(10) 的情况
myContract.IssueEvent({filter: {a: 10}}, (err, output, data) => {
console.log('output is:', output)
})
myContract.IssueEvent((err, output, data) => {
console.log('output is:', output)
})
})
文档内容是否对您有帮助?