tapimo 0.8.0 → 0.10.0
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/App.d.ts +7410 -7613
- package/dist/App.d.ts.map +1 -1
- package/dist/App.js +0 -1
- package/dist/App.js.map +1 -1
- package/dist/Webhooks.d.ts +21 -20
- package/dist/Webhooks.d.ts.map +1 -1
- package/dist/Webhooks.js +66 -23
- package/dist/Webhooks.js.map +1 -1
- package/dist/admin/apps/verified-tokens.d.ts +74 -74
- package/dist/apps/Zones.d.ts +34 -22
- package/dist/apps/Zones.d.ts.map +1 -1
- package/dist/apps/Zones.js +9 -8
- package/dist/apps/Zones.js.map +1 -1
- package/dist/apps/data/App.d.ts +3120 -2782
- package/dist/apps/data/App.d.ts.map +1 -1
- package/dist/apps/data/FxOracle.d.ts +4 -5
- package/dist/apps/data/FxOracle.d.ts.map +1 -1
- package/dist/apps/data/FxOracle.js +19 -4
- package/dist/apps/data/FxOracle.js.map +1 -1
- package/dist/apps/data/routes/activities.d.ts.map +1 -1
- package/dist/apps/data/routes/activities.js +32 -27
- package/dist/apps/data/routes/activities.js.map +1 -1
- package/dist/apps/data/routes/addresses.d.ts +283 -52
- package/dist/apps/data/routes/addresses.d.ts.map +1 -1
- package/dist/apps/data/routes/balances.d.ts +291 -21
- package/dist/apps/data/routes/balances.d.ts.map +1 -1
- package/dist/apps/data/routes/balances.js +232 -66
- package/dist/apps/data/routes/balances.js.map +1 -1
- package/dist/apps/data/routes/blocks.d.ts +4 -4
- package/dist/apps/data/routes/coingecko.d.ts +54 -54
- package/dist/apps/data/routes/earn.d.ts +642 -126
- package/dist/apps/data/routes/earn.d.ts.map +1 -1
- package/dist/apps/data/routes/earn.js +627 -58
- package/dist/apps/data/routes/earn.js.map +1 -1
- package/dist/apps/data/routes/exchanges.d.ts +120 -120
- package/dist/apps/data/routes/exchanges.d.ts.map +1 -1
- package/dist/apps/data/routes/exchanges.js +114 -118
- package/dist/apps/data/routes/exchanges.js.map +1 -1
- package/dist/apps/data/routes/receipts.d.ts.map +1 -1
- package/dist/apps/data/routes/receipts.js +68 -47
- package/dist/apps/data/routes/receipts.js.map +1 -1
- package/dist/apps/data/routes/tokens.d.ts +2 -0
- package/dist/apps/data/routes/tokens.d.ts.map +1 -1
- package/dist/apps/data/routes/transactions.d.ts +59 -51
- package/dist/apps/data/routes/transactions.d.ts.map +1 -1
- package/dist/apps/data/routes/transactions.js +25 -23
- package/dist/apps/data/routes/transactions.js.map +1 -1
- package/dist/apps/data/routes/transfers.d.ts +40 -18
- package/dist/apps/data/routes/transfers.d.ts.map +1 -1
- package/dist/apps/data/routes/transfers.js +618 -105
- package/dist/apps/data/routes/transfers.js.map +1 -1
- package/dist/apps/data/routes/valuation.d.ts +21 -21
- package/dist/apps/data/routes/valuation.d.ts.map +1 -1
- package/dist/apps/data/routes/valuation.js +2 -2
- package/dist/apps/data/routes/valuation.js.map +1 -1
- package/dist/apps/data/routes/verified-tokens.d.ts +37 -37
- package/dist/apps/data/routes/webhooks.d.ts +102 -505
- package/dist/apps/data/routes/webhooks.d.ts.map +1 -1
- package/dist/apps/data/routes/webhooks.js +484 -342
- package/dist/apps/data/routes/webhooks.js.map +1 -1
- package/dist/apps/data/routes/zones.d.ts +12 -12
- package/dist/apps/data/routes/zones.d.ts.map +1 -1
- package/dist/apps/data/routes/zones.js +3 -1
- package/dist/apps/data/routes/zones.js.map +1 -1
- package/dist/apps/funding/App.d.ts +127 -386
- package/dist/apps/funding/App.d.ts.map +1 -1
- package/dist/apps/funding/App.js +20 -5
- package/dist/apps/funding/App.js.map +1 -1
- package/dist/apps/funding/routes/deposit-addresses.d.ts +141 -532
- package/dist/apps/funding/routes/deposit-addresses.d.ts.map +1 -1
- package/dist/apps/funding/routes/deposit-addresses.js +21 -103
- package/dist/apps/funding/routes/deposit-addresses.js.map +1 -1
- package/dist/apps/funding/routes/transfers.d.ts +4 -4
- package/dist/apps/funding/routes/transfers.js +5 -5
- package/dist/apps/funding/routes/transfers.js.map +1 -1
- package/dist/apps/management/App.d.ts +429 -727
- package/dist/apps/management/App.d.ts.map +1 -1
- package/dist/apps/management/routes/api-keys.d.ts +24 -24
- package/dist/apps/management/routes/billing.d.ts +72 -72
- package/dist/apps/management/routes/faucet.d.ts +6 -6
- package/dist/apps/management/routes/invite-links.d.ts +38 -38
- package/dist/apps/management/routes/me.d.ts +6 -6
- package/dist/apps/management/routes/members.d.ts +30 -30
- package/dist/apps/management/routes/projects.d.ts +20 -20
- package/dist/apps/management/routes/usage.d.ts +24 -24
- package/dist/apps/management/routes/webhooks.d.ts +158 -573
- package/dist/apps/management/routes/webhooks.d.ts.map +1 -1
- package/dist/apps/mpp/App.d.ts +12 -0
- package/dist/apps/mpp/App.d.ts.map +1 -1
- package/dist/apps/mpp/Mpp.d.ts +3 -0
- package/dist/apps/mpp/Mpp.d.ts.map +1 -1
- package/dist/apps/mpp/Mpp.js +3 -0
- package/dist/apps/mpp/Mpp.js.map +1 -1
- package/dist/apps/mpp/internal/Adapter.d.ts.map +1 -1
- package/dist/apps/mpp/internal/Adapter.js +9 -2
- package/dist/apps/mpp/internal/Adapter.js.map +1 -1
- package/dist/db/Db.d.ts +2 -2
- package/dist/db/Db.d.ts.map +1 -1
- package/dist/db/Db.js +25 -15
- package/dist/db/Db.js.map +1 -1
- package/dist/db/tables/fundingDeposits.d.ts +18 -1
- package/dist/db/tables/fundingDeposits.d.ts.map +1 -1
- package/dist/db/tables/fundingDeposits.js +46 -2
- package/dist/db/tables/fundingDeposits.js.map +1 -1
- package/dist/db/tables/sponsoredTransactions.d.ts.map +1 -1
- package/dist/db/tables/sponsoredTransactions.js +4 -1
- package/dist/db/tables/sponsoredTransactions.js.map +1 -1
- package/dist/db/tables/webhookSubscriptions.d.ts +56 -3
- package/dist/db/tables/webhookSubscriptions.d.ts.map +1 -1
- package/dist/db/tables/webhookSubscriptions.js +76 -3
- package/dist/db/tables/webhookSubscriptions.js.map +1 -1
- package/dist/internal/Auth.d.ts +4 -0
- package/dist/internal/Auth.d.ts.map +1 -1
- package/dist/internal/Auth.js +11 -2
- package/dist/internal/Auth.js.map +1 -1
- package/dist/internal/MetricSink.d.ts +112 -3
- package/dist/internal/MetricSink.d.ts.map +1 -1
- package/dist/internal/MetricSink.js +116 -3
- package/dist/internal/MetricSink.js.map +1 -1
- package/dist/internal/Schema.js +1 -1
- package/dist/internal/Schema.js.map +1 -1
- package/dist/internal/Tidx.d.ts +1 -3
- package/dist/internal/Tidx.d.ts.map +1 -1
- package/dist/internal/Tidx.js +1 -3
- package/dist/internal/Tidx.js.map +1 -1
- package/dist/internal/Viem.d.ts.map +1 -1
- package/dist/internal/Viem.js +2 -1
- package/dist/internal/Viem.js.map +1 -1
- package/dist/internal/WebhookDestination.d.ts +2 -0
- package/dist/internal/WebhookDestination.d.ts.map +1 -1
- package/dist/internal/WebhookDestination.js +11 -0
- package/dist/internal/WebhookDestination.js.map +1 -1
- package/dist/internal/WebhookTransfer.d.ts +55 -0
- package/dist/internal/WebhookTransfer.d.ts.map +1 -0
- package/dist/internal/WebhookTransfer.js +296 -0
- package/dist/internal/WebhookTransfer.js.map +1 -0
- package/dist/internal/Webhooks.d.ts +37 -0
- package/dist/internal/Webhooks.d.ts.map +1 -1
- package/dist/internal/Webhooks.js +87 -13
- package/dist/internal/Webhooks.js.map +1 -1
- package/dist/internal/funding/Provider.d.ts +10 -6
- package/dist/internal/funding/Provider.d.ts.map +1 -1
- package/dist/internal/funding/Provider.js +11 -7
- package/dist/internal/funding/Provider.js.map +1 -1
- package/dist/internal/funding/Reconciliation.d.ts.map +1 -1
- package/dist/internal/funding/Reconciliation.js +229 -16
- package/dist/internal/funding/Reconciliation.js.map +1 -1
- package/dist/internal/funding/providers/relay.d.ts +3 -0
- package/dist/internal/funding/providers/relay.d.ts.map +1 -1
- package/dist/internal/funding/providers/relay.js +18 -3
- package/dist/internal/funding/providers/relay.js.map +1 -1
- package/package.json +3 -3
- package/src/App.test.ts +32 -0
- package/src/App.ts +4 -1
- package/src/Client.test-d.ts +116 -38
- package/src/Webhooks.bench.ts +714 -0
- package/src/Webhooks.memory.bench.ts +250 -0
- package/src/Webhooks.test.ts +77 -6
- package/src/Webhooks.ts +83 -29
- package/src/apps/Zones.test.ts +5 -4
- package/src/apps/Zones.ts +9 -8
- package/src/apps/composition.test.ts +39 -10
- package/src/apps/data/FxOracle.test.ts +18 -0
- package/src/apps/data/FxOracle.ts +28 -5
- package/src/apps/data/routes/activities.test.ts +19 -0
- package/src/apps/data/routes/activities.ts +34 -30
- package/src/apps/data/routes/balances.test.ts +161 -10
- package/src/apps/data/routes/balances.ts +339 -147
- package/src/apps/data/routes/blocks.test.ts +12 -6
- package/src/apps/data/routes/earn.test.ts +286 -9
- package/src/apps/data/routes/earn.ts +841 -58
- package/src/apps/data/routes/exchanges.test.ts +7 -6
- package/src/apps/data/routes/exchanges.ts +124 -117
- package/src/apps/data/routes/receipts.test.ts +24 -7
- package/src/apps/data/routes/receipts.ts +67 -50
- package/src/apps/data/routes/tokens.test.ts +51 -0
- package/src/apps/data/routes/transactions.test.ts +42 -0
- package/src/apps/data/routes/transactions.ts +44 -39
- package/src/apps/data/routes/transfers.test.ts +402 -24
- package/src/apps/data/routes/transfers.ts +708 -101
- package/src/apps/data/routes/valuation.test.ts +26 -0
- package/src/apps/data/routes/valuation.ts +6 -2
- package/src/apps/data/routes/webhooks.test.ts +414 -130
- package/src/apps/data/routes/webhooks.ts +603 -419
- package/src/apps/data/routes/zones.ts +6 -1
- package/src/apps/funding/App.ts +20 -5
- package/src/apps/funding/routes/deposit-addresses.test.ts +43 -22
- package/src/apps/funding/routes/deposit-addresses.ts +34 -117
- package/src/apps/funding/routes/quotes.test.ts +1 -1
- package/src/apps/funding/routes/transfers.test.ts +6 -25
- package/src/apps/funding/routes/transfers.ts +5 -5
- package/src/apps/mpp/Mpp.test.ts +13 -1
- package/src/apps/mpp/Mpp.ts +8 -0
- package/src/apps/mpp/internal/Adapter.ts +10 -2
- package/src/db/Db.test.ts +40 -6
- package/src/db/Db.ts +42 -19
- package/src/db/tables/fundingDeposits.test.ts +101 -0
- package/src/db/tables/fundingDeposits.ts +71 -2
- package/src/db/tables/sponsoredTransactions.ts +9 -2
- package/src/db/tables/webhookSubscriptions.ts +116 -4
- package/src/internal/Auth.test.ts +28 -0
- package/src/internal/Auth.ts +15 -1
- package/src/internal/EarnVaults.test.ts +2 -2
- package/src/internal/MetricSink.test.ts +518 -0
- package/src/internal/MetricSink.ts +266 -9
- package/src/internal/Schema.ts +1 -1
- package/src/internal/Tidx.test.ts +4 -4
- package/src/internal/Tidx.ts +1 -3
- package/src/internal/Viem.test.ts +8 -0
- package/src/internal/Viem.ts +2 -1
- package/src/internal/WebhookDestination.test.ts +20 -0
- package/src/internal/WebhookDestination.ts +10 -0
- package/src/internal/WebhookTransfer.ts +426 -0
- package/src/internal/Webhooks.test.ts +137 -0
- package/src/internal/Webhooks.ts +131 -17
- package/src/internal/funding/Provider.test.ts +47 -7
- package/src/internal/funding/Provider.ts +16 -11
- package/src/internal/funding/Reconciliation.local.test.ts +3 -1
- package/src/internal/funding/Reconciliation.test.ts +1532 -54
- package/src/internal/funding/Reconciliation.ts +296 -53
- package/src/internal/funding/SourceObservation.test.ts +3 -2
- package/src/internal/funding/providers/relay.test.ts +1 -4
- package/src/internal/funding/providers/relay.ts +23 -3
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
import { encodeEventTopics, parseAbiItem } from 'viem';
|
|
2
|
+
import * as z from 'zod/mini';
|
|
3
|
+
import * as Transfers from '../apps/data/routes/transfers.js';
|
|
4
|
+
import * as Schema from './Schema.js';
|
|
5
|
+
import * as Value from './Value.js';
|
|
6
|
+
/** Subscriptions matched per shared transfer scan. */
|
|
7
|
+
export const scanCohortSize = 32;
|
|
8
|
+
/**
|
|
9
|
+
* Blocks per transfer `eth_getLogs` request. Firehose scans stop after a
|
|
10
|
+
* 100-row page, so small windows bound the raw RPC body retained before that cap.
|
|
11
|
+
*/
|
|
12
|
+
const scanChunkBlocks = 8;
|
|
13
|
+
const event = parseAbiItem(Transfers.signature);
|
|
14
|
+
const topic = encodeEventTopics({ abi: [event] })[0];
|
|
15
|
+
/** Returns a stable key for transfer filters with equivalent RPC pushdowns. */
|
|
16
|
+
function scanKey(filters_input) {
|
|
17
|
+
const filters = filters_input;
|
|
18
|
+
return JSON.stringify(normalizeRpcValue({
|
|
19
|
+
args: logArgs(filters),
|
|
20
|
+
token: filters.token,
|
|
21
|
+
}));
|
|
22
|
+
}
|
|
23
|
+
/** Scans transfer subscriptions through shared, memory-bounded RPC cohorts. */
|
|
24
|
+
export async function scan(options) {
|
|
25
|
+
const results = [];
|
|
26
|
+
const candidates = [];
|
|
27
|
+
for (let index = 0; index < options.states.length; index++) {
|
|
28
|
+
const state = options.states[index];
|
|
29
|
+
if (!state.window) {
|
|
30
|
+
results[index] = { status: 'fulfilled', value: { items: [] } };
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
candidates.push({
|
|
34
|
+
index,
|
|
35
|
+
key: scanKey(state.filters),
|
|
36
|
+
state: { ...state, window: state.window },
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
candidates.sort((a, b) => a.key.localeCompare(b.key) ||
|
|
40
|
+
a.state.window.from - b.state.window.from ||
|
|
41
|
+
a.state.window.to - b.state.window.to);
|
|
42
|
+
const cohorts = [];
|
|
43
|
+
for (const candidate of candidates) {
|
|
44
|
+
const previous = cohorts.at(-1);
|
|
45
|
+
const combinedBlocks = previous
|
|
46
|
+
? Math.max(previous.window.to, candidate.state.window.to) - previous.window.from + 1
|
|
47
|
+
: 0;
|
|
48
|
+
if (!previous ||
|
|
49
|
+
candidate.key !== previous.key ||
|
|
50
|
+
candidate.state.window.from > previous.window.to ||
|
|
51
|
+
combinedBlocks > options.maxBlocks ||
|
|
52
|
+
previous.states.length >= scanCohortSize) {
|
|
53
|
+
cohorts.push({
|
|
54
|
+
key: candidate.key,
|
|
55
|
+
states: [candidate],
|
|
56
|
+
window: { from: candidate.state.window.from, to: candidate.state.window.to },
|
|
57
|
+
});
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
previous.states.push(candidate);
|
|
61
|
+
previous.window.to = Math.max(previous.window.to, candidate.state.window.to);
|
|
62
|
+
}
|
|
63
|
+
const settled = await mapWithLimit(cohorts, options.concurrency, (cohort) => options.schedule(async () => ({
|
|
64
|
+
cohort,
|
|
65
|
+
pages: await scanCohort({ client: options.client, cohort }),
|
|
66
|
+
})));
|
|
67
|
+
for (const entry of settled) {
|
|
68
|
+
if (entry.status === 'rejected')
|
|
69
|
+
continue;
|
|
70
|
+
for (let index = 0; index < entry.value.cohort.states.length; index++)
|
|
71
|
+
results[entry.value.cohort.states[index].index] = {
|
|
72
|
+
status: 'fulfilled',
|
|
73
|
+
value: entry.value.pages[index],
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
for (let index = 0; index < settled.length; index++) {
|
|
77
|
+
const entry = settled[index];
|
|
78
|
+
if (entry.status !== 'rejected')
|
|
79
|
+
continue;
|
|
80
|
+
for (const candidate of cohorts[index].states)
|
|
81
|
+
results[candidate.index] = { reason: entry.reason, status: 'rejected' };
|
|
82
|
+
}
|
|
83
|
+
return results;
|
|
84
|
+
}
|
|
85
|
+
/** Runs ordered async work with bounded concurrency. */
|
|
86
|
+
async function mapWithLimit(items, limit, fn) {
|
|
87
|
+
const results = [];
|
|
88
|
+
let next = 0;
|
|
89
|
+
await Promise.all(Array.from({ length: Math.min(limit, items.length) }, async () => {
|
|
90
|
+
while (next < items.length) {
|
|
91
|
+
const index = next++;
|
|
92
|
+
try {
|
|
93
|
+
results[index] = { status: 'fulfilled', value: await fn(items[index]) };
|
|
94
|
+
}
|
|
95
|
+
catch (reason) {
|
|
96
|
+
results[index] = { reason, status: 'rejected' };
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}));
|
|
100
|
+
return results;
|
|
101
|
+
}
|
|
102
|
+
/** Recursively canonicalizes an RPC filter value for query grouping. */
|
|
103
|
+
function normalizeRpcValue(value) {
|
|
104
|
+
if (typeof value === 'bigint')
|
|
105
|
+
return `bigint:${value}`;
|
|
106
|
+
if (Array.isArray(value))
|
|
107
|
+
return value.map(normalizeRpcValue);
|
|
108
|
+
if (value && typeof value === 'object')
|
|
109
|
+
return Object.fromEntries(Object.entries(value)
|
|
110
|
+
.filter(([, item]) => item !== undefined)
|
|
111
|
+
.sort(([a], [b]) => a.localeCompare(b))
|
|
112
|
+
.map(([name, item]) => [name, normalizeRpcValue(item)]));
|
|
113
|
+
return value;
|
|
114
|
+
}
|
|
115
|
+
/** Returns indexed argument combinations pushed into Transfer log reads. */
|
|
116
|
+
function logArgs(filters) {
|
|
117
|
+
const args = {
|
|
118
|
+
...(filters.sender ? { from: filters.sender } : {}),
|
|
119
|
+
...(filters.recipient ? { to: filters.recipient } : {}),
|
|
120
|
+
};
|
|
121
|
+
return filters.address && !filters.sender && !filters.recipient
|
|
122
|
+
? [{ from: filters.address }, { to: filters.address }]
|
|
123
|
+
: [args];
|
|
124
|
+
}
|
|
125
|
+
/** Encodes one indexed address as its left-padded event topic. */
|
|
126
|
+
function addressTopic(address) {
|
|
127
|
+
return `0x${'0'.repeat(24)}${address.slice(2).toLowerCase()}`;
|
|
128
|
+
}
|
|
129
|
+
/** Builds the exact Transfer topic filter for one indexed-argument combination. */
|
|
130
|
+
function topics(args) {
|
|
131
|
+
const values = [
|
|
132
|
+
topic,
|
|
133
|
+
args.from ? addressTopic(args.from) : null,
|
|
134
|
+
args.to ? addressTopic(args.to) : null,
|
|
135
|
+
];
|
|
136
|
+
while (values.at(-1) === null)
|
|
137
|
+
values.pop();
|
|
138
|
+
return values;
|
|
139
|
+
}
|
|
140
|
+
/** Renders a block number as a JSON-RPC block tag. */
|
|
141
|
+
function blockTag(value) {
|
|
142
|
+
return `0x${value.toString(16)}`;
|
|
143
|
+
}
|
|
144
|
+
/** Issues an untyped JSON-RPC request through the Viem client. */
|
|
145
|
+
function rpc(client, method, params) {
|
|
146
|
+
return client.request({
|
|
147
|
+
method,
|
|
148
|
+
params: [...params],
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
/** Reads raw Transfer logs, splitting the either-side shortcut into two RPC filters. */
|
|
152
|
+
async function getLogs(client, filters, window) {
|
|
153
|
+
const pages = await Promise.all(logArgs(filters).map((args) => rpc(client, 'eth_getLogs', [
|
|
154
|
+
{
|
|
155
|
+
...(filters.token ? { address: filters.token } : {}),
|
|
156
|
+
fromBlock: blockTag(window.from),
|
|
157
|
+
topics: topics(args),
|
|
158
|
+
toBlock: blockTag(window.to),
|
|
159
|
+
},
|
|
160
|
+
])));
|
|
161
|
+
const logs = new Map();
|
|
162
|
+
for (const page of pages)
|
|
163
|
+
for (const log of page)
|
|
164
|
+
logs.set(`${log.blockNumber}:${log.logIndex}:${log.transactionHash}`, log);
|
|
165
|
+
return [...logs.values()];
|
|
166
|
+
}
|
|
167
|
+
/** Sorts raw logs into ascending `(blockNumber, logIndex)` order. */
|
|
168
|
+
function byPosition(a, b) {
|
|
169
|
+
const block = (Value.hexToNumber(a.blockNumber) ?? 0) - (Value.hexToNumber(b.blockNumber) ?? 0);
|
|
170
|
+
return block || (Value.hexToNumber(a.logIndex) ?? 0) - (Value.hexToNumber(b.logIndex) ?? 0);
|
|
171
|
+
}
|
|
172
|
+
/** True when an address is in Tempo's deterministic TIP-20 contract range. */
|
|
173
|
+
function isTip20Address(address) {
|
|
174
|
+
const value = address.toLowerCase();
|
|
175
|
+
return value >= Transfers.tip20AddressRange[0] && value < Transfers.tip20AddressRange[1];
|
|
176
|
+
}
|
|
177
|
+
/** Decodes one strict TIP-20 Transfer wire payload. */
|
|
178
|
+
function decode(log, timestamp) {
|
|
179
|
+
if (!isTip20Address(log.address))
|
|
180
|
+
return undefined;
|
|
181
|
+
if (log.topics.length !== 3 ||
|
|
182
|
+
log.topics[0]?.toLowerCase() !== topic.toLowerCase() ||
|
|
183
|
+
!/^0x0{24}[0-9a-fA-F]{40}$/.test(log.topics[1] ?? '') ||
|
|
184
|
+
!/^0x0{24}[0-9a-fA-F]{40}$/.test(log.topics[2] ?? '') ||
|
|
185
|
+
!/^0x[0-9a-fA-F]{64}$/.test(log.data))
|
|
186
|
+
return undefined;
|
|
187
|
+
const address = Schema.TokenAddress.safeParse(log.address);
|
|
188
|
+
const recipient = Schema.Address.safeParse(`0x${log.topics[2].slice(-40)}`);
|
|
189
|
+
const sender = Schema.Address.safeParse(`0x${log.topics[1].slice(-40)}`);
|
|
190
|
+
const transactionHash = Schema.Hash.safeParse(log.transactionHash);
|
|
191
|
+
const amount = Value.fromHex(log.data);
|
|
192
|
+
const blockNumber = Value.hexToNumber(log.blockNumber);
|
|
193
|
+
const logIndex = Value.hexToNumber(log.logIndex);
|
|
194
|
+
if (!address.success ||
|
|
195
|
+
!recipient.success ||
|
|
196
|
+
!sender.success ||
|
|
197
|
+
!transactionHash.success ||
|
|
198
|
+
amount === undefined ||
|
|
199
|
+
blockNumber === undefined ||
|
|
200
|
+
logIndex === undefined)
|
|
201
|
+
return undefined;
|
|
202
|
+
return {
|
|
203
|
+
address: address.data,
|
|
204
|
+
amount,
|
|
205
|
+
blockNumber,
|
|
206
|
+
logIndex,
|
|
207
|
+
recipient: recipient.data,
|
|
208
|
+
sender: sender.data,
|
|
209
|
+
timestamp,
|
|
210
|
+
transactionHash: transactionHash.data,
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
/** Re-checks every transfer filter after RPC topic pushdown. */
|
|
214
|
+
function matches(data, filters) {
|
|
215
|
+
if (filters.address && data.sender !== filters.address && data.recipient !== filters.address)
|
|
216
|
+
return false;
|
|
217
|
+
if (filters.recipient && data.recipient !== filters.recipient)
|
|
218
|
+
return false;
|
|
219
|
+
if (filters.sender && data.sender !== filters.sender)
|
|
220
|
+
return false;
|
|
221
|
+
if (filters.token && data.address !== filters.token)
|
|
222
|
+
return false;
|
|
223
|
+
return true;
|
|
224
|
+
}
|
|
225
|
+
/** Adds a matched row until one subscription reaches its fair-page limit. */
|
|
226
|
+
function addMatch(accumulator, item) {
|
|
227
|
+
if (accumulator.full)
|
|
228
|
+
return;
|
|
229
|
+
accumulator.items.push(item);
|
|
230
|
+
accumulator.full = accumulator.items.length >= accumulator.state.limit;
|
|
231
|
+
}
|
|
232
|
+
/** Checks whether a canonical row remains eligible for one subscription. */
|
|
233
|
+
function canMatch(accumulator, blockNumber, logIndex) {
|
|
234
|
+
const { skip, to } = accumulator.state.window;
|
|
235
|
+
return (!accumulator.full &&
|
|
236
|
+
blockNumber <= to &&
|
|
237
|
+
(blockNumber > skip[0] || (blockNumber === skip[0] && logIndex > skip[1])));
|
|
238
|
+
}
|
|
239
|
+
/** Converts match buffers into cursor-aware poller pages. */
|
|
240
|
+
function finish(accumulators) {
|
|
241
|
+
return accumulators.map((accumulator) => {
|
|
242
|
+
if (accumulator.full)
|
|
243
|
+
return { hasMore: true, items: accumulator.items };
|
|
244
|
+
if (accumulator.items.length > 0)
|
|
245
|
+
return { items: accumulator.items };
|
|
246
|
+
return { items: accumulator.items, scannedThrough: accumulator.state.window.to };
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
/** Scans one canonical transfer stream and fans rows into matching subscriptions. */
|
|
250
|
+
async function scanCohort(options) {
|
|
251
|
+
const { client, cohort } = options;
|
|
252
|
+
const accumulators = cohort.states.map(({ state }) => ({
|
|
253
|
+
full: false,
|
|
254
|
+
items: [],
|
|
255
|
+
state,
|
|
256
|
+
}));
|
|
257
|
+
const timestamps = new Map();
|
|
258
|
+
const timestamp = (blockNumber) => {
|
|
259
|
+
const existing = timestamps.get(blockNumber);
|
|
260
|
+
if (existing)
|
|
261
|
+
return existing;
|
|
262
|
+
const pending = client
|
|
263
|
+
.getBlock({ blockNumber: BigInt(blockNumber), includeTransactions: false })
|
|
264
|
+
.then((block) => new Date(Number(block.timestamp) * 1_000).toISOString());
|
|
265
|
+
timestamps.set(blockNumber, pending);
|
|
266
|
+
return pending;
|
|
267
|
+
};
|
|
268
|
+
const filters_source = cohort.states[0].state.filters;
|
|
269
|
+
// RPC pushdowns bound selective responses; only the unfiltered firehose needs small range chunks.
|
|
270
|
+
const chunkBlocks = Object.values(filters_source).some(Boolean)
|
|
271
|
+
? cohort.window.to - cohort.window.from + 1
|
|
272
|
+
: scanChunkBlocks;
|
|
273
|
+
for (let from = cohort.window.from; from <= cohort.window.to; from += chunkBlocks) {
|
|
274
|
+
const to = Math.min(cohort.window.to, from + chunkBlocks - 1);
|
|
275
|
+
const logs = (await getLogs(client, filters_source, { from, to })).sort(byPosition);
|
|
276
|
+
for (const log of logs) {
|
|
277
|
+
const blockNumber = Value.hexToNumber(log.blockNumber);
|
|
278
|
+
const logIndex = Value.hexToNumber(log.logIndex);
|
|
279
|
+
if (blockNumber === undefined || logIndex === undefined)
|
|
280
|
+
continue;
|
|
281
|
+
const data = decode(log, await timestamp(blockNumber));
|
|
282
|
+
if (!data)
|
|
283
|
+
continue;
|
|
284
|
+
for (const accumulator of accumulators) {
|
|
285
|
+
if (!canMatch(accumulator, blockNumber, logIndex))
|
|
286
|
+
continue;
|
|
287
|
+
if (matches(data, accumulator.state.filters))
|
|
288
|
+
addMatch(accumulator, { cursor: [blockNumber, logIndex], data });
|
|
289
|
+
}
|
|
290
|
+
if (accumulators.every((accumulator) => accumulator.full))
|
|
291
|
+
return finish(accumulators);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
return finish(accumulators);
|
|
295
|
+
}
|
|
296
|
+
//# sourceMappingURL=WebhookTransfer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebhookTransfer.js","sourceRoot":"","sources":["../../src/internal/WebhookTransfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAe,MAAM,MAAM,CAAA;AACnE,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAE7B,OAAO,KAAK,SAAS,MAAM,kCAAkC,CAAA;AAC7D,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAGnC,sDAAsD;AACtD,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAA;AAEhC;;;GAGG;AACH,MAAM,eAAe,GAAG,CAAC,CAAA;AAEzB,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;AAC/C,MAAM,KAAK,GAAG,iBAAiB,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AAiCpD,+EAA+E;AAC/E,SAAS,OAAO,CAAC,aAAsC;IACrD,MAAM,OAAO,GAAG,aAAwB,CAAA;IACxC,OAAO,IAAI,CAAC,SAAS,CACnB,iBAAiB,CAAC;QAChB,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC,CACH,CAAA;AACH,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,OAAqB;IAC9C,MAAM,OAAO,GAAsC,EAAE,CAAA;IACrD,MAAM,UAAU,GAAgB,EAAE,CAAA;IAClC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAC3D,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAE,CAAA;QACpC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAA;YAC9D,SAAQ;QACV,CAAC;QACD,UAAU,CAAC,IAAI,CAAC;YACd,KAAK;YACL,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;YAC3B,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE;SAC1C,CAAC,CAAA;IACJ,CAAC;IAED,UAAU,CAAC,IAAI,CACb,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC;QAC1B,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;QACzC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CACxC,CAAA;IACD,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/B,MAAM,cAAc,GAAG,QAAQ;YAC7B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC;YACpF,CAAC,CAAC,CAAC,CAAA;QACL,IACE,CAAC,QAAQ;YACT,SAAS,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG;YAC9B,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE;YAChD,cAAc,GAAG,OAAO,CAAC,SAAS;YAClC,QAAQ,CAAC,MAAM,CAAC,MAAM,IAAI,cAAc,EACxC,CAAC;YACD,OAAO,CAAC,IAAI,CAAC;gBACX,GAAG,EAAE,SAAS,CAAC,GAAG;gBAClB,MAAM,EAAE,CAAC,SAAS,CAAC;gBACnB,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE;aAC7E,CAAC,CAAA;YACF,SAAQ;QACV,CAAC;QACD,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAC9E,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CAC1E,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAC5B,MAAM;QACN,KAAK,EAAE,MAAM,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;KAC5D,CAAC,CAAC,CACJ,CAAA;IACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU;YAAE,SAAQ;QACzC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE;YACnE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAE,CAAC,KAAK,CAAC,GAAG;gBACjD,MAAM,EAAE,WAAW;gBACnB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAE;aACjC,CAAA;IACL,CAAC;IACD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACpD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAE,CAAA;QAC7B,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU;YAAE,SAAQ;QACzC,KAAK,MAAM,SAAS,IAAI,OAAO,CAAC,KAAK,CAAE,CAAC,MAAM;YAC5C,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,CAAA;IAC3E,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAwDD,wDAAwD;AACxD,KAAK,UAAU,YAAY,CACzB,KAAsB,EACtB,KAAa,EACb,EAAkC;IAElC,MAAM,OAAO,GAAkC,EAAE,CAAA;IACjD,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;QAC/D,OAAO,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,IAAI,EAAE,CAAA;YACpB,IAAI,CAAC;gBACH,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,CAAE,CAAC,EAAE,CAAA;YAC1E,CAAC;YAAC,OAAO,MAAM,EAAE,CAAC;gBAChB,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,CAAA;YACjD,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CACH,CAAA;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,wEAAwE;AACxE,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,UAAU,KAAK,EAAE,CAAA;IACvD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IAC7D,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QACpC,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;aAClB,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC;aACxC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aACtC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAC1D,CAAA;IACH,OAAO,KAAK,CAAA;AACd,CAAC;AAED,4EAA4E;AAC5E,SAAS,OAAO,CAAC,OAAgB;IAC/B,MAAM,IAAI,GAAG;QACX,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxD,CAAA;IACD,OAAO,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS;QAC7D,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;QACtD,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AACZ,CAAC;AAED,kEAAkE;AAClE,SAAS,YAAY,CAAC,OAAe;IACnC,OAAO,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAA;AAC/D,CAAC;AAED,mFAAmF;AACnF,SAAS,MAAM,CAAC,IAA4D;IAC1E,MAAM,MAAM,GAA6B;QACvC,KAAK;QACL,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;QAC1C,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;KACvC,CAAA;IACD,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI;QAAE,MAAM,CAAC,GAAG,EAAE,CAAA;IAC3C,OAAO,MAAM,CAAA;AACf,CAAC;AAED,sDAAsD;AACtD,SAAS,QAAQ,CAAC,KAAa;IAC7B,OAAO,KAAK,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAA;AAClC,CAAC;AAED,kEAAkE;AAClE,SAAS,GAAG,CACV,MAAiC,EACjC,MAAc,EACd,MAA0B;IAE1B,OAAQ,MAAM,CAAC,OAA4E,CAAC;QAC1F,MAAM;QACN,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC;KACpB,CAAC,CAAA;AACJ,CAAC;AAED,wFAAwF;AACxF,KAAK,UAAU,OAAO,CACpB,MAAiC,EACjC,OAAgB,EAChB,MAAoC;IAEpC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAC5B,GAAG,CAAW,MAAM,EAAE,aAAa,EAAE;QACnC;YACE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;YAChC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;YACpB,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;SAC7B;KACF,CAAC,CACH,CACF,CAAA;IACD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAA;IACtC,KAAK,MAAM,IAAI,IAAI,KAAK;QACtB,KAAK,MAAM,GAAG,IAAI,IAAI;YACpB,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,eAAe,EAAE,EAAE,GAAG,CAAC,CAAA;IAC9E,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;AAC3B,CAAC;AAED,qEAAqE;AACrE,SAAS,UAAU,CAAC,CAAS,EAAE,CAAS;IACtC,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAA;IAC/F,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;AAC7F,CAAC;AAED,8EAA8E;AAC9E,SAAS,cAAc,CAAC,OAAe;IACrC,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAA;IACnC,OAAO,KAAK,IAAI,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAA;AAC1F,CAAC;AAED,uDAAuD;AACvD,SAAS,MAAM,CAAC,GAAW,EAAE,SAAiB;IAC5C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAA;IAClD,IACE,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QACvB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE;QACpD,CAAC,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACrD,CAAC,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACrD,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QAErC,OAAO,SAAS,CAAA;IAClB,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IAC5E,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IACzE,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IAClE,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACtC,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;IACtD,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAChD,IACE,CAAC,OAAO,CAAC,OAAO;QAChB,CAAC,SAAS,CAAC,OAAO;QAClB,CAAC,MAAM,CAAC,OAAO;QACf,CAAC,eAAe,CAAC,OAAO;QACxB,MAAM,KAAK,SAAS;QACpB,WAAW,KAAK,SAAS;QACzB,QAAQ,KAAK,SAAS;QAEtB,OAAO,SAAS,CAAA;IAClB,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,IAAI;QACrB,MAAM;QACN,WAAW;QACX,QAAQ;QACR,SAAS,EAAE,SAAS,CAAC,IAAI;QACzB,MAAM,EAAE,MAAM,CAAC,IAAI;QACnB,SAAS;QACT,eAAe,EAAE,eAAe,CAAC,IAAI;KACtC,CAAA;AACH,CAAC;AAED,gEAAgE;AAChE,SAAS,OAAO,CAAC,IAAe,EAAE,OAAgB;IAChD,IAAI,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,OAAO;QAC1F,OAAO,KAAK,CAAA;IACd,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS;QAAE,OAAO,KAAK,CAAA;IAC3E,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IAClE,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,KAAK;QAAE,OAAO,KAAK,CAAA;IACjE,OAAO,IAAI,CAAA;AACb,CAAC;AAED,6EAA6E;AAC7E,SAAS,QAAQ,CAAC,WAAwB,EAAE,IAAe;IACzD,IAAI,WAAW,CAAC,IAAI;QAAE,OAAM;IAC5B,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC5B,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK,CAAA;AACxE,CAAC;AAED,4EAA4E;AAC5E,SAAS,QAAQ,CAAC,WAAwB,EAAE,WAAmB,EAAE,QAAgB;IAC/E,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAA;IAC7C,OAAO,CACL,CAAC,WAAW,CAAC,IAAI;QACjB,WAAW,IAAI,EAAE;QACjB,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAC3E,CAAA;AACH,CAAC;AAED,6DAA6D;AAC7D,SAAS,MAAM,CAAC,YAAoC;IAClD,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE;QACtC,IAAI,WAAW,CAAC,IAAI;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,CAAA;QACxE,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,CAAA;QACrE,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,cAAc,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAA;IAClF,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,qFAAqF;AACrF,KAAK,UAAU,UAAU,CAAC,OAGzB;IACC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IAClC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAc,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAClE,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,EAAE;QACT,KAAK;KACN,CAAC,CAAC,CAAA;IACH,MAAM,UAAU,GAAG,IAAI,GAAG,EAA2B,CAAA;IACrD,MAAM,SAAS,GAAG,CAAC,WAAmB,EAAE,EAAE;QACxC,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QAC5C,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAA;QAC7B,MAAM,OAAO,GAAG,MAAM;aACnB,QAAQ,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC;aAC1E,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;QAC3E,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;QACpC,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;IACD,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,OAAkB,CAAA;IACjE,kGAAkG;IAClG,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;QAC7D,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC;QAC3C,CAAC,CAAC,eAAe,CAAA;IAEnB,KAAK,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,IAAI,WAAW,EAAE,CAAC;QAClF,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,GAAG,WAAW,GAAG,CAAC,CAAC,CAAA;QAC7D,MAAM,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACnF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;YACtD,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YAChD,IAAI,WAAW,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS;gBAAE,SAAQ;YACjE,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC,CAAA;YACtD,IAAI,CAAC,IAAI;gBAAE,SAAQ;YACnB,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;gBACvC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC;oBAAE,SAAQ;gBAC3D,IAAI,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,OAAkB,CAAC;oBACrD,QAAQ,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;YACpE,CAAC;YACD,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;gBAAE,OAAO,MAAM,CAAC,YAAY,CAAC,CAAA;QACxF,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,YAAY,CAAC,CAAA;AAC7B,CAAC"}
|
|
@@ -198,6 +198,29 @@ export declare function deleteSubscription(db: Db.Db, owner: Owner, id: string):
|
|
|
198
198
|
* secondary key space).
|
|
199
199
|
*/
|
|
200
200
|
export declare function listActive(db: Db.Db, chainId: number, eventType: EventType): Promise<Subscription[]>;
|
|
201
|
+
/**
|
|
202
|
+
* Lists a stream's live active subscriptions paired with their poller cursors,
|
|
203
|
+
* from one query. The poller's per-tick lookup.
|
|
204
|
+
*/
|
|
205
|
+
export declare function listActiveWithCursors(db: Db.Db, chainId: number, eventType: EventType): Promise<{
|
|
206
|
+
cursor: string | null;
|
|
207
|
+
subscription: Subscription;
|
|
208
|
+
}[]>;
|
|
209
|
+
/** Reads every live active subscription on a chain in one poller query. */
|
|
210
|
+
export declare function listActiveForChain(db: Db.Db, options: listActiveForChain.Options): Promise<{
|
|
211
|
+
cursor: string | null;
|
|
212
|
+
subscription: Subscription;
|
|
213
|
+
}[]>;
|
|
214
|
+
export declare namespace listActiveForChain {
|
|
215
|
+
/** Filters for the poller's chain-level subscription read. */
|
|
216
|
+
type Options = Pick<WebhookSubscriptions.listActiveForChain.Options, 'chainId' | 'eventTypes'>;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Reads the freshest cursor block across a chain's active subscriptions, or
|
|
220
|
+
* null when none carry a cursor. Creation checkpoints count at their recorded
|
|
221
|
+
* head, so a brand-new subscription reads as fresh.
|
|
222
|
+
*/
|
|
223
|
+
export declare function maxCursorBlock(db: Db.Db, chainId: number): Promise<number | null>;
|
|
201
224
|
/** Reads a subscription's keyset cursor. Returns null when unset. */
|
|
202
225
|
export declare function getCursor(db: Db.Db, subscriptionId: string): Promise<string | null>;
|
|
203
226
|
/** Writes a cursor only when its stored value matches the expected cursor. */
|
|
@@ -206,6 +229,12 @@ export declare namespace compareAndSetCursor {
|
|
|
206
229
|
/** Options for {@link compareAndSetCursor}. */
|
|
207
230
|
type Options = WebhookSubscriptions.compareAndSetCursor.Options;
|
|
208
231
|
}
|
|
232
|
+
/** Writes cursors whose stored values match their expected cursors. */
|
|
233
|
+
export declare function compareAndSetCursors(db: Db.Db, options: compareAndSetCursors.Options): Promise<Set<string>>;
|
|
234
|
+
export declare namespace compareAndSetCursors {
|
|
235
|
+
/** Options for {@link compareAndSetCursors}. */
|
|
236
|
+
type Options = WebhookSubscriptions.compareAndSetCursors.Options;
|
|
237
|
+
}
|
|
209
238
|
/** Writes a subscription's keyset cursor. */
|
|
210
239
|
export declare function setCursor(db: Db.Db, subscriptionId: string, cursor: string): Promise<void>;
|
|
211
240
|
/**
|
|
@@ -305,6 +334,8 @@ export declare namespace deliverAndRecord {
|
|
|
305
334
|
type Options = {
|
|
306
335
|
/** Delivery-log row TTL in ms; defaults to {@link deliveryRetentionMs}. */
|
|
307
336
|
deliveryRetentionMs?: number | undefined;
|
|
337
|
+
/** Queue dequeue time as epoch milliseconds, captured before subscription lookup. */
|
|
338
|
+
dequeuedAt?: number | undefined;
|
|
308
339
|
/** `fetch` implementation passed through to {@link deliver}. */
|
|
309
340
|
fetch?: typeof globalThis.fetch | undefined;
|
|
310
341
|
/** Consecutive failures before auto-disabling (default {@link maxFailures}). */
|
|
@@ -313,6 +344,12 @@ export declare namespace deliverAndRecord {
|
|
|
313
344
|
metrics?: Metrics.Metrics | undefined;
|
|
314
345
|
/** Clock used for timestamps; injectable for tests. */
|
|
315
346
|
now?: (() => Date) | undefined;
|
|
347
|
+
/** Cloudflare Queue delivery attempt, starting at one; absent for inline delivery paths. */
|
|
348
|
+
queueAttempt?: number | undefined;
|
|
349
|
+
/** Queue enqueue time as epoch milliseconds, used to isolate queue wait. */
|
|
350
|
+
queuedAt?: number | undefined;
|
|
351
|
+
/** Authoritative subscription lookup duration, supplied by the queue path. */
|
|
352
|
+
subscriptionReadMs?: number | undefined;
|
|
316
353
|
/** Delivery timeout in ms passed through to {@link deliver}. */
|
|
317
354
|
timeoutMs?: number | undefined;
|
|
318
355
|
/** Where this attempt originated; tags the `webhook:delivery` event (default `queue`). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Webhooks.d.ts","sourceRoot":"","sources":["../../src/internal/Webhooks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Webhooks.d.ts","sourceRoot":"","sources":["../../src/internal/Webhooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -104,8 +104,40 @@ export async function deleteSubscription(db, owner, id) {
|
|
|
104
104
|
* secondary key space).
|
|
105
105
|
*/
|
|
106
106
|
export async function listActive(db, chainId, eventType) {
|
|
107
|
+
const pairs = await listActiveWithCursors(db, chainId, eventType);
|
|
108
|
+
return pairs.map((pair) => pair.subscription);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Lists a stream's live active subscriptions paired with their poller cursors,
|
|
112
|
+
* from one query. The poller's per-tick lookup.
|
|
113
|
+
*/
|
|
114
|
+
export async function listActiveWithCursors(db, chainId, eventType) {
|
|
107
115
|
return WebhookSubscriptions.listActive(db, chainId, eventType, new Date().toISOString());
|
|
108
116
|
}
|
|
117
|
+
/** Reads every live active subscription on a chain in one poller query. */
|
|
118
|
+
export async function listActiveForChain(db, options) {
|
|
119
|
+
return WebhookSubscriptions.listActiveForChain(db, {
|
|
120
|
+
chainId: options.chainId,
|
|
121
|
+
eventTypes: options.eventTypes,
|
|
122
|
+
now: new Date().toISOString(),
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Reads the freshest cursor block across a chain's active subscriptions, or
|
|
127
|
+
* null when none carry a cursor. Creation checkpoints count at their recorded
|
|
128
|
+
* head, so a brand-new subscription reads as fresh.
|
|
129
|
+
*/
|
|
130
|
+
export async function maxCursorBlock(db, chainId) {
|
|
131
|
+
const cursors = await WebhookSubscriptions.listActiveCursors(db, chainId, new Date().toISOString());
|
|
132
|
+
let max = null;
|
|
133
|
+
for (const cursor of cursors) {
|
|
134
|
+
const decoded = Cursor.decode(cursor, ['int', 'int']) ?? Cursor.decode(cursor, ['int']);
|
|
135
|
+
const block = decoded?.[0];
|
|
136
|
+
if (typeof block === 'number' && (max === null || block > max))
|
|
137
|
+
max = block;
|
|
138
|
+
}
|
|
139
|
+
return max;
|
|
140
|
+
}
|
|
109
141
|
/** Reads a subscription's keyset cursor. Returns null when unset. */
|
|
110
142
|
export async function getCursor(db, subscriptionId) {
|
|
111
143
|
return WebhookSubscriptions.getCursor(db, subscriptionId);
|
|
@@ -114,6 +146,10 @@ export async function getCursor(db, subscriptionId) {
|
|
|
114
146
|
export async function compareAndSetCursor(db, options) {
|
|
115
147
|
return WebhookSubscriptions.compareAndSetCursor(db, options);
|
|
116
148
|
}
|
|
149
|
+
/** Writes cursors whose stored values match their expected cursors. */
|
|
150
|
+
export async function compareAndSetCursors(db, options) {
|
|
151
|
+
return WebhookSubscriptions.compareAndSetCursors(db, options);
|
|
152
|
+
}
|
|
117
153
|
/** Writes a subscription's keyset cursor. */
|
|
118
154
|
export async function setCursor(db, subscriptionId, cursor) {
|
|
119
155
|
await WebhookSubscriptions.setCursor(db, subscriptionId, cursor);
|
|
@@ -209,6 +245,7 @@ export async function recordFailure(db, subscription, options = {}) {
|
|
|
209
245
|
* point shared by the Cloudflare Queue consumer and the self-host inline path.
|
|
210
246
|
*/
|
|
211
247
|
export async function deliverAndRecord(db, subscription, envelope, options = {}) {
|
|
248
|
+
const startedAt = Date.now();
|
|
212
249
|
// Snapshot the attempt before recordSuccess/recordFailure mutate the counter.
|
|
213
250
|
const attempt = subscription.failureCount + 1;
|
|
214
251
|
const result = await WebhookDestination.from(subscription.destination).deliver({
|
|
@@ -217,45 +254,82 @@ export async function deliverAndRecord(db, subscription, envelope, options = {})
|
|
|
217
254
|
...(options.fetch === undefined ? {} : { fetch: options.fetch }),
|
|
218
255
|
...(options.timeoutMs === undefined ? {} : { timeoutMs: options.timeoutMs }),
|
|
219
256
|
});
|
|
257
|
+
const stateWriteStartedAt = Date.now();
|
|
220
258
|
if (result.ok)
|
|
221
259
|
await recordSuccess(db, subscription, options);
|
|
222
260
|
else
|
|
223
261
|
await recordFailure(db, subscription, options);
|
|
224
|
-
|
|
225
|
-
//
|
|
226
|
-
// the
|
|
227
|
-
|
|
262
|
+
const stateWriteMs = Date.now() - stateWriteStartedAt;
|
|
263
|
+
// Append a delivery-log row. Best-effort: a logging failure must never change
|
|
264
|
+
// the delivery outcome the caller (Queue consumer / inline path) acts on.
|
|
265
|
+
const deliveryLogStartedAt = Date.now();
|
|
266
|
+
try {
|
|
267
|
+
await recordDelivery(db, buildDelivery({ attempt, envelope, result, subscription }, options), options.deliveryRetentionMs === undefined ? {} : { ttl: options.deliveryRetentionMs });
|
|
268
|
+
}
|
|
269
|
+
catch {
|
|
270
|
+
// delivery logging is best-effort
|
|
271
|
+
}
|
|
272
|
+
const completedAt = Date.now();
|
|
273
|
+
// Emit after all delivery work so the timings cover every stage. The
|
|
274
|
+
// subscription is immutable, preserving the pre-attempt failure count.
|
|
228
275
|
const metrics = options.metrics ? MetricSink.webhooks(options.metrics) : undefined;
|
|
229
276
|
if (metrics) {
|
|
277
|
+
const eventAt = eventTimestamp(envelope);
|
|
278
|
+
const envelopeAt = Date.parse(envelope.createdAt);
|
|
279
|
+
const dequeuedAt = options.dequeuedAt ?? startedAt;
|
|
230
280
|
metrics.record({
|
|
231
281
|
envelope,
|
|
282
|
+
queueAttempt: options.queueAttempt,
|
|
232
283
|
result,
|
|
233
284
|
subscription,
|
|
285
|
+
timings: {
|
|
286
|
+
deliveryLogMs: completedAt - deliveryLogStartedAt,
|
|
287
|
+
envelopeToQueueMs: options.queuedAt === undefined || Number.isNaN(envelopeAt)
|
|
288
|
+
? undefined
|
|
289
|
+
: Math.max(0, options.queuedAt - envelopeAt),
|
|
290
|
+
endToEndMs: eventAt === undefined ? undefined : Math.max(0, completedAt - eventAt),
|
|
291
|
+
eventToEnvelopeMs: eventAt === undefined || Number.isNaN(envelopeAt)
|
|
292
|
+
? undefined
|
|
293
|
+
: Math.max(0, envelopeAt - eventAt),
|
|
294
|
+
processingMs: Math.max(0, completedAt - dequeuedAt),
|
|
295
|
+
queueWaitMs: options.queuedAt === undefined ? undefined : Math.max(0, dequeuedAt - options.queuedAt),
|
|
296
|
+
stateWriteMs,
|
|
297
|
+
subscriptionReadMs: options.subscriptionReadMs,
|
|
298
|
+
},
|
|
234
299
|
trigger: options.trigger ?? 'queue',
|
|
235
300
|
type: 'webhook:delivery',
|
|
236
301
|
});
|
|
237
302
|
metrics.flush();
|
|
238
303
|
}
|
|
239
|
-
// Append a delivery-log row. Best-effort: a logging failure must never change
|
|
240
|
-
// the delivery outcome the caller (Queue consumer / inline path) acts on.
|
|
241
|
-
try {
|
|
242
|
-
await recordDelivery(db, buildDelivery({ attempt, envelope, result, subscription }, options), options.deliveryRetentionMs === undefined ? {} : { ttl: options.deliveryRetentionMs });
|
|
243
|
-
}
|
|
244
|
-
catch {
|
|
245
|
-
// delivery logging is best-effort
|
|
246
|
-
}
|
|
247
304
|
return result;
|
|
248
305
|
}
|
|
306
|
+
/** Reads an event timestamp from an envelope, falling back to its creation time. */
|
|
307
|
+
function eventTimestamp(envelope) {
|
|
308
|
+
const value = typeof envelope.data === 'object' &&
|
|
309
|
+
envelope.data !== null &&
|
|
310
|
+
'timestamp' in envelope.data &&
|
|
311
|
+
typeof envelope.data.timestamp === 'string'
|
|
312
|
+
? envelope.data.timestamp
|
|
313
|
+
: envelope.createdAt;
|
|
314
|
+
const timestamp = Date.parse(value);
|
|
315
|
+
return Number.isNaN(timestamp) ? undefined : timestamp;
|
|
316
|
+
}
|
|
249
317
|
/**
|
|
250
318
|
* Re-resolves an enqueued subscription before delivery. Missing or inactive
|
|
251
319
|
* subscriptions are skipped; delivery uses the current destination and secret.
|
|
252
320
|
*/
|
|
253
321
|
export async function deliverCurrentAndRecord(db, queued, envelope, options = {}) {
|
|
322
|
+
const dequeuedAt = Date.now();
|
|
323
|
+
const subscriptionReadStartedAt = dequeuedAt;
|
|
254
324
|
const subscription = await getSubscription(db, queued.owner, queued.id);
|
|
255
325
|
if (!subscription || subscription.status !== 'active')
|
|
256
326
|
return { status: 'skipped' };
|
|
257
327
|
return {
|
|
258
|
-
result: await deliverAndRecord(db, subscription, envelope,
|
|
328
|
+
result: await deliverAndRecord(db, subscription, envelope, {
|
|
329
|
+
...options,
|
|
330
|
+
dequeuedAt,
|
|
331
|
+
subscriptionReadMs: Date.now() - subscriptionReadStartedAt,
|
|
332
|
+
}),
|
|
259
333
|
status: 'delivered',
|
|
260
334
|
};
|
|
261
335
|
}
|