viem 0.0.0-main.20230810T045448 → 0.0.0-main.20230810T045918
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/actions/public/watchContractEvent.js +134 -67
- package/dist/cjs/actions/public/watchContractEvent.js.map +1 -1
- package/dist/cjs/actions/public/watchEvent.js +136 -62
- package/dist/cjs/actions/public/watchEvent.js.map +1 -1
- package/dist/cjs/errors/version.js +1 -1
- package/dist/esm/actions/public/watchContractEvent.js +145 -76
- package/dist/esm/actions/public/watchContractEvent.js.map +1 -1
- package/dist/esm/actions/public/watchEvent.js +146 -70
- package/dist/esm/actions/public/watchEvent.js.map +1 -1
- package/dist/esm/errors/version.js +1 -1
- package/dist/types/actions/public/watchContractEvent.d.ts +32 -6
- package/dist/types/actions/public/watchContractEvent.d.ts.map +1 -1
- package/dist/types/actions/public/watchEvent.d.ts +32 -9
- package/dist/types/actions/public/watchEvent.d.ts.map +1 -1
- package/dist/types/errors/version.d.ts +1 -1
- package/package.json +1 -1
- package/src/actions/public/watchContractEvent.ts +201 -87
- package/src/actions/public/watchEvent.ts +230 -109
- package/src/errors/version.ts +1 -1
@@ -2,7 +2,8 @@ import { getAbiItem, } from '../../utils/abi/getAbiItem.js';
|
|
2
2
|
import { observe } from '../../utils/observe.js';
|
3
3
|
import { poll } from '../../utils/poll.js';
|
4
4
|
import { stringify } from '../../utils/stringify.js';
|
5
|
-
import {
|
5
|
+
import { DecodeLogDataMismatch } from '../../errors/abi.js';
|
6
|
+
import { DecodeLogTopicsMismatch, InvalidInputRpcError, decodeEventLog, encodeEventTopics, formatLog, } from '../../index.js';
|
6
7
|
import { createContractEventFilter, } from './createContractEventFilter.js';
|
7
8
|
import { getBlockNumber } from './getBlockNumber.js';
|
8
9
|
import { getFilterChanges } from './getFilterChanges.js';
|
@@ -38,89 +39,157 @@ import { uninstallFilter } from './uninstallFilter.js';
|
|
38
39
|
* onLogs: (logs) => console.log(logs),
|
39
40
|
* })
|
40
41
|
*/
|
41
|
-
export function watchContractEvent(client, { abi, address, args, batch = true, eventName, onError, onLogs, pollingInterval = client.pollingInterval, strict: strict_, }) {
|
42
|
-
const
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
eventName,
|
64
|
-
strict,
|
65
|
-
}));
|
66
|
-
}
|
67
|
-
catch { }
|
68
|
-
initialized = true;
|
69
|
-
return;
|
70
|
-
}
|
71
|
-
try {
|
72
|
-
let logs;
|
73
|
-
if (filter) {
|
74
|
-
logs = await getFilterChanges(client, { filter });
|
75
|
-
}
|
76
|
-
else {
|
77
|
-
// If the filter doesn't exist, we will fall back to use `getLogs`.
|
78
|
-
// The fall back exists because some RPC Providers do not support filters.
|
79
|
-
// Fetch the block number to use for `getLogs`.
|
80
|
-
const blockNumber = await getBlockNumber(client);
|
81
|
-
// If the block number has changed, we will need to fetch the logs.
|
82
|
-
// If the block number doesn't exist, we are yet to reach the first poll interval,
|
83
|
-
// so do not emit any logs.
|
84
|
-
if (previousBlockNumber && previousBlockNumber !== blockNumber) {
|
85
|
-
logs = await getLogs(client, {
|
42
|
+
export function watchContractEvent(client, { abi, address, args, batch = true, eventName, onError, onLogs, poll: poll_, pollingInterval = client.pollingInterval, strict: strict_, }) {
|
43
|
+
const enablePolling = typeof poll_ !== 'undefined' ? poll_ : client.transport.type !== 'webSocket';
|
44
|
+
const pollContractEvent = () => {
|
45
|
+
const observerId = stringify([
|
46
|
+
'watchContractEvent',
|
47
|
+
address,
|
48
|
+
args,
|
49
|
+
batch,
|
50
|
+
client.uid,
|
51
|
+
eventName,
|
52
|
+
pollingInterval,
|
53
|
+
]);
|
54
|
+
const strict = strict_ ?? false;
|
55
|
+
return observe(observerId, { onLogs, onError }, (emit) => {
|
56
|
+
let previousBlockNumber;
|
57
|
+
let filter;
|
58
|
+
let initialized = false;
|
59
|
+
const unwatch = poll(async () => {
|
60
|
+
if (!initialized) {
|
61
|
+
try {
|
62
|
+
filter = (await createContractEventFilter(client, {
|
63
|
+
abi,
|
86
64
|
address,
|
87
65
|
args,
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
66
|
+
eventName,
|
67
|
+
strict,
|
68
|
+
}));
|
69
|
+
}
|
70
|
+
catch { }
|
71
|
+
initialized = true;
|
72
|
+
return;
|
73
|
+
}
|
74
|
+
try {
|
75
|
+
let logs;
|
76
|
+
if (filter) {
|
77
|
+
logs = await getFilterChanges(client, { filter });
|
95
78
|
}
|
96
79
|
else {
|
97
|
-
|
80
|
+
// If the filter doesn't exist, we will fall back to use `getLogs`.
|
81
|
+
// The fall back exists because some RPC Providers do not support filters.
|
82
|
+
// Fetch the block number to use for `getLogs`.
|
83
|
+
const blockNumber = await getBlockNumber(client);
|
84
|
+
// If the block number has changed, we will need to fetch the logs.
|
85
|
+
// If the block number doesn't exist, we are yet to reach the first poll interval,
|
86
|
+
// so do not emit any logs.
|
87
|
+
if (previousBlockNumber && previousBlockNumber !== blockNumber) {
|
88
|
+
logs = await getLogs(client, {
|
89
|
+
address,
|
90
|
+
args,
|
91
|
+
fromBlock: previousBlockNumber + 1n,
|
92
|
+
toBlock: blockNumber,
|
93
|
+
event: getAbiItem({
|
94
|
+
abi,
|
95
|
+
name: eventName,
|
96
|
+
}),
|
97
|
+
});
|
98
|
+
}
|
99
|
+
else {
|
100
|
+
logs = [];
|
101
|
+
}
|
102
|
+
previousBlockNumber = blockNumber;
|
98
103
|
}
|
99
|
-
|
104
|
+
if (logs.length === 0)
|
105
|
+
return;
|
106
|
+
if (batch)
|
107
|
+
emit.onLogs(logs);
|
108
|
+
else
|
109
|
+
logs.forEach((log) => emit.onLogs([log]));
|
100
110
|
}
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
111
|
+
catch (err) {
|
112
|
+
// If a filter has been set and gets uninstalled, providers will throw an InvalidInput error.
|
113
|
+
// Reinitalize the filter when this occurs
|
114
|
+
if (filter && err instanceof InvalidInputRpcError)
|
115
|
+
initialized = false;
|
116
|
+
emit.onError?.(err);
|
117
|
+
}
|
118
|
+
}, {
|
119
|
+
emitOnBegin: true,
|
120
|
+
interval: pollingInterval,
|
121
|
+
});
|
122
|
+
return async () => {
|
123
|
+
if (filter)
|
124
|
+
await uninstallFilter(client, { filter });
|
125
|
+
unwatch();
|
126
|
+
};
|
127
|
+
});
|
128
|
+
};
|
129
|
+
const subscribeContractEvent = () => {
|
130
|
+
let active = true;
|
131
|
+
let unsubscribe = () => (active = false);
|
132
|
+
(async () => {
|
133
|
+
try {
|
134
|
+
const topics = eventName
|
135
|
+
? encodeEventTopics({
|
136
|
+
abi: abi,
|
137
|
+
eventName: eventName,
|
138
|
+
args,
|
139
|
+
})
|
140
|
+
: [];
|
141
|
+
const { unsubscribe: unsubscribe_ } = await client.transport.subscribe({
|
142
|
+
params: ['logs', { address, topics }],
|
143
|
+
onData(data) {
|
144
|
+
if (!active)
|
145
|
+
return;
|
146
|
+
const log = data.result;
|
147
|
+
try {
|
148
|
+
const { eventName, args } = decodeEventLog({
|
149
|
+
abi: abi,
|
150
|
+
data: log.data,
|
151
|
+
topics: log.topics,
|
152
|
+
strict: strict_,
|
153
|
+
});
|
154
|
+
const formatted = formatLog(log, {
|
155
|
+
args,
|
156
|
+
eventName: eventName,
|
157
|
+
});
|
158
|
+
onLogs([formatted]);
|
159
|
+
}
|
160
|
+
catch (err) {
|
161
|
+
let eventName;
|
162
|
+
let isUnnamed;
|
163
|
+
if (err instanceof DecodeLogDataMismatch ||
|
164
|
+
err instanceof DecodeLogTopicsMismatch) {
|
165
|
+
// If strict mode is on, and log data/topics do not match event definition, skip.
|
166
|
+
if (strict_)
|
167
|
+
return;
|
168
|
+
eventName = err.abiItem.name;
|
169
|
+
isUnnamed = err.abiItem.inputs?.some((x) => !('name' in x && x.name));
|
170
|
+
}
|
171
|
+
// Set args to empty if there is an error decoding (e.g. indexed/non-indexed params mismatch).
|
172
|
+
const formatted = formatLog(log, {
|
173
|
+
args: isUnnamed ? [] : {},
|
174
|
+
eventName,
|
175
|
+
});
|
176
|
+
onLogs([formatted]);
|
177
|
+
}
|
178
|
+
},
|
179
|
+
onError(error) {
|
180
|
+
onError?.(error);
|
181
|
+
},
|
182
|
+
});
|
183
|
+
unsubscribe = unsubscribe_;
|
184
|
+
if (!active)
|
185
|
+
unsubscribe();
|
107
186
|
}
|
108
187
|
catch (err) {
|
109
|
-
|
110
|
-
// Reinitalize the filter when this occurs
|
111
|
-
if (filter && err instanceof InvalidInputRpcError)
|
112
|
-
initialized = false;
|
113
|
-
emit.onError?.(err);
|
188
|
+
onError?.(err);
|
114
189
|
}
|
115
|
-
}
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
return async () => {
|
120
|
-
if (filter)
|
121
|
-
await uninstallFilter(client, { filter });
|
122
|
-
unwatch();
|
123
|
-
};
|
124
|
-
});
|
190
|
+
})();
|
191
|
+
return unsubscribe;
|
192
|
+
};
|
193
|
+
return enablePolling ? pollContractEvent() : subscribeContractEvent();
|
125
194
|
}
|
126
195
|
//# sourceMappingURL=watchContractEvent.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"watchContractEvent.js","sourceRoot":"","sources":["../../../../src/actions/public/watchContractEvent.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"watchContractEvent.js","sourceRoot":"","sources":["../../../../src/actions/public/watchContractEvent.ts"],"names":[],"mappings":"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"}
|
@@ -1,7 +1,9 @@
|
|
1
1
|
import { observe } from '../../utils/observe.js';
|
2
2
|
import { poll } from '../../utils/poll.js';
|
3
3
|
import { stringify } from '../../utils/stringify.js';
|
4
|
+
import { DecodeLogDataMismatch, DecodeLogTopicsMismatch, } from '../../errors/abi.js';
|
4
5
|
import { InvalidInputRpcError } from '../../errors/rpc.js';
|
6
|
+
import { decodeEventLog, encodeEventTopics, formatLog, } from '../../utils/index.js';
|
5
7
|
import { createEventFilter, } from './createEventFilter.js';
|
6
8
|
import { getBlockNumber } from './getBlockNumber.js';
|
7
9
|
import { getFilterChanges } from './getFilterChanges.js';
|
@@ -39,87 +41,161 @@ import { uninstallFilter } from './uninstallFilter.js';
|
|
39
41
|
* onLogs: (logs) => console.log(logs),
|
40
42
|
* })
|
41
43
|
*/
|
42
|
-
export function watchEvent(client, { address, args, batch = true, event, events, onError, onLogs, pollingInterval = client.pollingInterval, strict: strict_, }) {
|
43
|
-
const
|
44
|
-
'watchEvent',
|
45
|
-
address,
|
46
|
-
args,
|
47
|
-
batch,
|
48
|
-
client.uid,
|
49
|
-
event,
|
50
|
-
pollingInterval,
|
51
|
-
]);
|
44
|
+
export function watchEvent(client, { address, args, batch = true, event, events, onError, onLogs, poll: poll_, pollingInterval = client.pollingInterval, strict: strict_, }) {
|
45
|
+
const enablePolling = typeof poll_ !== 'undefined' ? poll_ : client.transport.type !== 'webSocket';
|
52
46
|
const strict = strict_ ?? false;
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
}
|
72
|
-
try {
|
73
|
-
let logs;
|
74
|
-
if (filter) {
|
75
|
-
logs = await getFilterChanges(client, { filter });
|
76
|
-
}
|
77
|
-
else {
|
78
|
-
// If the filter doesn't exist, we will fall back to use `getLogs`.
|
79
|
-
// The fall back exists because some RPC Providers do not support filters.
|
80
|
-
// Fetch the block number to use for `getLogs`.
|
81
|
-
const blockNumber = await getBlockNumber(client);
|
82
|
-
// If the block number has changed, we will need to fetch the logs.
|
83
|
-
// If the block number doesn't exist, we are yet to reach the first poll interval,
|
84
|
-
// so do not emit any logs.
|
85
|
-
if (previousBlockNumber && previousBlockNumber !== blockNumber) {
|
86
|
-
logs = await getLogs(client, {
|
47
|
+
const pollEvent = () => {
|
48
|
+
const observerId = stringify([
|
49
|
+
'watchEvent',
|
50
|
+
address,
|
51
|
+
args,
|
52
|
+
batch,
|
53
|
+
client.uid,
|
54
|
+
event,
|
55
|
+
pollingInterval,
|
56
|
+
]);
|
57
|
+
return observe(observerId, { onLogs, onError }, (emit) => {
|
58
|
+
let previousBlockNumber;
|
59
|
+
let filter;
|
60
|
+
let initialized = false;
|
61
|
+
const unwatch = poll(async () => {
|
62
|
+
if (!initialized) {
|
63
|
+
try {
|
64
|
+
filter = (await createEventFilter(client, {
|
87
65
|
address,
|
88
66
|
args,
|
89
67
|
event: event,
|
90
68
|
events,
|
91
|
-
|
92
|
-
|
93
|
-
|
69
|
+
strict,
|
70
|
+
}));
|
71
|
+
}
|
72
|
+
catch { }
|
73
|
+
initialized = true;
|
74
|
+
return;
|
75
|
+
}
|
76
|
+
try {
|
77
|
+
let logs;
|
78
|
+
if (filter) {
|
79
|
+
logs = await getFilterChanges(client, { filter });
|
94
80
|
}
|
95
81
|
else {
|
96
|
-
|
82
|
+
// If the filter doesn't exist, we will fall back to use `getLogs`.
|
83
|
+
// The fall back exists because some RPC Providers do not support filters.
|
84
|
+
// Fetch the block number to use for `getLogs`.
|
85
|
+
const blockNumber = await getBlockNumber(client);
|
86
|
+
// If the block number has changed, we will need to fetch the logs.
|
87
|
+
// If the block number doesn't exist, we are yet to reach the first poll interval,
|
88
|
+
// so do not emit any logs.
|
89
|
+
if (previousBlockNumber && previousBlockNumber !== blockNumber) {
|
90
|
+
logs = await getLogs(client, {
|
91
|
+
address,
|
92
|
+
args,
|
93
|
+
event: event,
|
94
|
+
events,
|
95
|
+
fromBlock: previousBlockNumber + 1n,
|
96
|
+
toBlock: blockNumber,
|
97
|
+
});
|
98
|
+
}
|
99
|
+
else {
|
100
|
+
logs = [];
|
101
|
+
}
|
102
|
+
previousBlockNumber = blockNumber;
|
97
103
|
}
|
98
|
-
|
104
|
+
if (logs.length === 0)
|
105
|
+
return;
|
106
|
+
if (batch)
|
107
|
+
emit.onLogs(logs);
|
108
|
+
else
|
109
|
+
logs.forEach((log) => emit.onLogs([log]));
|
99
110
|
}
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
111
|
+
catch (err) {
|
112
|
+
// If a filter has been set and gets uninstalled, providers will throw an InvalidInput error.
|
113
|
+
// Reinitalize the filter when this occurs
|
114
|
+
if (filter && err instanceof InvalidInputRpcError)
|
115
|
+
initialized = false;
|
116
|
+
emit.onError?.(err);
|
117
|
+
}
|
118
|
+
}, {
|
119
|
+
emitOnBegin: true,
|
120
|
+
interval: pollingInterval,
|
121
|
+
});
|
122
|
+
return async () => {
|
123
|
+
if (filter)
|
124
|
+
await uninstallFilter(client, { filter });
|
125
|
+
unwatch();
|
126
|
+
};
|
127
|
+
});
|
128
|
+
};
|
129
|
+
const subscribeEvent = () => {
|
130
|
+
let active = true;
|
131
|
+
let unsubscribe = () => (active = false);
|
132
|
+
(async () => {
|
133
|
+
try {
|
134
|
+
const events_ = events ?? (event ? [event] : undefined);
|
135
|
+
let topics = [];
|
136
|
+
if (events_) {
|
137
|
+
topics = [
|
138
|
+
events_.flatMap((event) => encodeEventTopics({
|
139
|
+
abi: [event],
|
140
|
+
eventName: event.name,
|
141
|
+
args,
|
142
|
+
})),
|
143
|
+
];
|
144
|
+
if (event)
|
145
|
+
topics = topics[0];
|
146
|
+
}
|
147
|
+
const { unsubscribe: unsubscribe_ } = await client.transport.subscribe({
|
148
|
+
params: ['logs', { address, topics }],
|
149
|
+
onData(data) {
|
150
|
+
if (!active)
|
151
|
+
return;
|
152
|
+
const log = data.result;
|
153
|
+
try {
|
154
|
+
const { eventName, args } = decodeEventLog({
|
155
|
+
abi: events_,
|
156
|
+
data: log.data,
|
157
|
+
topics: log.topics,
|
158
|
+
strict,
|
159
|
+
});
|
160
|
+
const formatted = formatLog(log, {
|
161
|
+
args,
|
162
|
+
eventName: eventName,
|
163
|
+
});
|
164
|
+
onLogs([formatted]);
|
165
|
+
}
|
166
|
+
catch (err) {
|
167
|
+
let eventName;
|
168
|
+
let isUnnamed;
|
169
|
+
if (err instanceof DecodeLogDataMismatch ||
|
170
|
+
err instanceof DecodeLogTopicsMismatch) {
|
171
|
+
// If strict mode is on, and log data/topics do not match event definition, skip.
|
172
|
+
if (strict_)
|
173
|
+
return;
|
174
|
+
eventName = err.abiItem.name;
|
175
|
+
isUnnamed = err.abiItem.inputs?.some((x) => !('name' in x && x.name));
|
176
|
+
}
|
177
|
+
// Set args to empty if there is an error decoding (e.g. indexed/non-indexed params mismatch).
|
178
|
+
const formatted = formatLog(log, {
|
179
|
+
args: isUnnamed ? [] : {},
|
180
|
+
eventName,
|
181
|
+
});
|
182
|
+
onLogs([formatted]);
|
183
|
+
}
|
184
|
+
},
|
185
|
+
onError(error) {
|
186
|
+
onError?.(error);
|
187
|
+
},
|
188
|
+
});
|
189
|
+
unsubscribe = unsubscribe_;
|
190
|
+
if (!active)
|
191
|
+
unsubscribe();
|
106
192
|
}
|
107
193
|
catch (err) {
|
108
|
-
|
109
|
-
// Reinitalize the filter when this occurs
|
110
|
-
if (filter && err instanceof InvalidInputRpcError)
|
111
|
-
initialized = false;
|
112
|
-
emit.onError?.(err);
|
194
|
+
onError?.(err);
|
113
195
|
}
|
114
|
-
}
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
return async () => {
|
119
|
-
if (filter)
|
120
|
-
await uninstallFilter(client, { filter });
|
121
|
-
unwatch();
|
122
|
-
};
|
123
|
-
});
|
196
|
+
})();
|
197
|
+
return unsubscribe;
|
198
|
+
};
|
199
|
+
return enablePolling ? pollEvent() : subscribeEvent();
|
124
200
|
}
|
125
201
|
//# sourceMappingURL=watchEvent.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"watchEvent.js","sourceRoot":"","sources":["../../../../src/actions/public/watchEvent.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"watchEvent.js","sourceRoot":"","sources":["../../../../src/actions/public/watchEvent.ts"],"names":[],"mappings":"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"}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
export const version = '0.0.0-main.
|
1
|
+
export const version = '0.0.0-main.20230810T045918';
|
2
2
|
//# sourceMappingURL=version.js.map
|
@@ -4,6 +4,19 @@ import type { Transport } from '../../clients/transports/createTransport.js';
|
|
4
4
|
import type { Chain } from '../../types/chain.js';
|
5
5
|
import type { GetEventArgs, InferEventName } from '../../types/contract.js';
|
6
6
|
import type { Log } from '../../types/log.js';
|
7
|
+
import type { GetTransportConfig } from '../../types/transport.js';
|
8
|
+
type PollOptions = {
|
9
|
+
/**
|
10
|
+
* Whether or not the transaction hashes should be batched on each invocation.
|
11
|
+
* @default true
|
12
|
+
*/
|
13
|
+
batch?: boolean;
|
14
|
+
/**
|
15
|
+
* Polling frequency (in ms). Defaults to Client's pollingInterval config.
|
16
|
+
* @default client.pollingInterval
|
17
|
+
*/
|
18
|
+
pollingInterval?: number;
|
19
|
+
};
|
7
20
|
export type WatchContractEventOnLogsParameter<TAbi extends Abi | readonly unknown[] = readonly unknown[], TEventName extends string = string, TStrict extends boolean | undefined = undefined> = TAbi extends Abi ? Log<bigint, number, false, ExtractAbiEvent<TAbi, TEventName>, TStrict>[] : Log[];
|
8
21
|
export type WatchContractEventOnLogsFn<TAbi extends Abi | readonly unknown[] = readonly unknown[], TEventName extends string = string, TStrict extends boolean | undefined = undefined> = (logs: WatchContractEventOnLogsParameter<TAbi, TEventName, TStrict>) => void;
|
9
22
|
export type WatchContractEventParameters<TAbi extends Abi | readonly unknown[] = readonly unknown[], TEventName extends string = string, TStrict extends boolean | undefined = undefined> = {
|
@@ -12,22 +25,34 @@ export type WatchContractEventParameters<TAbi extends Abi | readonly unknown[] =
|
|
12
25
|
/** Contract ABI. */
|
13
26
|
abi: Narrow<TAbi>;
|
14
27
|
args?: GetEventArgs<TAbi, TEventName>;
|
15
|
-
/** Whether or not the event logs should be batched on each invocation. */
|
16
|
-
batch?: boolean;
|
17
28
|
/** Contract event. */
|
18
29
|
eventName?: InferEventName<TAbi, TEventName>;
|
19
30
|
/** The callback to call when an error occurred when trying to get for a new block. */
|
20
31
|
onError?: (error: Error) => void;
|
21
32
|
/** The callback to call when new event logs are received. */
|
22
33
|
onLogs: WatchContractEventOnLogsFn<TAbi, TEventName, TStrict>;
|
23
|
-
/** Polling frequency (in ms). Defaults to Client's pollingInterval config. */
|
24
|
-
pollingInterval?: number;
|
25
34
|
/**
|
26
35
|
* Whether or not the logs must match the indexed/non-indexed arguments on `event`.
|
27
36
|
* @default false
|
28
37
|
*/
|
29
38
|
strict?: TStrict;
|
30
|
-
}
|
39
|
+
} & (GetTransportConfig<Transport>['type'] extends 'webSocket' ? {
|
40
|
+
batch?: never;
|
41
|
+
/**
|
42
|
+
* Whether or not the WebSocket Transport should poll the JSON-RPC, rather than using `eth_subscribe`.
|
43
|
+
* @default false
|
44
|
+
*/
|
45
|
+
poll?: false;
|
46
|
+
pollingInterval?: never;
|
47
|
+
} | (PollOptions & {
|
48
|
+
/**
|
49
|
+
* Whether or not the WebSocket Transport should poll the JSON-RPC, rather than using `eth_subscribe`.
|
50
|
+
* @default true
|
51
|
+
*/
|
52
|
+
poll?: true;
|
53
|
+
}) : PollOptions & {
|
54
|
+
poll?: true;
|
55
|
+
});
|
31
56
|
export type WatchContractEventReturnType = () => void;
|
32
57
|
/**
|
33
58
|
* Watches and returns emitted contract event logs.
|
@@ -59,5 +84,6 @@ export type WatchContractEventReturnType = () => void;
|
|
59
84
|
* onLogs: (logs) => console.log(logs),
|
60
85
|
* })
|
61
86
|
*/
|
62
|
-
export declare function watchContractEvent<TChain extends Chain | undefined, TAbi extends Abi | readonly unknown[], TEventName extends string, TStrict extends boolean | undefined = undefined>(client: Client<Transport, TChain>, { abi, address, args, batch, eventName, onError, onLogs, pollingInterval, strict: strict_, }: WatchContractEventParameters<TAbi, TEventName, TStrict>): WatchContractEventReturnType;
|
87
|
+
export declare function watchContractEvent<TChain extends Chain | undefined, TAbi extends Abi | readonly unknown[], TEventName extends string, TStrict extends boolean | undefined = undefined>(client: Client<Transport, TChain>, { abi, address, args, batch, eventName, onError, onLogs, poll: poll_, pollingInterval, strict: strict_, }: WatchContractEventParameters<TAbi, TEventName, TStrict>): WatchContractEventReturnType;
|
88
|
+
export {};
|
63
89
|
//# sourceMappingURL=watchContractEvent.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"watchContractEvent.d.ts","sourceRoot":"","sources":["../../../../src/actions/public/watchContractEvent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAY,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAE9E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAA;
|
1
|
+
{"version":3,"file":"watchContractEvent.d.ts","sourceRoot":"","sources":["../../../../src/actions/public/watchContractEvent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAY,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAE9E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAA;AAE5E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAE3E,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AA2BlE,KAAK,WAAW,GAAG;IACjB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IACf;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,iCAAiC,CAC3C,IAAI,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,GAAG,SAAS,OAAO,EAAE,EAC1D,UAAU,SAAS,MAAM,GAAG,MAAM,EAClC,OAAO,SAAS,OAAO,GAAG,SAAS,GAAG,SAAS,IAC7C,IAAI,SAAS,GAAG,GAChB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,EAAE,GACxE,GAAG,EAAE,CAAA;AACT,MAAM,MAAM,0BAA0B,CACpC,IAAI,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,GAAG,SAAS,OAAO,EAAE,EAC1D,UAAU,SAAS,MAAM,GAAG,MAAM,EAClC,OAAO,SAAS,OAAO,GAAG,SAAS,GAAG,SAAS,IAC7C,CAAC,IAAI,EAAE,iCAAiC,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;AAEhF,MAAM,MAAM,4BAA4B,CACtC,IAAI,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,GAAG,SAAS,OAAO,EAAE,EAC1D,UAAU,SAAS,MAAM,GAAG,MAAM,EAClC,OAAO,SAAS,OAAO,GAAG,SAAS,GAAG,SAAS,IAC7C;IACF,mCAAmC;IACnC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,EAAE,CAAA;IAC7B,oBAAoB;IACpB,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;IACjB,IAAI,CAAC,EAAE,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IACrC,sBAAsB;IACtB,SAAS,CAAC,EAAE,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IAC5C,sFAAsF;IACtF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAChC,6DAA6D;IAC7D,MAAM,EAAE,0BAA0B,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IAC7D;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,GAAG,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,SAAS,WAAW,GAEtD;IACE,KAAK,CAAC,EAAE,KAAK,CAAA;IACb;;;OAGG;IACH,IAAI,CAAC,EAAE,KAAK,CAAA;IACZ,eAAe,CAAC,EAAE,KAAK,CAAA;CACxB,GACD,CAAC,WAAW,GAAG;IACb;;;OAGG;IACH,IAAI,CAAC,EAAE,IAAI,CAAA;CACZ,CAAC,GACN,WAAW,GAAG;IACZ,IAAI,CAAC,EAAE,IAAI,CAAA;CACZ,CAAC,CAAA;AAEN,MAAM,MAAM,4BAA4B,GAAG,MAAM,IAAI,CAAA;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,SAAS,KAAK,GAAG,SAAS,EAChC,IAAI,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,EACrC,UAAU,SAAS,MAAM,EACzB,OAAO,SAAS,OAAO,GAAG,SAAS,GAAG,SAAS,EAE/C,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,EACjC,EACE,GAAG,EACH,OAAO,EACP,IAAI,EACJ,KAAY,EACZ,SAAS,EACT,OAAO,EACP,MAAM,EACN,IAAI,EAAE,KAAK,EACX,eAAwC,EACxC,MAAM,EAAE,OAAO,GAChB,EAAE,4BAA4B,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,GACzD,4BAA4B,CAmK9B"}
|