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
|
@@ -2,6 +2,7 @@ import { Address, Hash, Hex } from 'ox'
|
|
|
2
2
|
|
|
3
3
|
import * as TestApp from '../../../../test/App.js'
|
|
4
4
|
import * as TestFunding from '../../../../test/Funding.js'
|
|
5
|
+
import * as FundingDepositRequestObservations from '../../../db/tables/fundingDepositRequestObservations.js'
|
|
5
6
|
import * as DepositAddress from '../DepositAddress.js'
|
|
6
7
|
import * as FundingProvider from '../Provider.js'
|
|
7
8
|
import * as Relay from './relay.js'
|
|
@@ -19,6 +20,7 @@ function webhookPayload(address: string | null = 'TJRabPrwbZy45sbavfcjinPJC18kjp
|
|
|
19
20
|
depositAddress: address ? { address, depositAddressType: 'open', depositor: null } : null,
|
|
20
21
|
requestId: `0x${'aa'.repeat(32)}`,
|
|
21
22
|
status: 'pending',
|
|
23
|
+
updatedAt: webhookNow.getTime() - 1_000,
|
|
22
24
|
},
|
|
23
25
|
event: 'request.status.updated',
|
|
24
26
|
timestamp: webhookNow.getTime(),
|
|
@@ -26,7 +28,7 @@ function webhookPayload(address: string | null = 'TJRabPrwbZy45sbavfcjinPJC18kjp
|
|
|
26
28
|
}
|
|
27
29
|
|
|
28
30
|
function signedWebhook(body: string) {
|
|
29
|
-
const timestamp = String(
|
|
31
|
+
const timestamp = String(webhookNow.getTime())
|
|
30
32
|
const signature = Hash.hmac256(
|
|
31
33
|
Hex.fromString(webhookSecret),
|
|
32
34
|
Hex.fromString(`${timestamp}.${body}`),
|
|
@@ -321,7 +323,7 @@ describe.skipIf(!apiKey)('relay.createDepositAddress (live)', () => {
|
|
|
321
323
|
|
|
322
324
|
expect({ requestUrl: requestUrl?.toString(), requests }).toMatchInlineSnapshot(`
|
|
323
325
|
{
|
|
324
|
-
"requestUrl": "https://api.relay.link/requests/
|
|
326
|
+
"requestUrl": "https://api.relay.link/requests/v3?depositAddress=%3Caddress%3E&includeChildRequests=true&limit=50&sortBy=updatedAt&sortDirection=desc",
|
|
325
327
|
"requests": {
|
|
326
328
|
"requests": [],
|
|
327
329
|
},
|
|
@@ -330,6 +332,72 @@ describe.skipIf(!apiKey)('relay.createDepositAddress (live)', () => {
|
|
|
330
332
|
})
|
|
331
333
|
})
|
|
332
334
|
|
|
335
|
+
describe('parseDepositAddressRequests', () => {
|
|
336
|
+
test('accepts nullable fields from in-flight requests', () => {
|
|
337
|
+
expect(
|
|
338
|
+
Relay.parseDepositAddressRequests({
|
|
339
|
+
requests: [
|
|
340
|
+
{
|
|
341
|
+
createdAt: '2026-08-05T06:13:34.181Z',
|
|
342
|
+
data: { outTxs: [] },
|
|
343
|
+
depositAddress: { depositTxHash: null },
|
|
344
|
+
id: 'request-waiting',
|
|
345
|
+
protocol: null,
|
|
346
|
+
status: 'waiting',
|
|
347
|
+
updatedAt: '2026-08-05T06:13:37.650Z',
|
|
348
|
+
},
|
|
349
|
+
{
|
|
350
|
+
createdAt: '2026-08-05T06:13:34.181Z',
|
|
351
|
+
data: { outTxs: [] },
|
|
352
|
+
depositAddress: null,
|
|
353
|
+
id: 'request-depositing',
|
|
354
|
+
protocol: null,
|
|
355
|
+
status: 'depositing',
|
|
356
|
+
updatedAt: '2026-08-05T06:13:37.650Z',
|
|
357
|
+
},
|
|
358
|
+
],
|
|
359
|
+
}),
|
|
360
|
+
).toMatchInlineSnapshot(`
|
|
361
|
+
{
|
|
362
|
+
"requests": [
|
|
363
|
+
{
|
|
364
|
+
"createdAt": "2026-08-05T06:13:34.181Z",
|
|
365
|
+
"data": {
|
|
366
|
+
"outTxs": [],
|
|
367
|
+
},
|
|
368
|
+
"depositAddress": {
|
|
369
|
+
"depositTxHash": null,
|
|
370
|
+
},
|
|
371
|
+
"id": "request-waiting",
|
|
372
|
+
"protocol": null,
|
|
373
|
+
"status": "waiting",
|
|
374
|
+
"updatedAt": "2026-08-05T06:13:37.650Z",
|
|
375
|
+
},
|
|
376
|
+
{
|
|
377
|
+
"createdAt": "2026-08-05T06:13:34.181Z",
|
|
378
|
+
"data": {
|
|
379
|
+
"outTxs": [],
|
|
380
|
+
},
|
|
381
|
+
"depositAddress": null,
|
|
382
|
+
"id": "request-depositing",
|
|
383
|
+
"protocol": null,
|
|
384
|
+
"status": "depositing",
|
|
385
|
+
"updatedAt": "2026-08-05T06:13:37.650Z",
|
|
386
|
+
},
|
|
387
|
+
],
|
|
388
|
+
}
|
|
389
|
+
`)
|
|
390
|
+
})
|
|
391
|
+
|
|
392
|
+
test('reports the invalid provider field', () => {
|
|
393
|
+
expect(() => Relay.parseDepositAddressRequests({ requests: null }))
|
|
394
|
+
.toThrowErrorMatchingInlineSnapshot(`
|
|
395
|
+
[FundingProvider.ProviderPayloadError: ✖ Invalid input: expected array, received null
|
|
396
|
+
→ at requests]
|
|
397
|
+
`)
|
|
398
|
+
})
|
|
399
|
+
})
|
|
400
|
+
|
|
333
401
|
describe('relay.createDepositAddress', () => {
|
|
334
402
|
test('rejects subsidized provisioning outside the configured limit', async () => {
|
|
335
403
|
const provider = Relay.relay({ subsidies: { maxAmount: '1' } })
|
|
@@ -367,7 +435,10 @@ describe('verifyWebhook', () => {
|
|
|
367
435
|
expect(webhook.verify(signedWebhook(webhookPayload()))).toMatchInlineSnapshot(`
|
|
368
436
|
{
|
|
369
437
|
"address": "TJRabPrwbZy45sbavfcjinPJC18kjpRTv8",
|
|
438
|
+
"providerStatus": "pending",
|
|
439
|
+
"providerUpdatedAt": "2026-12-31T23:59:59.000Z",
|
|
370
440
|
"requestId": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
441
|
+
"sentAt": "2027-01-01T00:00:00.000Z",
|
|
371
442
|
}
|
|
372
443
|
`)
|
|
373
444
|
})
|
|
@@ -381,7 +452,7 @@ describe('verifyWebhook', () => {
|
|
|
381
452
|
).toThrowErrorMatchingInlineSnapshot(`[Funding.Provider.Relay.WebhookSignatureError]`)
|
|
382
453
|
valid.headers.set(
|
|
383
454
|
'x-signature-timestamp',
|
|
384
|
-
String(Number(valid.headers.get('x-signature-timestamp')) -
|
|
455
|
+
String(Number(valid.headers.get('x-signature-timestamp')) - 300_001),
|
|
385
456
|
)
|
|
386
457
|
expect(() => webhook.verify(valid)).toThrowErrorMatchingInlineSnapshot(
|
|
387
458
|
`[Funding.Provider.Relay.WebhookSignatureError]`,
|
|
@@ -418,10 +489,15 @@ describe('receiveWebhook', () => {
|
|
|
418
489
|
const result = await webhook.receive(
|
|
419
490
|
signedWebhook(webhookPayload(Address.checksum(record.address))),
|
|
420
491
|
)
|
|
492
|
+
const observation = await FundingDepositRequestObservations.get(db, {
|
|
493
|
+
depositAddressId: record.id,
|
|
494
|
+
providerRequestId: `0x${'aa'.repeat(32)}`,
|
|
495
|
+
})
|
|
421
496
|
|
|
422
|
-
expect({ dispatched, result }).toMatchInlineSnapshot(
|
|
497
|
+
expect({ dispatched, observation, result }).toMatchInlineSnapshot(
|
|
423
498
|
{
|
|
424
499
|
dispatched: [{ addressId: expect.any(String) }],
|
|
500
|
+
observation: { depositAddressId: expect.any(String) },
|
|
425
501
|
result: { addressId: expect.any(String) },
|
|
426
502
|
},
|
|
427
503
|
`
|
|
@@ -430,9 +506,23 @@ describe('receiveWebhook', () => {
|
|
|
430
506
|
{
|
|
431
507
|
"addressId": Any<String>,
|
|
432
508
|
"requestId": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
509
|
+
"trigger": "webhook",
|
|
433
510
|
"type": "funding:deposit-address:reconcile",
|
|
511
|
+
"webhookTiming": {
|
|
512
|
+
"enqueuedAt": "2027-01-01T00:00:00.000Z",
|
|
513
|
+
"providerStatus": "pending",
|
|
514
|
+
"providerUpdatedAt": "2026-12-31T23:59:59.000Z",
|
|
515
|
+
"receivedAt": "2027-01-01T00:00:00.000Z",
|
|
516
|
+
"sentAt": "2027-01-01T00:00:00.000Z",
|
|
517
|
+
},
|
|
434
518
|
},
|
|
435
519
|
],
|
|
520
|
+
"observation": {
|
|
521
|
+
"depositAddressId": Any<String>,
|
|
522
|
+
"pollObservedAt": null,
|
|
523
|
+
"providerRequestId": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
524
|
+
"webhookReceivedAt": "2027-01-01T00:00:00.000Z",
|
|
525
|
+
},
|
|
436
526
|
"result": {
|
|
437
527
|
"addressId": Any<String>,
|
|
438
528
|
"type": "queued",
|