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
@@ -5,88 +5,155 @@ const getAbiItem_js_1 = require("../../utils/abi/getAbiItem.js");
|
|
5
5
|
const observe_js_1 = require("../../utils/observe.js");
|
6
6
|
const poll_js_1 = require("../../utils/poll.js");
|
7
7
|
const stringify_js_1 = require("../../utils/stringify.js");
|
8
|
+
const abi_js_1 = require("../../errors/abi.js");
|
8
9
|
const index_js_1 = require("../../index.js");
|
9
10
|
const createContractEventFilter_js_1 = require("./createContractEventFilter.js");
|
10
11
|
const getBlockNumber_js_1 = require("./getBlockNumber.js");
|
11
12
|
const getFilterChanges_js_1 = require("./getFilterChanges.js");
|
12
13
|
const getLogs_js_1 = require("./getLogs.js");
|
13
14
|
const uninstallFilter_js_1 = require("./uninstallFilter.js");
|
14
|
-
function watchContractEvent(client, { abi, address, args, batch = true, eventName, onError, onLogs, pollingInterval = client.pollingInterval, strict: strict_, }) {
|
15
|
-
const
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
eventName,
|
37
|
-
strict,
|
38
|
-
}));
|
39
|
-
}
|
40
|
-
catch { }
|
41
|
-
initialized = true;
|
42
|
-
return;
|
43
|
-
}
|
44
|
-
try {
|
45
|
-
let logs;
|
46
|
-
if (filter) {
|
47
|
-
logs = await (0, getFilterChanges_js_1.getFilterChanges)(client, { filter });
|
48
|
-
}
|
49
|
-
else {
|
50
|
-
const blockNumber = await (0, getBlockNumber_js_1.getBlockNumber)(client);
|
51
|
-
if (previousBlockNumber && previousBlockNumber !== blockNumber) {
|
52
|
-
logs = await (0, getLogs_js_1.getLogs)(client, {
|
15
|
+
function watchContractEvent(client, { abi, address, args, batch = true, eventName, onError, onLogs, poll: poll_, pollingInterval = client.pollingInterval, strict: strict_, }) {
|
16
|
+
const enablePolling = typeof poll_ !== 'undefined' ? poll_ : client.transport.type !== 'webSocket';
|
17
|
+
const pollContractEvent = () => {
|
18
|
+
const observerId = (0, stringify_js_1.stringify)([
|
19
|
+
'watchContractEvent',
|
20
|
+
address,
|
21
|
+
args,
|
22
|
+
batch,
|
23
|
+
client.uid,
|
24
|
+
eventName,
|
25
|
+
pollingInterval,
|
26
|
+
]);
|
27
|
+
const strict = strict_ ?? false;
|
28
|
+
return (0, observe_js_1.observe)(observerId, { onLogs, onError }, (emit) => {
|
29
|
+
let previousBlockNumber;
|
30
|
+
let filter;
|
31
|
+
let initialized = false;
|
32
|
+
const unwatch = (0, poll_js_1.poll)(async () => {
|
33
|
+
if (!initialized) {
|
34
|
+
try {
|
35
|
+
filter = (await (0, createContractEventFilter_js_1.createContractEventFilter)(client, {
|
36
|
+
abi,
|
53
37
|
address,
|
54
38
|
args,
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
39
|
+
eventName,
|
40
|
+
strict,
|
41
|
+
}));
|
42
|
+
}
|
43
|
+
catch { }
|
44
|
+
initialized = true;
|
45
|
+
return;
|
46
|
+
}
|
47
|
+
try {
|
48
|
+
let logs;
|
49
|
+
if (filter) {
|
50
|
+
logs = await (0, getFilterChanges_js_1.getFilterChanges)(client, { filter });
|
62
51
|
}
|
63
52
|
else {
|
64
|
-
|
53
|
+
const blockNumber = await (0, getBlockNumber_js_1.getBlockNumber)(client);
|
54
|
+
if (previousBlockNumber && previousBlockNumber !== blockNumber) {
|
55
|
+
logs = await (0, getLogs_js_1.getLogs)(client, {
|
56
|
+
address,
|
57
|
+
args,
|
58
|
+
fromBlock: previousBlockNumber + 1n,
|
59
|
+
toBlock: blockNumber,
|
60
|
+
event: (0, getAbiItem_js_1.getAbiItem)({
|
61
|
+
abi,
|
62
|
+
name: eventName,
|
63
|
+
}),
|
64
|
+
});
|
65
|
+
}
|
66
|
+
else {
|
67
|
+
logs = [];
|
68
|
+
}
|
69
|
+
previousBlockNumber = blockNumber;
|
65
70
|
}
|
66
|
-
|
71
|
+
if (logs.length === 0)
|
72
|
+
return;
|
73
|
+
if (batch)
|
74
|
+
emit.onLogs(logs);
|
75
|
+
else
|
76
|
+
logs.forEach((log) => emit.onLogs([log]));
|
67
77
|
}
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
emit.
|
72
|
-
|
73
|
-
|
78
|
+
catch (err) {
|
79
|
+
if (filter && err instanceof index_js_1.InvalidInputRpcError)
|
80
|
+
initialized = false;
|
81
|
+
emit.onError?.(err);
|
82
|
+
}
|
83
|
+
}, {
|
84
|
+
emitOnBegin: true,
|
85
|
+
interval: pollingInterval,
|
86
|
+
});
|
87
|
+
return async () => {
|
88
|
+
if (filter)
|
89
|
+
await (0, uninstallFilter_js_1.uninstallFilter)(client, { filter });
|
90
|
+
unwatch();
|
91
|
+
};
|
92
|
+
});
|
93
|
+
};
|
94
|
+
const subscribeContractEvent = () => {
|
95
|
+
let active = true;
|
96
|
+
let unsubscribe = () => (active = false);
|
97
|
+
(async () => {
|
98
|
+
try {
|
99
|
+
const topics = eventName
|
100
|
+
? (0, index_js_1.encodeEventTopics)({
|
101
|
+
abi: abi,
|
102
|
+
eventName: eventName,
|
103
|
+
args,
|
104
|
+
})
|
105
|
+
: [];
|
106
|
+
const { unsubscribe: unsubscribe_ } = await client.transport.subscribe({
|
107
|
+
params: ['logs', { address, topics }],
|
108
|
+
onData(data) {
|
109
|
+
if (!active)
|
110
|
+
return;
|
111
|
+
const log = data.result;
|
112
|
+
try {
|
113
|
+
const { eventName, args } = (0, index_js_1.decodeEventLog)({
|
114
|
+
abi: abi,
|
115
|
+
data: log.data,
|
116
|
+
topics: log.topics,
|
117
|
+
strict: strict_,
|
118
|
+
});
|
119
|
+
const formatted = (0, index_js_1.formatLog)(log, {
|
120
|
+
args,
|
121
|
+
eventName: eventName,
|
122
|
+
});
|
123
|
+
onLogs([formatted]);
|
124
|
+
}
|
125
|
+
catch (err) {
|
126
|
+
let eventName;
|
127
|
+
let isUnnamed;
|
128
|
+
if (err instanceof abi_js_1.DecodeLogDataMismatch ||
|
129
|
+
err instanceof index_js_1.DecodeLogTopicsMismatch) {
|
130
|
+
if (strict_)
|
131
|
+
return;
|
132
|
+
eventName = err.abiItem.name;
|
133
|
+
isUnnamed = err.abiItem.inputs?.some((x) => !('name' in x && x.name));
|
134
|
+
}
|
135
|
+
const formatted = (0, index_js_1.formatLog)(log, {
|
136
|
+
args: isUnnamed ? [] : {},
|
137
|
+
eventName,
|
138
|
+
});
|
139
|
+
onLogs([formatted]);
|
140
|
+
}
|
141
|
+
},
|
142
|
+
onError(error) {
|
143
|
+
onError?.(error);
|
144
|
+
},
|
145
|
+
});
|
146
|
+
unsubscribe = unsubscribe_;
|
147
|
+
if (!active)
|
148
|
+
unsubscribe();
|
74
149
|
}
|
75
150
|
catch (err) {
|
76
|
-
|
77
|
-
initialized = false;
|
78
|
-
emit.onError?.(err);
|
151
|
+
onError?.(err);
|
79
152
|
}
|
80
|
-
}
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
return async () => {
|
85
|
-
if (filter)
|
86
|
-
await (0, uninstallFilter_js_1.uninstallFilter)(client, { filter });
|
87
|
-
unwatch();
|
88
|
-
};
|
89
|
-
});
|
153
|
+
})();
|
154
|
+
return unsubscribe;
|
155
|
+
};
|
156
|
+
return enablePolling ? pollContractEvent() : subscribeContractEvent();
|
90
157
|
}
|
91
158
|
exports.watchContractEvent = watchContractEvent;
|
92
159
|
//# 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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"}
|
@@ -4,86 +4,160 @@ exports.watchEvent = void 0;
|
|
4
4
|
const observe_js_1 = require("../../utils/observe.js");
|
5
5
|
const poll_js_1 = require("../../utils/poll.js");
|
6
6
|
const stringify_js_1 = require("../../utils/stringify.js");
|
7
|
+
const abi_js_1 = require("../../errors/abi.js");
|
7
8
|
const rpc_js_1 = require("../../errors/rpc.js");
|
9
|
+
const index_js_1 = require("../../utils/index.js");
|
8
10
|
const createEventFilter_js_1 = require("./createEventFilter.js");
|
9
11
|
const getBlockNumber_js_1 = require("./getBlockNumber.js");
|
10
12
|
const getFilterChanges_js_1 = require("./getFilterChanges.js");
|
11
13
|
const getLogs_js_1 = require("./getLogs.js");
|
12
14
|
const uninstallFilter_js_1 = require("./uninstallFilter.js");
|
13
|
-
function watchEvent(client, { address, args, batch = true, event, events, onError, onLogs, pollingInterval = client.pollingInterval, strict: strict_, }) {
|
14
|
-
const
|
15
|
-
'watchEvent',
|
16
|
-
address,
|
17
|
-
args,
|
18
|
-
batch,
|
19
|
-
client.uid,
|
20
|
-
event,
|
21
|
-
pollingInterval,
|
22
|
-
]);
|
15
|
+
function watchEvent(client, { address, args, batch = true, event, events, onError, onLogs, poll: poll_, pollingInterval = client.pollingInterval, strict: strict_, }) {
|
16
|
+
const enablePolling = typeof poll_ !== 'undefined' ? poll_ : client.transport.type !== 'webSocket';
|
23
17
|
const strict = strict_ ?? false;
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
}
|
43
|
-
try {
|
44
|
-
let logs;
|
45
|
-
if (filter) {
|
46
|
-
logs = await (0, getFilterChanges_js_1.getFilterChanges)(client, { filter });
|
47
|
-
}
|
48
|
-
else {
|
49
|
-
const blockNumber = await (0, getBlockNumber_js_1.getBlockNumber)(client);
|
50
|
-
if (previousBlockNumber && previousBlockNumber !== blockNumber) {
|
51
|
-
logs = await (0, getLogs_js_1.getLogs)(client, {
|
18
|
+
const pollEvent = () => {
|
19
|
+
const observerId = (0, stringify_js_1.stringify)([
|
20
|
+
'watchEvent',
|
21
|
+
address,
|
22
|
+
args,
|
23
|
+
batch,
|
24
|
+
client.uid,
|
25
|
+
event,
|
26
|
+
pollingInterval,
|
27
|
+
]);
|
28
|
+
return (0, observe_js_1.observe)(observerId, { onLogs, onError }, (emit) => {
|
29
|
+
let previousBlockNumber;
|
30
|
+
let filter;
|
31
|
+
let initialized = false;
|
32
|
+
const unwatch = (0, poll_js_1.poll)(async () => {
|
33
|
+
if (!initialized) {
|
34
|
+
try {
|
35
|
+
filter = (await (0, createEventFilter_js_1.createEventFilter)(client, {
|
52
36
|
address,
|
53
37
|
args,
|
54
38
|
event: event,
|
55
39
|
events,
|
56
|
-
|
57
|
-
|
58
|
-
|
40
|
+
strict,
|
41
|
+
}));
|
42
|
+
}
|
43
|
+
catch { }
|
44
|
+
initialized = true;
|
45
|
+
return;
|
46
|
+
}
|
47
|
+
try {
|
48
|
+
let logs;
|
49
|
+
if (filter) {
|
50
|
+
logs = await (0, getFilterChanges_js_1.getFilterChanges)(client, { filter });
|
59
51
|
}
|
60
52
|
else {
|
61
|
-
|
53
|
+
const blockNumber = await (0, getBlockNumber_js_1.getBlockNumber)(client);
|
54
|
+
if (previousBlockNumber && previousBlockNumber !== blockNumber) {
|
55
|
+
logs = await (0, getLogs_js_1.getLogs)(client, {
|
56
|
+
address,
|
57
|
+
args,
|
58
|
+
event: event,
|
59
|
+
events,
|
60
|
+
fromBlock: previousBlockNumber + 1n,
|
61
|
+
toBlock: blockNumber,
|
62
|
+
});
|
63
|
+
}
|
64
|
+
else {
|
65
|
+
logs = [];
|
66
|
+
}
|
67
|
+
previousBlockNumber = blockNumber;
|
62
68
|
}
|
63
|
-
|
69
|
+
if (logs.length === 0)
|
70
|
+
return;
|
71
|
+
if (batch)
|
72
|
+
emit.onLogs(logs);
|
73
|
+
else
|
74
|
+
logs.forEach((log) => emit.onLogs([log]));
|
64
75
|
}
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
emit.
|
69
|
-
|
70
|
-
|
76
|
+
catch (err) {
|
77
|
+
if (filter && err instanceof rpc_js_1.InvalidInputRpcError)
|
78
|
+
initialized = false;
|
79
|
+
emit.onError?.(err);
|
80
|
+
}
|
81
|
+
}, {
|
82
|
+
emitOnBegin: true,
|
83
|
+
interval: pollingInterval,
|
84
|
+
});
|
85
|
+
return async () => {
|
86
|
+
if (filter)
|
87
|
+
await (0, uninstallFilter_js_1.uninstallFilter)(client, { filter });
|
88
|
+
unwatch();
|
89
|
+
};
|
90
|
+
});
|
91
|
+
};
|
92
|
+
const subscribeEvent = () => {
|
93
|
+
let active = true;
|
94
|
+
let unsubscribe = () => (active = false);
|
95
|
+
(async () => {
|
96
|
+
try {
|
97
|
+
const events_ = events ?? (event ? [event] : undefined);
|
98
|
+
let topics = [];
|
99
|
+
if (events_) {
|
100
|
+
topics = [
|
101
|
+
events_.flatMap((event) => (0, index_js_1.encodeEventTopics)({
|
102
|
+
abi: [event],
|
103
|
+
eventName: event.name,
|
104
|
+
args,
|
105
|
+
})),
|
106
|
+
];
|
107
|
+
if (event)
|
108
|
+
topics = topics[0];
|
109
|
+
}
|
110
|
+
const { unsubscribe: unsubscribe_ } = await client.transport.subscribe({
|
111
|
+
params: ['logs', { address, topics }],
|
112
|
+
onData(data) {
|
113
|
+
if (!active)
|
114
|
+
return;
|
115
|
+
const log = data.result;
|
116
|
+
try {
|
117
|
+
const { eventName, args } = (0, index_js_1.decodeEventLog)({
|
118
|
+
abi: events_,
|
119
|
+
data: log.data,
|
120
|
+
topics: log.topics,
|
121
|
+
strict,
|
122
|
+
});
|
123
|
+
const formatted = (0, index_js_1.formatLog)(log, {
|
124
|
+
args,
|
125
|
+
eventName: eventName,
|
126
|
+
});
|
127
|
+
onLogs([formatted]);
|
128
|
+
}
|
129
|
+
catch (err) {
|
130
|
+
let eventName;
|
131
|
+
let isUnnamed;
|
132
|
+
if (err instanceof abi_js_1.DecodeLogDataMismatch ||
|
133
|
+
err instanceof abi_js_1.DecodeLogTopicsMismatch) {
|
134
|
+
if (strict_)
|
135
|
+
return;
|
136
|
+
eventName = err.abiItem.name;
|
137
|
+
isUnnamed = err.abiItem.inputs?.some((x) => !('name' in x && x.name));
|
138
|
+
}
|
139
|
+
const formatted = (0, index_js_1.formatLog)(log, {
|
140
|
+
args: isUnnamed ? [] : {},
|
141
|
+
eventName,
|
142
|
+
});
|
143
|
+
onLogs([formatted]);
|
144
|
+
}
|
145
|
+
},
|
146
|
+
onError(error) {
|
147
|
+
onError?.(error);
|
148
|
+
},
|
149
|
+
});
|
150
|
+
unsubscribe = unsubscribe_;
|
151
|
+
if (!active)
|
152
|
+
unsubscribe();
|
71
153
|
}
|
72
154
|
catch (err) {
|
73
|
-
|
74
|
-
initialized = false;
|
75
|
-
emit.onError?.(err);
|
155
|
+
onError?.(err);
|
76
156
|
}
|
77
|
-
}
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
return async () => {
|
82
|
-
if (filter)
|
83
|
-
await (0, uninstallFilter_js_1.uninstallFilter)(client, { filter });
|
84
|
-
unwatch();
|
85
|
-
};
|
86
|
-
});
|
157
|
+
})();
|
158
|
+
return unsubscribe;
|
159
|
+
};
|
160
|
+
return enablePolling ? pollEvent() : subscribeEvent();
|
87
161
|
}
|
88
162
|
exports.watchEvent = watchEvent;
|
89
163
|
//# 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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"}
|