Added handy web3-like methods for working with events:
Method for getting first found event on contract that satisfy some filter. Lets say user made a deposit in farming pool and right after that we want to catch some event indicating call success. At the moment we need to create stream with old txs + stream with new txs, merge them, than decode all txns to get events and check all events. New method do all the job internally, so you need only 1 call:
const event = contract.waitForEvent({
filter: {name: 'Deposit', params: {user: 'user_addr'}}, // optional. If set, params could be omitted
options: {fromLt: '123123123'} // optional
})
Method for getting past events that satisfy some filter or one of several filters. This can help build some 'history' pages for contracts. If your application is completely client-side and doesn't have special indexer you can fetch contract events page by page with this method. Example - get Withdraw events for certain user + all Claim events, limited by 20:
const {events, offset} = contract.getPastEvents({
filters: [{name: 'Withdraw', params: {user: 'user_addr'}}, {name: 'Claim'}], // optional
limit: 20 // optional, returns all events if omitted
})
// now get second page
const {more_events, offset2} = contract.getPastEvents({
filters: [{name: 'Withdraw', params: {user: 'user_addr'}}, {name: 'Claim'}], // same as for the 1st call
limit: 20,
offset: offset
})
Added handy web3-like methods for working with events:
Withdraw
events for certain user + allClaim
events, limited by 20: