订阅账户事件
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)})})
该文章对您有帮助吗?