tapimo 0.7.2 → 0.8.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/README.md +10 -7
- package/dist/ApiKey.d.ts +3 -0
- package/dist/ApiKey.d.ts.map +1 -1
- package/dist/ApiKey.js +10 -0
- package/dist/ApiKey.js.map +1 -1
- package/dist/ApiKeys.d.ts +7 -3
- package/dist/ApiKeys.d.ts.map +1 -1
- package/dist/ApiKeys.js +9 -2
- package/dist/ApiKeys.js.map +1 -1
- package/dist/App.d.ts +20434 -19484
- package/dist/App.d.ts.map +1 -1
- package/dist/App.js +62 -4
- package/dist/App.js.map +1 -1
- package/dist/admin/App.d.ts +84 -74
- package/dist/admin/App.d.ts.map +1 -1
- package/dist/admin/apps/api-keys.d.ts +14 -1
- package/dist/admin/apps/api-keys.d.ts.map +1 -1
- package/dist/admin/apps/api-keys.js +6 -2
- package/dist/admin/apps/api-keys.js.map +1 -1
- package/dist/admin/apps/organizations.d.ts +2 -0
- package/dist/admin/apps/organizations.d.ts.map +1 -1
- package/dist/admin/apps/verified-tokens.d.ts +168 -168
- package/dist/admin/ui.generated.d.ts +1 -1
- package/dist/admin/ui.generated.js +67 -67
- package/dist/admin/ui.generated.js.map +1 -1
- package/dist/analytics/Analytics.d.ts +2 -0
- package/dist/analytics/Analytics.d.ts.map +1 -1
- package/dist/analytics/Analytics.js +3 -0
- package/dist/analytics/Analytics.js.map +1 -1
- package/dist/apps/data/App.d.ts +10305 -12785
- package/dist/apps/data/App.d.ts.map +1 -1
- package/dist/apps/data/App.js +4 -8
- package/dist/apps/data/App.js.map +1 -1
- package/dist/apps/data/routes/activities.d.ts +24 -24
- package/dist/apps/data/routes/addresses.d.ts +288 -288
- package/dist/apps/data/routes/balances.d.ts +6 -6
- package/dist/apps/data/routes/blocks.d.ts +39 -39
- package/dist/apps/data/routes/coingecko.d.ts +170 -170
- package/dist/apps/data/routes/earn.d.ts +436 -6
- package/dist/apps/data/routes/earn.d.ts.map +1 -1
- package/dist/apps/data/routes/earn.js +631 -4
- package/dist/apps/data/routes/earn.js.map +1 -1
- package/dist/apps/data/routes/exchanges.d.ts +10 -10
- package/dist/apps/data/routes/fee-amm.d.ts +2 -2
- package/dist/apps/data/routes/indexer.d.ts +6 -6
- package/dist/apps/data/routes/indexer.js +4 -1
- package/dist/apps/data/routes/indexer.js.map +1 -1
- package/dist/apps/data/routes/receipts.d.ts +235 -235
- package/dist/apps/data/routes/rpc.d.ts +1 -1
- package/dist/apps/data/routes/rpc.js +4 -1
- package/dist/apps/data/routes/rpc.js.map +1 -1
- package/dist/apps/data/routes/tokenlist.d.ts +36 -36
- package/dist/apps/data/routes/tokens.d.ts +6 -6
- package/dist/apps/data/routes/transactions.d.ts +2 -2
- package/dist/apps/data/routes/transfers.d.ts +1 -1
- package/dist/apps/data/routes/valuation.d.ts +1 -1
- package/dist/apps/data/routes/verified-tokens.d.ts +36 -36
- package/dist/apps/data/routes/webhooks.d.ts +9 -9
- package/dist/apps/data/routes/zones.d.ts +14 -14
- package/dist/apps/funding/Access.d.ts +16 -0
- package/dist/apps/funding/Access.d.ts.map +1 -0
- package/dist/apps/funding/Access.js +22 -0
- package/dist/apps/funding/Access.js.map +1 -0
- package/dist/apps/{data/routes/funding.d.ts → funding/App.d.ts} +1717 -3035
- package/dist/apps/funding/App.d.ts.map +1 -0
- package/dist/apps/funding/App.js +46 -0
- package/dist/apps/funding/App.js.map +1 -0
- package/dist/apps/funding/Inventory.d.ts +5 -0
- package/dist/apps/funding/Inventory.d.ts.map +1 -0
- package/dist/apps/funding/Inventory.js +25 -0
- package/dist/apps/funding/Inventory.js.map +1 -0
- package/dist/apps/funding/ProviderAttempts.d.ts +5 -0
- package/dist/apps/funding/ProviderAttempts.d.ts.map +1 -0
- package/dist/apps/funding/ProviderAttempts.js +24 -0
- package/dist/apps/funding/ProviderAttempts.js.map +1 -0
- package/dist/apps/funding/index.d.ts +2 -0
- package/dist/apps/funding/index.d.ts.map +1 -0
- package/dist/apps/funding/index.js +2 -0
- package/dist/apps/funding/index.js.map +1 -0
- package/dist/apps/funding/routes/chains.d.ts +169 -0
- package/dist/apps/funding/routes/chains.d.ts.map +1 -0
- package/dist/apps/funding/routes/chains.js +80 -0
- package/dist/apps/funding/routes/chains.js.map +1 -0
- package/dist/apps/funding/routes/deposit-addresses.d.ts +2388 -0
- package/dist/apps/funding/routes/deposit-addresses.d.ts.map +1 -0
- package/dist/apps/funding/routes/deposit-addresses.js +860 -0
- package/dist/apps/funding/routes/deposit-addresses.js.map +1 -0
- package/dist/apps/funding/routes/providers.d.ts +91 -0
- package/dist/apps/funding/routes/providers.d.ts.map +1 -0
- package/dist/apps/funding/routes/providers.js +56 -0
- package/dist/apps/funding/routes/providers.js.map +1 -0
- package/dist/apps/funding/routes/quotes.d.ts +426 -0
- package/dist/apps/funding/routes/quotes.d.ts.map +1 -0
- package/dist/apps/funding/routes/quotes.js +188 -0
- package/dist/apps/funding/routes/quotes.js.map +1 -0
- package/dist/apps/funding/routes/transfers.d.ts +1999 -0
- package/dist/apps/funding/routes/transfers.d.ts.map +1 -0
- package/dist/apps/funding/routes/transfers.js +614 -0
- package/dist/apps/funding/routes/transfers.js.map +1 -0
- package/dist/apps/index.d.ts +1 -0
- package/dist/apps/index.d.ts.map +1 -1
- package/dist/apps/index.js +1 -0
- package/dist/apps/index.js.map +1 -1
- package/dist/apps/management/App.d.ts +430 -165
- package/dist/apps/management/App.d.ts.map +1 -1
- package/dist/apps/management/routes/api-keys.d.ts +298 -21
- package/dist/apps/management/routes/api-keys.d.ts.map +1 -1
- package/dist/apps/management/routes/api-keys.js +75 -1
- package/dist/apps/management/routes/api-keys.js.map +1 -1
- package/dist/apps/management/routes/billing.d.ts +6 -6
- package/dist/apps/management/routes/faucet.d.ts +35 -35
- package/dist/apps/management/routes/invitations.d.ts +48 -48
- package/dist/apps/management/routes/invite-links.d.ts +38 -38
- package/dist/apps/management/routes/members.d.ts +69 -69
- package/dist/apps/management/routes/orgs.d.ts +37 -37
- package/dist/apps/management/routes/projects.d.ts +25 -25
- package/dist/apps/management/routes/scopes.d.ts +1 -1
- package/dist/apps/management/routes/usage.d.ts +72 -72
- package/dist/apps/management/routes/verified-token-requests.d.ts +18 -18
- package/dist/apps/management/routes/webhooks.d.ts +128 -128
- package/dist/apps/mcp.d.ts +2 -3
- package/dist/apps/mcp.d.ts.map +1 -1
- package/dist/apps/mcp.js +16 -14
- package/dist/apps/mcp.js.map +1 -1
- package/dist/apps/metadata.d.ts +4 -0
- package/dist/apps/metadata.d.ts.map +1 -1
- package/dist/apps/metadata.js +10 -0
- package/dist/apps/metadata.js.map +1 -1
- package/dist/apps/mpp/App.d.ts +2 -2
- package/dist/cloudflare.d.ts +50 -0
- package/dist/cloudflare.d.ts.map +1 -1
- package/dist/cloudflare.js +178 -0
- package/dist/cloudflare.js.map +1 -1
- package/dist/db/Db.d.ts +2 -0
- package/dist/db/Db.d.ts.map +1 -1
- package/dist/db/Db.js +37 -0
- package/dist/db/Db.js.map +1 -1
- package/dist/db/Schema.d.ts +12 -0
- package/dist/db/Schema.d.ts.map +1 -1
- package/dist/db/Schema.js +20 -0
- package/dist/db/Schema.js.map +1 -1
- package/dist/db/tables/fundingDepositAddresses.d.ts +13 -0
- package/dist/db/tables/fundingDepositAddresses.d.ts.map +1 -1
- package/dist/db/tables/fundingDepositAddresses.js +12 -0
- package/dist/db/tables/fundingDepositAddresses.js.map +1 -1
- package/dist/db/tables/fundingDepositRequestObservations.d.ts +45 -0
- package/dist/db/tables/fundingDepositRequestObservations.d.ts.map +1 -0
- package/dist/db/tables/fundingDepositRequestObservations.js +46 -0
- package/dist/db/tables/fundingDepositRequestObservations.js.map +1 -0
- package/dist/db/tables/fundingDeposits.d.ts +57 -1
- package/dist/db/tables/fundingDeposits.d.ts.map +1 -1
- package/dist/db/tables/fundingDeposits.js +82 -0
- package/dist/db/tables/fundingDeposits.js.map +1 -1
- package/dist/internal/Auth.d.ts +11 -11
- package/dist/internal/Auth.d.ts.map +1 -1
- package/dist/internal/Auth.js +41 -15
- package/dist/internal/Auth.js.map +1 -1
- package/dist/internal/Cache.js +1 -1
- package/dist/internal/Cache.js.map +1 -1
- package/dist/internal/EdgeCache.d.ts +2 -2
- package/dist/internal/EdgeCache.d.ts.map +1 -1
- package/dist/internal/EdgeCache.js +10 -4
- package/dist/internal/EdgeCache.js.map +1 -1
- package/dist/internal/IpAllowlist.d.ts +15 -0
- package/dist/internal/IpAllowlist.d.ts.map +1 -0
- package/dist/internal/IpAllowlist.js +27 -0
- package/dist/internal/IpAllowlist.js.map +1 -0
- package/dist/internal/OpenApi.d.ts +1 -1
- package/dist/internal/OpenApi.js +1 -1
- package/dist/internal/OpenApi.js.map +1 -1
- package/dist/internal/Tidx.d.ts +6 -0
- package/dist/internal/Tidx.d.ts.map +1 -1
- package/dist/internal/Tidx.js +13 -3
- package/dist/internal/Tidx.js.map +1 -1
- package/dist/internal/Viem.d.ts +8 -0
- package/dist/internal/Viem.d.ts.map +1 -1
- package/dist/internal/Viem.js +12 -5
- package/dist/internal/Viem.js.map +1 -1
- package/dist/internal/funding/Deposit.d.ts +42 -0
- package/dist/internal/funding/Deposit.d.ts.map +1 -1
- package/dist/internal/funding/Deposit.js +37 -5
- package/dist/internal/funding/Deposit.js.map +1 -1
- package/dist/internal/funding/Evidence.d.ts +1 -5
- package/dist/internal/funding/Evidence.d.ts.map +1 -1
- package/dist/internal/funding/Evidence.js +4 -3
- package/dist/internal/funding/Evidence.js.map +1 -1
- package/dist/internal/funding/Provider.d.ts +102 -0
- package/dist/internal/funding/Provider.d.ts.map +1 -1
- package/dist/internal/funding/Provider.js +5 -0
- package/dist/internal/funding/Provider.js.map +1 -1
- package/dist/internal/funding/Reconciliation.d.ts +16 -2
- package/dist/internal/funding/Reconciliation.d.ts.map +1 -1
- package/dist/internal/funding/Reconciliation.js +257 -48
- package/dist/internal/funding/Reconciliation.js.map +1 -1
- package/dist/internal/funding/SourceObservation.d.ts +108 -0
- package/dist/internal/funding/SourceObservation.d.ts.map +1 -0
- package/dist/internal/funding/SourceObservation.js +143 -0
- package/dist/internal/funding/SourceObservation.js.map +1 -0
- package/dist/internal/funding/Subsidy.d.ts +2 -2
- package/dist/internal/funding/Subsidy.d.ts.map +1 -1
- package/dist/internal/funding/Subsidy.js +1 -1
- package/dist/internal/funding/Subsidy.js.map +1 -1
- package/dist/internal/funding/index.d.ts +1 -0
- package/dist/internal/funding/index.d.ts.map +1 -1
- package/dist/internal/funding/index.js +1 -0
- package/dist/internal/funding/index.js.map +1 -1
- package/dist/internal/funding/providers/relay.d.ts +43 -1
- package/dist/internal/funding/providers/relay.d.ts.map +1 -1
- package/dist/internal/funding/providers/relay.js +434 -27
- package/dist/internal/funding/providers/relay.js.map +1 -1
- package/package.json +3 -3
- package/src/ApiKey.test.ts +35 -0
- package/src/ApiKey.ts +27 -0
- package/src/ApiKeys.test.ts +29 -0
- package/src/ApiKeys.ts +11 -3
- package/src/App.test.ts +23 -5
- package/src/App.ts +76 -5
- package/src/Client.test-d.ts +171 -19
- package/src/admin/apps/api-keys.test.ts +25 -1
- package/src/admin/apps/api-keys.ts +6 -2
- package/src/admin/ui.generated.ts +67 -67
- package/src/analytics/Analytics.ts +4 -0
- package/src/apps/composition.test.ts +100 -2
- package/src/apps/data/App.test.ts +0 -12
- package/src/apps/data/App.ts +4 -8
- package/src/apps/data/routes/earn.test.ts +283 -0
- package/src/apps/data/routes/earn.ts +800 -3
- package/src/apps/data/routes/indexer.ts +2 -1
- package/src/apps/data/routes/rpc.ts +2 -0
- package/src/apps/data/routes/tokens.test.ts +6 -8
- package/src/apps/funding/Access.ts +26 -0
- package/src/apps/funding/App.test.ts +78 -0
- package/src/apps/funding/App.ts +63 -0
- package/src/apps/funding/Inventory.ts +30 -0
- package/src/apps/funding/ProviderAttempts.ts +26 -0
- package/src/apps/funding/index.ts +1 -0
- package/src/apps/funding/routes/chains.test.ts +78 -0
- package/src/apps/funding/routes/chains.ts +101 -0
- package/src/apps/funding/routes/deposit-addresses.test.ts +1628 -0
- package/src/apps/funding/routes/deposit-addresses.ts +1015 -0
- package/src/apps/funding/routes/providers.test.ts +165 -0
- package/src/apps/funding/routes/providers.ts +73 -0
- package/src/apps/funding/routes/quotes.test.ts +511 -0
- package/src/apps/funding/routes/quotes.ts +205 -0
- package/src/apps/funding/routes/transfers.test.ts +1255 -0
- package/src/apps/funding/routes/transfers.ts +704 -0
- package/src/apps/index.ts +1 -0
- package/src/apps/management/routes/api-keys.test.ts +98 -0
- package/src/apps/management/routes/api-keys.ts +96 -1
- package/src/apps/mcp.test.ts +17 -2
- package/src/apps/mcp.ts +18 -13
- package/src/apps/metadata.ts +12 -0
- package/src/apps/mpp/internal/Policy.test.ts +7 -1
- package/src/cloudflare.ts +279 -0
- package/src/db/Db.ts +62 -0
- package/src/db/Schema.ts +24 -0
- package/src/db/tables/fundingDepositAddresses.ts +28 -0
- package/src/db/tables/fundingDepositRequestObservations.test.ts +106 -0
- package/src/db/tables/fundingDepositRequestObservations.ts +99 -0
- package/src/db/tables/fundingDeposits.test.ts +138 -0
- package/src/db/tables/fundingDeposits.ts +145 -1
- package/src/internal/Auth.test.ts +177 -5
- package/src/internal/Auth.ts +48 -18
- package/src/internal/Cache.test.ts +37 -3
- package/src/internal/Cache.ts +1 -1
- package/src/internal/EdgeCache.test.ts +7 -7
- package/src/internal/EdgeCache.ts +13 -4
- package/src/internal/IpAllowlist.test.ts +52 -0
- package/src/internal/IpAllowlist.ts +39 -0
- package/src/internal/Log.test.ts +7 -1
- package/src/internal/OpenApi.ts +1 -1
- package/src/internal/Tidx.test.ts +28 -0
- package/src/internal/Tidx.ts +19 -3
- package/src/internal/Viem.test.ts +28 -0
- package/src/internal/Viem.ts +21 -5
- package/src/internal/funding/Deposit.ts +74 -5
- package/src/internal/funding/Evidence.test.ts +2 -2
- package/src/internal/funding/Evidence.ts +4 -9
- package/src/internal/funding/Provider.ts +115 -0
- package/src/internal/funding/Reconciliation.local.test.ts +7 -0
- package/src/internal/funding/Reconciliation.test.ts +1052 -35
- package/src/internal/funding/Reconciliation.ts +328 -56
- package/src/internal/funding/SourceObservation.test.ts +301 -0
- package/src/internal/funding/SourceObservation.ts +267 -0
- package/src/internal/funding/Subsidy.ts +2 -2
- package/src/internal/funding/index.test.ts +1 -0
- package/src/internal/funding/index.ts +1 -0
- package/src/internal/funding/providers/relay.test.ts +94 -4
- package/src/internal/funding/providers/relay.ts +528 -27
- package/dist/apps/data/routes/funding.d.ts.map +0 -1
- package/dist/apps/data/routes/funding.js +0 -1557
- package/dist/apps/data/routes/funding.js.map +0 -1
- package/src/apps/data/routes/funding.test.ts +0 -2994
- package/src/apps/data/routes/funding.ts +0 -1821
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Hex } from 'ox';
|
|
2
2
|
import * as Db from '../../db/Db.js';
|
|
3
3
|
import * as FundingDepositAddresses from '../../db/tables/fundingDepositAddresses.js';
|
|
4
|
+
import * as FundingDepositRequestObservations from '../../db/tables/fundingDepositRequestObservations.js';
|
|
4
5
|
import * as FundingDeposits from '../../db/tables/fundingDeposits.js';
|
|
5
6
|
import * as Value from '../Value.js';
|
|
6
7
|
import * as Deposit from './Deposit.js';
|
|
@@ -9,23 +10,34 @@ import * as Subsidy from './Subsidy.js';
|
|
|
9
10
|
const defaultBatchSize = 25;
|
|
10
11
|
const defaultLeaseMs = 2 * 60_000;
|
|
11
12
|
const defaultPollIntervalMs = 60_000;
|
|
13
|
+
const followUpDelaySeconds = { delivery: 1, provider: 5, settlement: 2 };
|
|
12
14
|
const maximumPages = 100;
|
|
15
|
+
const maximumFollowUpAttempts = 6;
|
|
13
16
|
/** Creates a reusable-address reconciliation tracker. */
|
|
14
17
|
export function createTracker(options) {
|
|
15
18
|
const now = options.now ?? (() => new Date());
|
|
16
19
|
const batchSize = options.batchSize ?? defaultBatchSize;
|
|
17
20
|
const leaseMs = options.leaseMs ?? defaultLeaseMs;
|
|
18
21
|
const pollIntervalMs = options.pollIntervalMs ?? defaultPollIntervalMs;
|
|
19
|
-
const record = (outcome, providerId) => {
|
|
22
|
+
const record = (outcome, providerId, trigger) => {
|
|
20
23
|
options.metrics?.count('funding_deposit_reconciliation_count', 1, {
|
|
21
24
|
outcome,
|
|
22
25
|
provider: providerId,
|
|
26
|
+
trigger,
|
|
23
27
|
});
|
|
24
28
|
};
|
|
25
29
|
return {
|
|
26
30
|
async reconcile(message) {
|
|
27
31
|
const database = Db.get(options.db);
|
|
28
32
|
const startedAt = now();
|
|
33
|
+
// Legacy poll messages carry a lease version; legacy webhook messages do not.
|
|
34
|
+
const trigger = (() => {
|
|
35
|
+
if (message.trigger)
|
|
36
|
+
return message.trigger;
|
|
37
|
+
if (message.pollLeaseVersion !== undefined)
|
|
38
|
+
return 'poll';
|
|
39
|
+
return 'webhook';
|
|
40
|
+
})();
|
|
29
41
|
const claimed = await claim(database, message, {
|
|
30
42
|
leaseUntil: new Date(startedAt.getTime() + leaseMs).toISOString(),
|
|
31
43
|
now: startedAt.toISOString(),
|
|
@@ -35,7 +47,7 @@ export function createTracker(options) {
|
|
|
35
47
|
const provider = options.providers.find((candidate) => candidate.id === claimed.providerId);
|
|
36
48
|
if (!provider || !Provider.canListDepositAddressRequests(provider)) {
|
|
37
49
|
await fail(database, claimed, startedAt, pollIntervalMs);
|
|
38
|
-
record('provider_unavailable', claimed.providerId);
|
|
50
|
+
record('provider_unavailable', claimed.providerId, trigger);
|
|
39
51
|
return { type: 'provider_unavailable' };
|
|
40
52
|
}
|
|
41
53
|
const heartbeat = maintainLease(database, claimed, { leaseMs, now });
|
|
@@ -46,16 +58,38 @@ export function createTracker(options) {
|
|
|
46
58
|
requestId: message.requestId,
|
|
47
59
|
signal: options.signal,
|
|
48
60
|
});
|
|
61
|
+
if (trigger === 'poll')
|
|
62
|
+
await FundingDepositRequestObservations.observePoll(database, {
|
|
63
|
+
depositAddressId: claimed.id,
|
|
64
|
+
observedAt: now().toISOString(),
|
|
65
|
+
providerRequestIds: requests.requests.map((request) => request.id),
|
|
66
|
+
});
|
|
67
|
+
const webhookUpdateObserved = (() => {
|
|
68
|
+
const timing = message.webhookTiming;
|
|
69
|
+
if (!timing)
|
|
70
|
+
return true;
|
|
71
|
+
if (!message.requestId)
|
|
72
|
+
return false;
|
|
73
|
+
// Relay can send a webhook before its requests API indexes the same update.
|
|
74
|
+
return requests.requests.some((request) => request.id === message.requestId && request.updatedAt >= timing.providerUpdatedAt);
|
|
75
|
+
})();
|
|
49
76
|
heartbeat.assert();
|
|
50
77
|
let created = 0;
|
|
51
78
|
let updated = 0;
|
|
52
|
-
const pendingRequestIds = new Set(
|
|
79
|
+
const pendingRequestIds = new Set([
|
|
80
|
+
...requests.pendingRequestIds,
|
|
81
|
+
...(message.requestId ? [message.requestId] : []),
|
|
82
|
+
]);
|
|
83
|
+
let followUpKind;
|
|
53
84
|
for (const request of requests.requests) {
|
|
54
85
|
const result = await reconcileRequest(database, {
|
|
55
86
|
address: claimed,
|
|
56
87
|
metrics: options.metrics,
|
|
88
|
+
provider,
|
|
57
89
|
request,
|
|
90
|
+
signal: options.signal,
|
|
58
91
|
subsidies: options.subsidies,
|
|
92
|
+
trigger,
|
|
59
93
|
verifyTransfers: options.verifyTransfers,
|
|
60
94
|
});
|
|
61
95
|
heartbeat.assert();
|
|
@@ -63,9 +97,19 @@ export function createTracker(options) {
|
|
|
63
97
|
updated += result.updated;
|
|
64
98
|
if (result.terminal)
|
|
65
99
|
pendingRequestIds.delete(request.id);
|
|
66
|
-
else
|
|
100
|
+
else {
|
|
67
101
|
pendingRequestIds.add(request.id);
|
|
102
|
+
followUpKind = result.followUp ?? followUpKind ?? 'provider';
|
|
103
|
+
}
|
|
68
104
|
}
|
|
105
|
+
const awaitsProvider = await FundingDeposits.hasUnattributed(database, claimed.id);
|
|
106
|
+
if (message.requestId && message.webhookTiming && !webhookUpdateObserved)
|
|
107
|
+
pendingRequestIds.add(message.requestId);
|
|
108
|
+
if (created > 0)
|
|
109
|
+
options.metrics?.count('funding_deposit_detection_count', created, {
|
|
110
|
+
provider: claimed.providerId,
|
|
111
|
+
trigger,
|
|
112
|
+
});
|
|
69
113
|
const leaseFailure = await heartbeat.stop();
|
|
70
114
|
if (leaseFailure !== undefined)
|
|
71
115
|
throw leaseFailure;
|
|
@@ -76,20 +120,56 @@ export function createTracker(options) {
|
|
|
76
120
|
nextPollAt: new Date(completedAt.getTime() + pollIntervalMs).toISOString(),
|
|
77
121
|
pollLeaseVersion: claimed.pollLeaseVersion,
|
|
78
122
|
providerRequestIds: claimed.providerRequestIds,
|
|
79
|
-
providerState: reconciliationState(claimed.providerState,
|
|
80
|
-
...pendingRequestIds,
|
|
81
|
-
|
|
123
|
+
providerState: reconciliationState(claimed.providerState, {
|
|
124
|
+
pendingRequestIds: [...pendingRequestIds],
|
|
125
|
+
requests,
|
|
126
|
+
...(message.webhookTiming && message.requestId && webhookUpdateObserved
|
|
127
|
+
? {
|
|
128
|
+
webhookTiming: {
|
|
129
|
+
...message.webhookTiming,
|
|
130
|
+
reconciliationCompletedAt: completedAt.toISOString(),
|
|
131
|
+
requestId: message.requestId,
|
|
132
|
+
},
|
|
133
|
+
}
|
|
134
|
+
: {}),
|
|
135
|
+
}),
|
|
82
136
|
});
|
|
83
137
|
if (!stored)
|
|
84
138
|
return { type: 'stale' };
|
|
85
|
-
|
|
86
|
-
|
|
139
|
+
if (pendingRequestIds.size > 0 || awaitsProvider) {
|
|
140
|
+
const followUp = nextFollowUp(message, followUpKind ?? 'provider');
|
|
141
|
+
if (followUp)
|
|
142
|
+
await options
|
|
143
|
+
.dispatch({
|
|
144
|
+
addressId: claimed.id,
|
|
145
|
+
followUp: followUp.state,
|
|
146
|
+
...(message.requestId ? { requestId: message.requestId } : {}),
|
|
147
|
+
trigger,
|
|
148
|
+
type: 'funding:deposit-address:reconcile',
|
|
149
|
+
...(message.webhookTiming && !webhookUpdateObserved
|
|
150
|
+
? { webhookTiming: message.webhookTiming }
|
|
151
|
+
: {}),
|
|
152
|
+
}, { delaySeconds: followUp.delaySeconds })
|
|
153
|
+
.catch((cause) => {
|
|
154
|
+
record('follow_up_enqueue_failed', claimed.providerId, trigger);
|
|
155
|
+
throw cause;
|
|
156
|
+
});
|
|
157
|
+
record(followUp ? 'follow_up_enqueued' : 'follow_up_exhausted', claimed.providerId, trigger);
|
|
158
|
+
}
|
|
159
|
+
if (message.webhookTiming && webhookUpdateObserved)
|
|
160
|
+
recordWebhookLatency(options.metrics, {
|
|
161
|
+
completedAt,
|
|
162
|
+
providerId: claimed.providerId,
|
|
163
|
+
timing: message.webhookTiming,
|
|
164
|
+
});
|
|
165
|
+
record('completed', claimed.providerId, trigger);
|
|
166
|
+
options.metrics?.histogram('funding_deposit_reconciliation_duration_ms', completedAt.getTime() - startedAt.getTime(), { provider: claimed.providerId, trigger });
|
|
87
167
|
return { created, type: 'completed', updated };
|
|
88
168
|
}
|
|
89
169
|
catch (cause) {
|
|
90
170
|
const leaseFailure = await heartbeat.stop();
|
|
91
171
|
await fail(database, claimed, now(), pollIntervalMs);
|
|
92
|
-
record('failed', claimed.providerId);
|
|
172
|
+
record('failed', claimed.providerId, trigger);
|
|
93
173
|
throw leaseFailure ?? cause;
|
|
94
174
|
}
|
|
95
175
|
finally {
|
|
@@ -118,14 +198,15 @@ export function createTracker(options) {
|
|
|
118
198
|
await options.dispatch({
|
|
119
199
|
addressId: address.id,
|
|
120
200
|
pollLeaseVersion: address.pollLeaseVersion,
|
|
201
|
+
trigger: 'poll',
|
|
121
202
|
type: 'funding:deposit-address:reconcile',
|
|
122
203
|
});
|
|
123
|
-
record('enqueued', provider.id);
|
|
204
|
+
record('enqueued', provider.id, 'poll');
|
|
124
205
|
}
|
|
125
206
|
catch {
|
|
126
207
|
failed += 1;
|
|
127
208
|
await fail(database, address, startedAt, pollIntervalMs);
|
|
128
|
-
record('enqueue_failed', provider.id);
|
|
209
|
+
record('enqueue_failed', provider.id, 'poll');
|
|
129
210
|
}
|
|
130
211
|
}
|
|
131
212
|
if (claimed >= batchSize)
|
|
@@ -264,54 +345,126 @@ function readHighWater(state) {
|
|
|
264
345
|
: {}),
|
|
265
346
|
};
|
|
266
347
|
}
|
|
267
|
-
function reconciliationState(state,
|
|
348
|
+
function reconciliationState(state, options) {
|
|
268
349
|
const current = state && typeof state === 'object' ? state : {};
|
|
350
|
+
const reconciliation = (() => {
|
|
351
|
+
const value = current['reconciliation'];
|
|
352
|
+
if (value && typeof value === 'object')
|
|
353
|
+
return value;
|
|
354
|
+
return {};
|
|
355
|
+
})();
|
|
269
356
|
return {
|
|
270
357
|
...current,
|
|
271
358
|
reconciliation: {
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
359
|
+
...reconciliation,
|
|
360
|
+
pendingRequestIds: options.pendingRequestIds,
|
|
361
|
+
requestIds: options.requests.highWaterRequestIds,
|
|
362
|
+
...(options.requests.highWaterUpdatedAt
|
|
363
|
+
? { updatedAt: options.requests.highWaterUpdatedAt }
|
|
364
|
+
: {}),
|
|
365
|
+
...(options.webhookTiming ? { webhookTiming: options.webhookTiming } : {}),
|
|
275
366
|
},
|
|
276
367
|
};
|
|
277
368
|
}
|
|
369
|
+
async function observeProviderDelivery(options, verified) {
|
|
370
|
+
const [entry] = verified;
|
|
371
|
+
if (!entry ||
|
|
372
|
+
verified.length !== 1 ||
|
|
373
|
+
options.address.deliveryStrategy !== 'provider' ||
|
|
374
|
+
options.address.providerOutputToken.tokenKey !==
|
|
375
|
+
options.address.snapshot.destinationToken.tokenKey ||
|
|
376
|
+
(options.request.status === 'success' &&
|
|
377
|
+
options.request.destinationTransactionHashes.length > 0) ||
|
|
378
|
+
!options.provider ||
|
|
379
|
+
!Provider.canObserveDepositAddressRequest(options.provider))
|
|
380
|
+
return undefined;
|
|
381
|
+
const result = await options.provider
|
|
382
|
+
.observeDepositAddressRequest({
|
|
383
|
+
address: options.address.address,
|
|
384
|
+
destinationChain: options.address.snapshot.destinationChain,
|
|
385
|
+
destinationToken: options.address.providerOutputToken,
|
|
386
|
+
providerState: entry.deposit.providerState ?? undefined,
|
|
387
|
+
recipient: options.address.recipient,
|
|
388
|
+
refundAddress: options.address.refundAddress,
|
|
389
|
+
request: options.request,
|
|
390
|
+
source: entry.source,
|
|
391
|
+
sourceChain: options.address.snapshot.sourceChain,
|
|
392
|
+
sourceToken: options.address.snapshot.sourceToken,
|
|
393
|
+
}, options.signal ?? new AbortController().signal)
|
|
394
|
+
.catch((cause) => {
|
|
395
|
+
if (options.signal?.aborted)
|
|
396
|
+
throw cause;
|
|
397
|
+
return undefined;
|
|
398
|
+
});
|
|
399
|
+
options.metrics?.count('funding_deposit_delivery_observation_count', 1, {
|
|
400
|
+
outcome: result?.type ?? 'failed',
|
|
401
|
+
provider: options.address.providerId,
|
|
402
|
+
});
|
|
403
|
+
return result;
|
|
404
|
+
}
|
|
278
405
|
/** Reconciles one provider request against verified chain evidence. */
|
|
279
406
|
export async function reconcileRequest(db, options) {
|
|
407
|
+
const trigger = options.trigger ?? 'poll';
|
|
408
|
+
const observation = await FundingDepositRequestObservations.get(db, {
|
|
409
|
+
depositAddressId: options.address.id,
|
|
410
|
+
providerRequestId: options.request.id,
|
|
411
|
+
});
|
|
412
|
+
if (observation)
|
|
413
|
+
await FundingDeposits.recordRequestObservation(db, {
|
|
414
|
+
depositAddressId: observation.depositAddressId,
|
|
415
|
+
...(observation.pollObservedAt ? { pollObservedAt: observation.pollObservedAt } : {}),
|
|
416
|
+
providerRequestId: observation.providerRequestId,
|
|
417
|
+
...(observation.webhookReceivedAt
|
|
418
|
+
? { webhookReceivedAt: observation.webhookReceivedAt }
|
|
419
|
+
: {}),
|
|
420
|
+
});
|
|
280
421
|
let created = 0;
|
|
422
|
+
let followUp;
|
|
281
423
|
const observed = [];
|
|
282
424
|
// Persist provider observations first so transient chain failures do not hide acknowledged deposits.
|
|
283
425
|
for (const transactionHash of unique(options.request.sourceTransactionHashes)) {
|
|
284
|
-
|
|
426
|
+
const deposits = await FundingDeposits.withSourceTransaction(db, {
|
|
285
427
|
depositAddressId: options.address.id,
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
if (deposits.length === 0)
|
|
290
|
-
deposits = await FundingDeposits.listBySourceTransaction(db, {
|
|
291
|
-
depositAddressId: options.address.id,
|
|
292
|
-
sourceTransactionHash: transactionHash,
|
|
293
|
-
});
|
|
294
|
-
if (deposits.length === 0) {
|
|
295
|
-
deposits = [
|
|
296
|
-
await Deposit.create(db, {
|
|
297
|
-
now: new Date(options.request.createdAt),
|
|
428
|
+
fn: async (tx) => {
|
|
429
|
+
let records = await FundingDeposits.listByProviderObservation(tx, {
|
|
430
|
+
depositAddressId: options.address.id,
|
|
298
431
|
providerRequestId: options.request.id,
|
|
299
|
-
snapshot: {
|
|
300
|
-
depositAddressId: options.address.id,
|
|
301
|
-
destinationChain: options.address.snapshot.destinationChain,
|
|
302
|
-
destinationToken: options.address.snapshot.destinationToken,
|
|
303
|
-
provider: options.address.snapshot.provider,
|
|
304
|
-
recipient: options.address.recipient,
|
|
305
|
-
refundAddress: options.address.refundAddress,
|
|
306
|
-
sourceChain: options.address.snapshot.sourceChain,
|
|
307
|
-
sourceToken: options.address.snapshot.sourceToken,
|
|
308
|
-
sourceTransactionHashes: [transactionHash],
|
|
309
|
-
},
|
|
310
432
|
sourceTransactionHash: transactionHash,
|
|
311
|
-
})
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
433
|
+
});
|
|
434
|
+
if (records.length === 0)
|
|
435
|
+
records = await FundingDeposits.listBySourceTransaction(tx, {
|
|
436
|
+
depositAddressId: options.address.id,
|
|
437
|
+
sourceTransactionHash: transactionHash,
|
|
438
|
+
});
|
|
439
|
+
if (records.length > 0)
|
|
440
|
+
return records;
|
|
441
|
+
created += 1;
|
|
442
|
+
return [
|
|
443
|
+
await Deposit.create(tx, {
|
|
444
|
+
detectionTrigger: trigger,
|
|
445
|
+
now: new Date(options.request.createdAt),
|
|
446
|
+
...(observation?.pollObservedAt ? { pollObservedAt: observation.pollObservedAt } : {}),
|
|
447
|
+
providerRequestId: options.request.id,
|
|
448
|
+
snapshot: {
|
|
449
|
+
depositAddressId: options.address.id,
|
|
450
|
+
destinationChain: options.address.snapshot.destinationChain,
|
|
451
|
+
destinationToken: options.address.snapshot.destinationToken,
|
|
452
|
+
provider: options.address.snapshot.provider,
|
|
453
|
+
recipient: options.address.recipient,
|
|
454
|
+
refundAddress: options.address.refundAddress,
|
|
455
|
+
sourceChain: options.address.snapshot.sourceChain,
|
|
456
|
+
sourceToken: options.address.snapshot.sourceToken,
|
|
457
|
+
sourceTransactionHashes: [transactionHash],
|
|
458
|
+
},
|
|
459
|
+
sourceTransactionHash: transactionHash,
|
|
460
|
+
...(observation?.webhookReceivedAt
|
|
461
|
+
? { webhookReceivedAt: observation.webhookReceivedAt }
|
|
462
|
+
: {}),
|
|
463
|
+
}),
|
|
464
|
+
];
|
|
465
|
+
},
|
|
466
|
+
sourceTransactionHash: transactionHash,
|
|
467
|
+
});
|
|
315
468
|
observed.push({ deposits, transactionHash, transfers: [] });
|
|
316
469
|
}
|
|
317
470
|
const sources = await Promise.all(observed.map(async (source) => ({
|
|
@@ -347,7 +500,9 @@ export async function reconcileRequest(db, options) {
|
|
|
347
500
|
: record.providerTransferIndex === providerTransferIndex);
|
|
348
501
|
if (!deposit) {
|
|
349
502
|
deposit = await Deposit.create(db, {
|
|
503
|
+
detectionTrigger: trigger,
|
|
350
504
|
now: new Date(options.request.createdAt),
|
|
505
|
+
...(observation?.pollObservedAt ? { pollObservedAt: observation.pollObservedAt } : {}),
|
|
351
506
|
providerRequestId: options.request.id,
|
|
352
507
|
providerTransferIndex,
|
|
353
508
|
snapshot: {
|
|
@@ -366,6 +521,9 @@ export async function reconcileRequest(db, options) {
|
|
|
366
521
|
},
|
|
367
522
|
sourceTransactionHash: transfer.transactionHash,
|
|
368
523
|
sourceTransferIndex: transfer.transferIndex,
|
|
524
|
+
...(observation?.webhookReceivedAt
|
|
525
|
+
? { webhookReceivedAt: observation.webhookReceivedAt }
|
|
526
|
+
: {}),
|
|
369
527
|
});
|
|
370
528
|
source.deposits.push(deposit);
|
|
371
529
|
created += 1;
|
|
@@ -374,7 +532,9 @@ export async function reconcileRequest(db, options) {
|
|
|
374
532
|
const result = await Deposit.transition(db, {
|
|
375
533
|
expectedVersion: deposit.version,
|
|
376
534
|
id: deposit.id,
|
|
535
|
+
providerRequestId: options.request.id,
|
|
377
536
|
providerRequestIds: unique([...deposit.providerRequestIds, options.request.id]),
|
|
537
|
+
providerTransferIndex,
|
|
378
538
|
snapshot: {
|
|
379
539
|
...deposit.snapshot,
|
|
380
540
|
...(options.address.snapshot.subsidize ? { destinationAmountRequired } : {}),
|
|
@@ -389,21 +549,31 @@ export async function reconcileRequest(db, options) {
|
|
|
389
549
|
updatedIds.add(deposit.id);
|
|
390
550
|
}
|
|
391
551
|
}
|
|
392
|
-
verified.push({ deposit, required, sourceAmount: BigInt(transfer.amount) });
|
|
552
|
+
verified.push({ deposit, required, source: transfer, sourceAmount: BigInt(transfer.amount) });
|
|
393
553
|
}
|
|
394
554
|
}
|
|
395
555
|
if (verified.length === 0)
|
|
396
556
|
return { created, terminal: false, updated: updatedIds.size };
|
|
397
557
|
if (!sourceEvidenceComplete)
|
|
398
558
|
return { created, terminal: false, updated: updatedIds.size };
|
|
399
|
-
const
|
|
559
|
+
const deliveryObservation = await observeProviderDelivery(options, verified);
|
|
560
|
+
if (deliveryObservation?.type === 'pending')
|
|
561
|
+
followUp = 'delivery';
|
|
562
|
+
const destinationTransactionHashes = unique([
|
|
563
|
+
...options.request.destinationTransactionHashes,
|
|
564
|
+
...(deliveryObservation?.type === 'verified'
|
|
565
|
+
? deliveryObservation.destinationTransactionHashes
|
|
566
|
+
: []),
|
|
567
|
+
]);
|
|
568
|
+
const destinationEvidence = await Promise.all(destinationTransactionHashes.map((transactionHash) => options.verifyTransfers({
|
|
400
569
|
chain: options.address.snapshot.destinationChain,
|
|
401
570
|
recipient: options.address.recipient,
|
|
402
571
|
token: options.address.providerOutputToken,
|
|
403
572
|
transactionHash,
|
|
404
573
|
})));
|
|
405
574
|
const destinationTransfers = destinationEvidence.flat();
|
|
406
|
-
const providerEvidenceComplete = options.request.status === 'success' &&
|
|
575
|
+
const providerEvidenceComplete = (options.request.status === 'success' || deliveryObservation?.type === 'verified') &&
|
|
576
|
+
destinationEvidence.length > 0 &&
|
|
407
577
|
destinationEvidence.every((transfers) => transfers.length > 0);
|
|
408
578
|
const providerOutput = destinationTransfers.reduce((total, transfer) => total + BigInt(transfer.amount), 0n);
|
|
409
579
|
const totalRequired = verified.reduce((total, entry) => total + entry.required, 0n);
|
|
@@ -435,6 +605,8 @@ export async function reconcileRequest(db, options) {
|
|
|
435
605
|
});
|
|
436
606
|
if (settlement.status === 'bridging' || settlement.status === 'settling')
|
|
437
607
|
terminal = false;
|
|
608
|
+
if (settlement.status === 'settling')
|
|
609
|
+
followUp = 'settlement';
|
|
438
610
|
const destinationAmount = Value.tokenAmount({
|
|
439
611
|
baseUnits: delivered + settlement.delivered,
|
|
440
612
|
currency: options.address.snapshot.destinationToken.currency,
|
|
@@ -453,9 +625,18 @@ export async function reconcileRequest(db, options) {
|
|
|
453
625
|
}
|
|
454
626
|
: {}),
|
|
455
627
|
providerRequestIds: unique([...deposit.providerRequestIds, options.request.id]),
|
|
628
|
+
...(deliveryObservation?.providerState
|
|
629
|
+
? {
|
|
630
|
+
providerState: {
|
|
631
|
+
...deposit.providerState,
|
|
632
|
+
...deliveryObservation.providerState,
|
|
633
|
+
},
|
|
634
|
+
}
|
|
635
|
+
: {}),
|
|
456
636
|
providerTransactionHashes: unique([
|
|
457
637
|
...deposit.providerTransactionHashes,
|
|
458
638
|
...options.request.destinationTransactionHashes,
|
|
639
|
+
...(deliveryObservation?.providerTransactionHashes ?? []),
|
|
459
640
|
]),
|
|
460
641
|
...(settlement.settlementTransaction
|
|
461
642
|
? { settlementTransaction: settlement.settlementTransaction }
|
|
@@ -497,7 +678,7 @@ export async function reconcileRequest(db, options) {
|
|
|
497
678
|
}
|
|
498
679
|
}
|
|
499
680
|
}
|
|
500
|
-
return { created, terminal, updated: updatedIds.size };
|
|
681
|
+
return { created, ...(followUp ? { followUp } : {}), terminal, updated: updatedIds.size };
|
|
501
682
|
}
|
|
502
683
|
async function reconcileSubsidy(options) {
|
|
503
684
|
const empty = { delivered: 0n, destinationTransactionHashes: [] };
|
|
@@ -665,6 +846,34 @@ function destinationBaseUnits(amount, sourceDecimals, destinationDecimals) {
|
|
|
665
846
|
function unique(values) {
|
|
666
847
|
return [...new Set(values)];
|
|
667
848
|
}
|
|
849
|
+
function nextFollowUp(message, kind) {
|
|
850
|
+
const attempt = message.followUp?.kind === kind ? message.followUp.attempt + 1 : 0;
|
|
851
|
+
if (attempt >= maximumFollowUpAttempts)
|
|
852
|
+
return undefined;
|
|
853
|
+
return { delaySeconds: followUpDelaySeconds[kind], state: { attempt, kind } };
|
|
854
|
+
}
|
|
855
|
+
function recordWebhookLatency(metrics, options) {
|
|
856
|
+
if (!metrics)
|
|
857
|
+
return;
|
|
858
|
+
const completedAt = options.completedAt.getTime();
|
|
859
|
+
const enqueuedAt = Date.parse(options.timing.enqueuedAt);
|
|
860
|
+
const providerUpdatedAt = Date.parse(options.timing.providerUpdatedAt);
|
|
861
|
+
const receivedAt = Date.parse(options.timing.receivedAt);
|
|
862
|
+
const sentAt = Date.parse(options.timing.sentAt);
|
|
863
|
+
const segments = [
|
|
864
|
+
{ from: providerUpdatedAt, segment: 'provider_to_sent', to: sentAt },
|
|
865
|
+
{ from: sentAt, segment: 'sent_to_received', to: receivedAt },
|
|
866
|
+
{ from: receivedAt, segment: 'received_to_enqueued', to: enqueuedAt },
|
|
867
|
+
{ from: enqueuedAt, segment: 'enqueued_to_reconciled', to: completedAt },
|
|
868
|
+
{ from: providerUpdatedAt, segment: 'provider_to_reconciled', to: completedAt },
|
|
869
|
+
];
|
|
870
|
+
for (const segment of segments)
|
|
871
|
+
metrics.histogram('funding_deposit_webhook_latency_ms', Math.max(0, segment.to - segment.from), {
|
|
872
|
+
provider: options.providerId,
|
|
873
|
+
segment: segment.segment,
|
|
874
|
+
status: options.timing.providerStatus,
|
|
875
|
+
});
|
|
876
|
+
}
|
|
668
877
|
/** Provider pagination exceeded the bounded reconciliation limit. */
|
|
669
878
|
export class PaginationLimitError extends Error {
|
|
670
879
|
name = 'Funding.Reconciliation.PaginationLimitError';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Reconciliation.js","sourceRoot":"","sources":["../../../src/internal/funding/Reconciliation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Reconciliation.js","sourceRoot":"","sources":["../../../src/internal/funding/Reconciliation.ts"],"names":[],"mappings":"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"}
|