tapimo 0.7.1 → 0.7.2
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/ApiKeys.d.ts +24 -7
- package/dist/ApiKeys.d.ts.map +1 -1
- package/dist/ApiKeys.js +17 -5
- package/dist/ApiKeys.js.map +1 -1
- package/dist/App.d.ts +12104 -7861
- package/dist/App.d.ts.map +1 -1
- package/dist/App.js +191 -128
- package/dist/App.js.map +1 -1
- package/dist/Assets.d.ts +10 -0
- package/dist/Assets.d.ts.map +1 -1
- package/dist/Assets.js +17 -4
- package/dist/Assets.js.map +1 -1
- package/dist/Scope.d.ts +19 -8
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +25 -9
- package/dist/Scope.js.map +1 -1
- package/dist/Webhooks.d.ts +1 -1
- package/dist/admin/App.d.ts +601 -20
- package/dist/admin/App.d.ts.map +1 -1
- package/dist/admin/App.js +12 -2
- package/dist/admin/App.js.map +1 -1
- package/dist/admin/apps/api-keys.d.ts +94 -11
- package/dist/admin/apps/api-keys.d.ts.map +1 -1
- package/dist/admin/apps/api-keys.js +141 -32
- package/dist/admin/apps/api-keys.js.map +1 -1
- package/dist/admin/apps/earn-vaults.d.ts +1069 -0
- package/dist/admin/apps/earn-vaults.d.ts.map +1 -0
- package/dist/admin/apps/earn-vaults.js +409 -0
- package/dist/admin/apps/earn-vaults.js.map +1 -0
- package/dist/admin/apps/verified-tokens.d.ts +166 -166
- package/dist/admin/ui.generated.d.ts +1 -1
- package/dist/admin/ui.generated.d.ts.map +1 -1
- package/dist/admin/ui.generated.js +99 -43
- 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 +18 -2
- package/dist/analytics/Analytics.js.map +1 -1
- package/dist/analytics/tables/requestEvents.d.ts +22 -1
- package/dist/analytics/tables/requestEvents.d.ts.map +1 -1
- package/dist/analytics/tables/requestEvents.js +59 -39
- package/dist/analytics/tables/requestEvents.js.map +1 -1
- package/dist/apps/Zones.d.ts +8335 -0
- package/dist/apps/Zones.d.ts.map +1 -0
- package/dist/apps/Zones.js +38 -0
- package/dist/apps/Zones.js.map +1 -0
- package/dist/apps/data/App.d.ts +12125 -7913
- package/dist/apps/data/App.d.ts.map +1 -1
- package/dist/apps/data/App.js +91 -19
- package/dist/apps/data/App.js.map +1 -1
- package/dist/apps/data/FxOracle.d.ts +1 -1
- package/dist/apps/data/FxOracle.d.ts.map +1 -1
- package/dist/apps/data/index.d.ts +0 -1
- package/dist/apps/data/index.d.ts.map +1 -1
- package/dist/apps/data/index.js +0 -1
- package/dist/apps/data/index.js.map +1 -1
- package/dist/apps/data/routes/activities.d.ts +32 -32
- package/dist/apps/data/routes/activities.d.ts.map +1 -1
- package/dist/apps/data/routes/activities.js +130 -65
- package/dist/apps/data/routes/activities.js.map +1 -1
- package/dist/apps/data/routes/addresses.d.ts +312 -312
- package/dist/apps/data/routes/balances.d.ts +18 -18
- package/dist/apps/data/routes/balances.js +5 -5
- package/dist/apps/data/routes/balances.js.map +1 -1
- package/dist/apps/data/routes/coingecko.d.ts +176 -176
- package/dist/apps/data/routes/coingecko.d.ts.map +1 -1
- package/dist/apps/data/routes/coingecko.js +62 -35
- package/dist/apps/data/routes/coingecko.js.map +1 -1
- package/dist/apps/data/routes/earn.d.ts +2144 -0
- package/dist/apps/data/routes/earn.d.ts.map +1 -0
- package/dist/apps/data/routes/earn.js +947 -0
- package/dist/apps/data/routes/earn.js.map +1 -0
- package/dist/apps/data/routes/exchanges.d.ts +1625 -718
- package/dist/apps/data/routes/exchanges.d.ts.map +1 -1
- package/dist/apps/data/routes/exchanges.js +656 -193
- package/dist/apps/data/routes/exchanges.js.map +1 -1
- package/dist/apps/data/routes/fee-amm.d.ts +108 -108
- package/dist/apps/data/routes/fee-amm.d.ts.map +1 -1
- package/dist/apps/data/routes/fee-amm.js +59 -8
- package/dist/apps/data/routes/fee-amm.js.map +1 -1
- package/dist/apps/data/routes/funding.d.ts +4092 -387
- package/dist/apps/data/routes/funding.d.ts.map +1 -1
- package/dist/apps/data/routes/funding.js +1403 -256
- package/dist/apps/data/routes/funding.js.map +1 -1
- package/dist/apps/data/routes/indexer.d.ts +30 -30
- package/dist/apps/data/routes/indexer.d.ts.map +1 -1
- package/dist/apps/data/routes/indexer.js +19 -2
- package/dist/apps/data/routes/indexer.js.map +1 -1
- package/dist/apps/data/routes/receipts.d.ts +263 -263
- package/dist/apps/data/routes/receipts.d.ts.map +1 -1
- package/dist/apps/data/routes/receipts.js +11 -11
- package/dist/apps/data/routes/receipts.js.map +1 -1
- package/dist/apps/data/routes/rpc.d.ts +5 -5
- package/dist/apps/data/routes/rpc.d.ts.map +1 -1
- package/dist/apps/data/routes/rpc.js +211 -22
- 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/tokenlist.d.ts.map +1 -1
- package/dist/apps/data/routes/tokenlist.js +39 -8
- package/dist/apps/data/routes/tokenlist.js.map +1 -1
- package/dist/apps/data/routes/tokens.d.ts +114 -86
- package/dist/apps/data/routes/tokens.d.ts.map +1 -1
- package/dist/apps/data/routes/tokens.js +194 -91
- package/dist/apps/data/routes/tokens.js.map +1 -1
- package/dist/apps/data/routes/transactions.d.ts +53 -53
- package/dist/apps/data/routes/transactions.d.ts.map +1 -1
- package/dist/apps/data/routes/transactions.js +78 -39
- package/dist/apps/data/routes/transactions.js.map +1 -1
- package/dist/apps/data/routes/transfers.d.ts +76 -27
- package/dist/apps/data/routes/transfers.d.ts.map +1 -1
- package/dist/apps/data/routes/transfers.js +165 -67
- package/dist/apps/data/routes/transfers.js.map +1 -1
- package/dist/apps/data/routes/valuation.d.ts +42 -42
- package/dist/apps/data/routes/valuation.js +2 -2
- package/dist/apps/data/routes/valuation.js.map +1 -1
- package/dist/apps/data/routes/webhooks.d.ts +369 -367
- package/dist/apps/data/routes/webhooks.d.ts.map +1 -1
- package/dist/apps/data/routes/webhooks.js +161 -59
- package/dist/apps/data/routes/webhooks.js.map +1 -1
- package/dist/apps/data/routes/zones.d.ts +281 -0
- package/dist/apps/data/routes/zones.d.ts.map +1 -0
- package/dist/apps/data/routes/zones.js +252 -0
- package/dist/apps/data/routes/zones.js.map +1 -0
- package/dist/apps/docs/reference.js +6 -5
- package/dist/apps/docs/reference.js.map +1 -1
- package/dist/apps/index.d.ts +2 -1
- package/dist/apps/index.d.ts.map +1 -1
- package/dist/apps/index.js +2 -1
- package/dist/apps/index.js.map +1 -1
- package/dist/apps/management/App.d.ts +670 -670
- package/dist/apps/management/Billing.d.ts +8 -0
- package/dist/apps/management/Billing.d.ts.map +1 -1
- package/dist/apps/management/Billing.js +12 -0
- package/dist/apps/management/Billing.js.map +1 -1
- package/dist/apps/management/Error.d.ts +12 -0
- package/dist/apps/management/Error.d.ts.map +1 -0
- package/dist/apps/management/Error.js +10 -0
- package/dist/apps/management/Error.js.map +1 -0
- package/dist/apps/management/routes/api-keys.d.ts +5 -5
- package/dist/apps/management/routes/api-keys.d.ts.map +1 -1
- package/dist/apps/management/routes/api-keys.js +2 -8
- package/dist/apps/management/routes/api-keys.js.map +1 -1
- package/dist/apps/management/routes/billing.d.ts +119 -119
- package/dist/apps/management/routes/faucet.d.ts +2 -2
- package/dist/apps/management/routes/invitations.d.ts +62 -62
- package/dist/apps/management/routes/invitations.d.ts.map +1 -1
- package/dist/apps/management/routes/invitations.js +4 -10
- package/dist/apps/management/routes/invitations.js.map +1 -1
- package/dist/apps/management/routes/invite-links.d.ts +30 -30
- package/dist/apps/management/routes/me.d.ts +6 -6
- package/dist/apps/management/routes/members.d.ts +2 -2
- package/dist/apps/management/routes/orgs.d.ts +48 -48
- package/dist/apps/management/routes/orgs.d.ts.map +1 -1
- package/dist/apps/management/routes/orgs.js +2 -8
- package/dist/apps/management/routes/orgs.js.map +1 -1
- package/dist/apps/management/routes/projects.d.ts +9 -9
- package/dist/apps/management/routes/scopes.js +2 -2
- package/dist/apps/management/routes/scopes.js.map +1 -1
- package/dist/apps/management/routes/verified-token-requests.d.ts +36 -36
- package/dist/apps/management/routes/webhooks.d.ts +50 -50
- package/dist/apps/management/routes/webhooks.d.ts.map +1 -1
- package/dist/apps/management/routes/webhooks.js +15 -3
- package/dist/apps/management/routes/webhooks.js.map +1 -1
- package/dist/apps/mpp/App.d.ts +55 -56
- package/dist/apps/mpp/App.d.ts.map +1 -1
- package/dist/apps/mpp/App.js +192 -27
- package/dist/apps/mpp/App.js.map +1 -1
- package/dist/apps/mpp/Mpp.d.ts +0 -20
- package/dist/apps/mpp/Mpp.d.ts.map +1 -1
- package/dist/apps/mpp/Mpp.js +0 -24
- package/dist/apps/mpp/Mpp.js.map +1 -1
- package/dist/apps/mpp/internal/Adapter.d.ts +40 -0
- package/dist/apps/mpp/internal/Adapter.d.ts.map +1 -0
- package/dist/apps/mpp/internal/Adapter.js +66 -0
- package/dist/apps/mpp/internal/Adapter.js.map +1 -0
- package/dist/apps/mpp/internal/Error.d.ts +4 -0
- package/dist/apps/mpp/internal/Error.d.ts.map +1 -0
- package/dist/apps/mpp/internal/Error.js +41 -0
- package/dist/apps/mpp/internal/Error.js.map +1 -0
- package/dist/apps/mpp/internal/Idempotency.d.ts +33 -0
- package/dist/apps/mpp/internal/Idempotency.d.ts.map +1 -0
- package/dist/apps/mpp/internal/Idempotency.js +28 -0
- package/dist/apps/mpp/internal/Idempotency.js.map +1 -0
- package/dist/apps/mpp/internal/Policy.d.ts +46 -0
- package/dist/apps/mpp/internal/Policy.d.ts.map +1 -0
- package/dist/apps/mpp/internal/Policy.js +57 -0
- package/dist/apps/mpp/internal/Policy.js.map +1 -0
- package/dist/apps/mpp/internal/ScreenManager.d.ts +27 -0
- package/dist/apps/mpp/internal/ScreenManager.d.ts.map +1 -0
- package/dist/apps/mpp/internal/ScreenManager.js +18 -0
- package/dist/apps/mpp/internal/ScreenManager.js.map +1 -0
- package/dist/apps/mpp/internal/Screening.d.ts +35 -0
- package/dist/apps/mpp/internal/Screening.d.ts.map +1 -0
- package/dist/apps/mpp/internal/Screening.js +20 -0
- package/dist/apps/mpp/internal/Screening.js.map +1 -0
- package/dist/apps/mpp/internal/Sponsorship.d.ts +36 -0
- package/dist/apps/mpp/internal/Sponsorship.d.ts.map +1 -0
- package/dist/apps/mpp/internal/Sponsorship.js +103 -0
- package/dist/apps/mpp/internal/Sponsorship.js.map +1 -0
- package/dist/apps/mpp/internal/Utils.d.ts +7 -0
- package/dist/apps/mpp/internal/Utils.d.ts.map +1 -0
- package/dist/apps/mpp/internal/Utils.js +24 -0
- package/dist/apps/mpp/internal/Utils.js.map +1 -0
- package/dist/apps/relay/App.js +183 -23
- package/dist/apps/relay/App.js.map +1 -1
- package/dist/apps/relay/Sponsorships.d.ts +4 -0
- package/dist/apps/relay/Sponsorships.d.ts.map +1 -1
- package/dist/apps/relay/Sponsorships.js +15 -6
- package/dist/apps/relay/Sponsorships.js.map +1 -1
- package/dist/db/Db.d.ts +20 -0
- package/dist/db/Db.d.ts.map +1 -1
- package/dist/db/Db.js +342 -0
- package/dist/db/Db.js.map +1 -1
- package/dist/db/Schema.d.ts +921 -1
- package/dist/db/Schema.d.ts.map +1 -1
- package/dist/db/Schema.js +269 -1
- package/dist/db/Schema.js.map +1 -1
- package/dist/db/tables/earnVaults.d.ts +68 -0
- package/dist/db/tables/earnVaults.d.ts.map +1 -0
- package/dist/db/tables/earnVaults.js +72 -0
- package/dist/db/tables/earnVaults.js.map +1 -0
- package/dist/db/tables/fundingCatalog.d.ts +56 -0
- package/dist/db/tables/fundingCatalog.d.ts.map +1 -0
- package/dist/db/tables/fundingCatalog.js +85 -0
- package/dist/db/tables/fundingCatalog.js.map +1 -0
- package/dist/db/tables/fundingDepositAddresses.d.ts +159 -0
- package/dist/db/tables/fundingDepositAddresses.d.ts.map +1 -0
- package/dist/db/tables/fundingDepositAddresses.js +206 -0
- package/dist/db/tables/fundingDepositAddresses.js.map +1 -0
- package/dist/db/tables/fundingDeposits.d.ts +115 -0
- package/dist/db/tables/fundingDeposits.d.ts.map +1 -0
- package/dist/db/tables/fundingDeposits.js +100 -0
- package/dist/db/tables/fundingDeposits.js.map +1 -0
- package/dist/db/tables/fundingIdempotency.d.ts +91 -0
- package/dist/db/tables/fundingIdempotency.d.ts.map +1 -0
- package/dist/db/tables/fundingIdempotency.js +103 -0
- package/dist/db/tables/fundingIdempotency.js.map +1 -0
- package/dist/db/tables/fundingTransferEvents.d.ts +12 -0
- package/dist/db/tables/fundingTransferEvents.d.ts.map +1 -0
- package/dist/db/tables/fundingTransferEvents.js +18 -0
- package/dist/db/tables/fundingTransferEvents.js.map +1 -0
- package/dist/db/tables/fundingTransferTransactions.d.ts +15 -0
- package/dist/db/tables/fundingTransferTransactions.d.ts.map +1 -0
- package/dist/db/tables/fundingTransferTransactions.js +27 -0
- package/dist/db/tables/fundingTransferTransactions.js.map +1 -0
- package/dist/db/tables/fundingTransfers.d.ts +82 -0
- package/dist/db/tables/fundingTransfers.d.ts.map +1 -0
- package/dist/db/tables/fundingTransfers.js +89 -0
- package/dist/db/tables/fundingTransfers.js.map +1 -0
- package/dist/db/tables/organizations.d.ts +8 -0
- package/dist/db/tables/organizations.d.ts.map +1 -1
- package/dist/db/tables/organizations.js +16 -0
- package/dist/db/tables/organizations.js.map +1 -1
- package/dist/db/tables/projects.d.ts +8 -0
- package/dist/db/tables/projects.d.ts.map +1 -1
- package/dist/db/tables/projects.js +16 -0
- package/dist/db/tables/projects.js.map +1 -1
- package/dist/db/tables/requestUsage.d.ts +13 -0
- package/dist/db/tables/requestUsage.d.ts.map +1 -1
- package/dist/db/tables/requestUsage.js +16 -0
- package/dist/db/tables/requestUsage.js.map +1 -1
- package/dist/db/tables/sponsoredTransactions.d.ts +2 -2
- package/dist/db/tables/sponsoredTransactions.d.ts.map +1 -1
- package/dist/db/tables/sponsoredTransactions.js +1 -1
- package/dist/db/tables/sponsoredTransactions.js.map +1 -1
- package/dist/db/tables/users.d.ts +8 -0
- package/dist/db/tables/users.d.ts.map +1 -1
- package/dist/db/tables/users.js +16 -0
- package/dist/db/tables/users.js.map +1 -1
- package/dist/db/tables/verifiedTokens.d.ts +14 -7
- package/dist/db/tables/verifiedTokens.d.ts.map +1 -1
- package/dist/db/tables/verifiedTokens.js +9 -7
- package/dist/db/tables/verifiedTokens.js.map +1 -1
- package/dist/db/tables/webhookSubscriptions.d.ts +31 -1
- package/dist/db/tables/webhookSubscriptions.d.ts.map +1 -1
- package/dist/db/tables/webhookSubscriptions.js +24 -3
- package/dist/db/tables/webhookSubscriptions.js.map +1 -1
- package/dist/handlers/relay.js +108 -108
- package/dist/handlers/relay.js.map +1 -1
- package/dist/internal/Auth.d.ts +26 -0
- package/dist/internal/Auth.d.ts.map +1 -1
- package/dist/internal/Auth.js +35 -2
- package/dist/internal/Auth.js.map +1 -1
- package/dist/internal/Cache.d.ts.map +1 -1
- package/dist/internal/Cache.js +16 -10
- package/dist/internal/Cache.js.map +1 -1
- package/dist/internal/Cursor.js +1 -1
- package/dist/internal/Cursor.js.map +1 -1
- package/dist/internal/EarnRates.d.ts +89 -0
- package/dist/internal/EarnRates.d.ts.map +1 -0
- package/dist/internal/EarnRates.js +266 -0
- package/dist/internal/EarnRates.js.map +1 -0
- package/dist/internal/EarnVaults.d.ts +171 -0
- package/dist/internal/EarnVaults.d.ts.map +1 -0
- package/dist/internal/EarnVaults.js +547 -0
- package/dist/internal/EarnVaults.js.map +1 -0
- package/dist/internal/EdgeCache.d.ts +8 -1
- package/dist/internal/EdgeCache.d.ts.map +1 -1
- package/dist/internal/EdgeCache.js +33 -7
- package/dist/internal/EdgeCache.js.map +1 -1
- package/dist/internal/Id.d.ts +11 -0
- package/dist/internal/Id.d.ts.map +1 -1
- package/dist/internal/Id.js +13 -0
- package/dist/internal/Id.js.map +1 -1
- package/dist/internal/Idempotency.d.ts +83 -0
- package/dist/internal/Idempotency.d.ts.map +1 -0
- package/dist/internal/Idempotency.js +113 -0
- package/dist/internal/Idempotency.js.map +1 -0
- package/dist/internal/Log.d.ts +64 -9
- package/dist/internal/Log.d.ts.map +1 -1
- package/dist/internal/Log.js +29 -7
- package/dist/internal/Log.js.map +1 -1
- package/dist/internal/MetricSink.d.ts.map +1 -1
- package/dist/internal/MetricSink.js +47 -1
- package/dist/internal/MetricSink.js.map +1 -1
- package/dist/internal/OpenApi.d.ts +1 -1
- package/dist/internal/OpenApi.d.ts.map +1 -1
- package/dist/internal/OpenApi.js +3 -0
- package/dist/internal/OpenApi.js.map +1 -1
- package/dist/internal/Provider.d.ts +14 -0
- package/dist/internal/Provider.d.ts.map +1 -0
- package/dist/internal/Provider.js +5 -0
- package/dist/internal/Provider.js.map +1 -0
- package/dist/internal/Schema.d.ts +6 -1
- package/dist/internal/Schema.d.ts.map +1 -1
- package/dist/internal/Schema.js +20 -11
- package/dist/internal/Schema.js.map +1 -1
- package/dist/internal/Store.d.ts +6 -0
- package/dist/internal/Store.d.ts.map +1 -1
- package/dist/internal/Store.js +35 -0
- package/dist/internal/Store.js.map +1 -1
- package/dist/internal/Tidx.d.ts +43 -24
- package/dist/internal/Tidx.d.ts.map +1 -1
- package/dist/internal/Tidx.js +79 -11
- package/dist/internal/Tidx.js.map +1 -1
- package/dist/internal/Viem.d.ts +82 -65
- package/dist/internal/Viem.d.ts.map +1 -1
- package/dist/internal/Viem.js +83 -12
- package/dist/internal/Viem.js.map +1 -1
- package/dist/internal/WebhookDestination.d.ts.map +1 -1
- package/dist/internal/WebhookDestination.js +34 -28
- package/dist/internal/WebhookDestination.js.map +1 -1
- package/dist/internal/Webhooks.d.ts +9 -0
- package/dist/internal/Webhooks.d.ts.map +1 -1
- package/dist/internal/Webhooks.js +15 -10
- package/dist/internal/Webhooks.js.map +1 -1
- package/dist/internal/exchange/Provider.d.ts +219 -0
- package/dist/internal/exchange/Provider.d.ts.map +1 -0
- package/dist/internal/exchange/Provider.js +117 -0
- package/dist/internal/exchange/Provider.js.map +1 -0
- package/dist/internal/exchange/index.d.ts +2 -0
- package/dist/internal/exchange/index.d.ts.map +1 -0
- package/dist/internal/exchange/index.js +2 -0
- package/dist/internal/exchange/index.js.map +1 -0
- package/dist/internal/exchange/providers/uniswap.d.ts +57 -0
- package/dist/internal/exchange/providers/uniswap.d.ts.map +1 -0
- package/dist/internal/exchange/providers/uniswap.js +553 -0
- package/dist/internal/exchange/providers/uniswap.js.map +1 -0
- package/dist/internal/funding/Action.d.ts +55 -0
- package/dist/internal/funding/Action.d.ts.map +1 -0
- package/dist/internal/funding/Action.js +74 -0
- package/dist/internal/funding/Action.js.map +1 -0
- package/dist/internal/funding/Catalog.d.ts +107 -0
- package/dist/internal/funding/Catalog.d.ts.map +1 -0
- package/dist/internal/funding/Catalog.js +270 -0
- package/dist/internal/funding/Catalog.js.map +1 -0
- package/dist/internal/funding/Chain.d.ts +76 -0
- package/dist/internal/funding/Chain.d.ts.map +1 -0
- package/dist/internal/funding/Chain.js +38 -0
- package/dist/internal/funding/Chain.js.map +1 -0
- package/dist/internal/funding/Deposit.d.ts +366 -0
- package/dist/internal/funding/Deposit.d.ts.map +1 -0
- package/dist/internal/funding/Deposit.js +286 -0
- package/dist/internal/funding/Deposit.js.map +1 -0
- package/dist/internal/funding/DepositAddress.d.ts +345 -0
- package/dist/internal/funding/DepositAddress.d.ts.map +1 -0
- package/dist/internal/funding/DepositAddress.js +189 -0
- package/dist/internal/funding/DepositAddress.js.map +1 -0
- package/dist/internal/funding/Evidence.d.ts +52 -0
- package/dist/internal/funding/Evidence.d.ts.map +1 -0
- package/dist/internal/funding/Evidence.js +314 -0
- package/dist/internal/funding/Evidence.js.map +1 -0
- package/dist/internal/funding/Provider.d.ts +1186 -0
- package/dist/internal/funding/Provider.d.ts.map +1 -0
- package/dist/internal/funding/Provider.js +1081 -0
- package/dist/internal/funding/Provider.js.map +1 -0
- package/dist/internal/funding/Reconciliation.d.ts +113 -0
- package/dist/internal/funding/Reconciliation.d.ts.map +1 -0
- package/dist/internal/funding/Reconciliation.js +676 -0
- package/dist/internal/funding/Reconciliation.js.map +1 -0
- package/dist/internal/funding/Route.d.ts +21 -0
- package/dist/internal/funding/Route.d.ts.map +1 -0
- package/dist/internal/funding/Route.js +5 -0
- package/dist/internal/funding/Route.js.map +1 -0
- package/dist/internal/funding/Subsidy.d.ts +113 -0
- package/dist/internal/funding/Subsidy.d.ts.map +1 -0
- package/dist/internal/funding/Subsidy.js +138 -0
- package/dist/internal/funding/Subsidy.js.map +1 -0
- package/dist/internal/funding/Token.d.ts +41 -0
- package/dist/internal/funding/Token.d.ts.map +1 -0
- package/dist/internal/funding/Token.js +22 -0
- package/dist/internal/funding/Token.js.map +1 -0
- package/dist/internal/funding/Transfer.d.ts +643 -0
- package/dist/internal/funding/Transfer.d.ts.map +1 -0
- package/dist/internal/funding/Transfer.js +332 -0
- package/dist/internal/funding/Transfer.js.map +1 -0
- package/dist/internal/funding/index.d.ts +13 -0
- package/dist/internal/funding/index.d.ts.map +1 -0
- package/dist/internal/funding/index.js +13 -0
- package/dist/internal/funding/index.js.map +1 -0
- package/dist/internal/funding/providers/across.d.ts +21 -0
- package/dist/internal/funding/providers/across.d.ts.map +1 -0
- package/dist/internal/funding/providers/across.js +117 -0
- package/dist/internal/funding/providers/across.js.map +1 -0
- package/dist/internal/funding/providers/relay.d.ts +46 -0
- package/dist/internal/funding/providers/relay.d.ts.map +1 -0
- package/dist/internal/funding/providers/relay.js +464 -0
- package/dist/internal/funding/providers/relay.js.map +1 -0
- package/dist/internal/funding/providers/rhino.d.ts +15 -0
- package/dist/internal/funding/providers/rhino.d.ts.map +1 -0
- package/dist/internal/funding/providers/rhino.js +116 -0
- package/dist/internal/funding/providers/rhino.js.map +1 -0
- package/dist/internal/funding/providers/squid.d.ts +19 -0
- package/dist/internal/funding/providers/squid.d.ts.map +1 -0
- package/dist/internal/funding/providers/squid.js +120 -0
- package/dist/internal/funding/providers/squid.js.map +1 -0
- package/dist/internal/funding/providers/symbiosis.d.ts +20 -0
- package/dist/internal/funding/providers/symbiosis.d.ts.map +1 -0
- package/dist/internal/funding/providers/symbiosis.js +176 -0
- package/dist/internal/funding/providers/symbiosis.js.map +1 -0
- package/dist/internal/index.d.ts +5 -1
- package/dist/internal/index.d.ts.map +1 -1
- package/dist/internal/index.js +5 -1
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/webhookDestinations/url.js +61 -57
- package/dist/internal/webhookDestinations/url.js.map +1 -1
- package/dist/providers/index.d.ts +43 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +19 -0
- package/dist/providers/index.js.map +1 -0
- package/package.json +9 -4
- package/src/ApiKeys.test.ts +11 -7
- package/src/ApiKeys.ts +37 -9
- package/src/App.test.ts +85 -10
- package/src/App.ts +224 -137
- package/src/Assets.ts +29 -4
- package/src/Client.test-d.ts +650 -30
- package/src/Scope.test.ts +19 -0
- package/src/Scope.ts +28 -11
- package/src/Webhooks.test.ts +25 -0
- package/src/Webhooks.ts +1 -1
- package/src/admin/App.test.ts +9 -2
- package/src/admin/App.ts +32 -9
- package/src/admin/apps/api-keys.test.ts +167 -23
- package/src/admin/apps/api-keys.ts +166 -28
- package/src/admin/apps/earn-vaults.test.ts +338 -0
- package/src/admin/apps/earn-vaults.ts +572 -0
- package/src/admin/apps/scopes.test.ts +16 -1
- package/src/admin/ui/plugin.ts +2 -2
- package/src/admin/ui/src/components/EarnVaultForm.tsx +137 -0
- package/src/admin/ui/src/components/MobileProfile.tsx +2 -2
- package/src/admin/ui/src/components/Page.tsx +1 -1
- package/src/admin/ui/src/components/ThemeToggle.tsx +1 -1
- package/src/admin/ui/src/lib/api-keys.ts +37 -7
- package/src/admin/ui/src/lib/client.ts +1 -1
- package/src/admin/ui/src/lib/config.ts +1 -1
- package/src/admin/ui/src/lib/early-access.ts +8 -9
- package/src/admin/ui/src/lib/earn-vaults.ts +207 -0
- package/src/admin/ui/src/lib/format.ts +13 -0
- package/src/admin/ui/src/lib/organizations.test.ts +14 -4
- package/src/admin/ui/src/lib/organizations.ts +7 -1
- package/src/admin/ui/src/lib/response.ts +22 -0
- package/src/admin/ui/src/lib/scopes.test.ts +19 -11
- package/src/admin/ui/src/lib/scopes.ts +28 -7
- package/src/admin/ui/src/lib/verified-tokens.ts +10 -9
- package/src/admin/ui/src/routeTree.gen.ts +70 -7
- package/src/admin/ui/src/router.tsx +2 -2
- package/src/admin/ui/src/routes/__root.tsx +9 -8
- package/src/admin/ui/src/routes/api-keys.tsx +475 -64
- package/src/admin/ui/src/routes/early-access.tsx +5 -12
- package/src/admin/ui/src/routes/earn.vaults.tsx +348 -0
- package/src/admin/ui/src/routes/earn.vaults_.$vaultId.edit.tsx +154 -0
- package/src/admin/ui/src/routes/earn.vaults_.new.tsx +190 -0
- package/src/admin/ui/src/routes/organizations.tsx +4 -7
- package/src/admin/ui/src/routes/organizations_.$orgId.tsx +56 -54
- package/src/admin/ui/src/routes/verified-tokens.tsx +4 -4
- package/src/admin/ui/vite.config.ts +4 -1
- package/src/admin/ui.generated.ts +113 -43
- package/src/analytics/Analytics.test.ts +69 -10
- package/src/analytics/Analytics.ts +20 -1
- package/src/analytics/tables/requestEvents.ts +79 -37
- package/src/apps/Zones.test.ts +33 -0
- package/src/apps/Zones.ts +40 -0
- package/src/apps/composition.test.ts +84 -1
- package/src/apps/data/App.test.ts +28 -11
- package/src/apps/data/App.ts +96 -33
- package/src/apps/data/FxOracle.ts +1 -1
- package/src/apps/data/index.ts +0 -1
- package/src/apps/data/routes/activities.test.ts +82 -6
- package/src/apps/data/routes/activities.ts +131 -71
- package/src/apps/data/routes/balances.test.ts +50 -37
- package/src/apps/data/routes/balances.ts +5 -5
- package/src/apps/data/routes/blocks.test.ts +2 -0
- package/src/apps/data/routes/coingecko.test.ts +22 -0
- package/src/apps/data/routes/coingecko.ts +84 -48
- package/src/apps/data/routes/earn.test.ts +1108 -0
- package/src/apps/data/routes/earn.ts +1391 -0
- package/src/apps/data/routes/exchanges.test.ts +82 -33
- package/src/apps/data/routes/exchanges.ts +842 -227
- package/src/apps/data/routes/fee-amm.test.ts +4 -6
- package/src/apps/data/routes/fee-amm.ts +69 -12
- package/src/apps/data/routes/funding.test.ts +2712 -221
- package/src/apps/data/routes/funding.ts +1604 -387
- package/src/apps/data/routes/indexer.test.ts +43 -34
- package/src/apps/data/routes/indexer.ts +19 -2
- package/src/apps/data/routes/receipts.test.ts +5 -3
- package/src/apps/data/routes/receipts.ts +13 -11
- package/src/apps/data/routes/rpc.test.ts +446 -28
- package/src/apps/data/routes/rpc.ts +243 -25
- package/src/apps/data/routes/tokenlist.ts +72 -19
- package/src/apps/data/routes/tokens.ts +258 -86
- package/src/apps/data/routes/transactions.test.ts +2 -0
- package/src/apps/data/routes/transactions.ts +77 -42
- package/src/apps/data/routes/transfers.test.ts +166 -4
- package/src/apps/data/routes/transfers.ts +216 -78
- package/src/apps/data/routes/valuation.test.ts +62 -9
- package/src/apps/data/routes/valuation.ts +2 -2
- package/src/apps/data/routes/webhooks.test.ts +386 -43
- package/src/apps/data/routes/webhooks.ts +172 -71
- package/src/apps/data/routes/zones.test.ts +473 -0
- package/src/apps/data/routes/zones.ts +338 -0
- package/src/apps/docs/reference.ts +8 -6
- package/src/apps/index.ts +2 -1
- package/src/apps/management/Billing.test.ts +29 -0
- package/src/apps/management/Billing.ts +23 -0
- package/src/apps/management/Error.ts +12 -0
- package/src/apps/management/routes/api-keys.test.ts +5 -3
- package/src/apps/management/routes/api-keys.ts +2 -9
- package/src/apps/management/routes/invitations.ts +4 -11
- package/src/apps/management/routes/orgs.ts +2 -9
- package/src/apps/management/routes/scopes.test.ts +7 -2
- package/src/apps/management/routes/scopes.ts +2 -2
- package/src/apps/management/routes/webhooks.test.ts +6 -1
- package/src/apps/management/routes/webhooks.ts +15 -3
- package/src/apps/mpp/App.ts +276 -29
- package/src/apps/mpp/Mpp.test.ts +631 -26
- package/src/apps/mpp/Mpp.ts +0 -42
- package/src/apps/mpp/internal/Adapter.ts +108 -3
- package/src/apps/mpp/internal/Error.test.ts +33 -0
- package/src/apps/mpp/internal/Error.ts +44 -6
- package/src/apps/mpp/internal/Idempotency.test.ts +213 -0
- package/src/apps/mpp/internal/Idempotency.ts +59 -5
- package/src/apps/mpp/internal/Policy.test.ts +122 -0
- package/src/apps/mpp/internal/Policy.ts +98 -0
- package/src/apps/mpp/internal/ScreenManager.test.ts +68 -0
- package/src/apps/mpp/internal/ScreenManager.ts +41 -0
- package/src/apps/mpp/internal/Screening.ts +40 -3
- package/src/apps/mpp/internal/Sponsorship.ts +144 -0
- package/src/apps/mpp/internal/Utils.ts +30 -0
- package/src/apps/relay/App.test.ts +493 -62
- package/src/apps/relay/App.ts +233 -23
- package/src/apps/relay/Sponsorships.test.ts +49 -0
- package/src/apps/relay/Sponsorships.ts +18 -6
- package/src/db/Db.ts +439 -0
- package/src/db/Schema.ts +325 -2
- package/src/db/tables/earnVaults.test.ts +185 -0
- package/src/db/tables/earnVaults.ts +151 -0
- package/src/db/tables/fundingCatalog.test.ts +108 -0
- package/src/db/tables/fundingCatalog.ts +157 -0
- package/src/db/tables/fundingDepositAddresses.test.ts +580 -0
- package/src/db/tables/fundingDepositAddresses.ts +376 -0
- package/src/db/tables/fundingDeposits.test.ts +261 -0
- package/src/db/tables/fundingDeposits.ts +229 -0
- package/src/db/tables/fundingIdempotency.test.ts +182 -0
- package/src/db/tables/fundingIdempotency.ts +180 -0
- package/src/db/tables/fundingTransferEvents.ts +28 -0
- package/src/db/tables/fundingTransferTransactions.test.ts +69 -0
- package/src/db/tables/fundingTransferTransactions.ts +37 -0
- package/src/db/tables/fundingTransfers.test.ts +89 -0
- package/src/db/tables/fundingTransfers.ts +153 -0
- package/src/db/tables/organizations.ts +16 -0
- package/src/db/tables/projects.ts +16 -0
- package/src/db/tables/requestUsage.ts +23 -0
- package/src/db/tables/sponsoredTransactions.test.ts +11 -0
- package/src/db/tables/sponsoredTransactions.ts +3 -3
- package/src/db/tables/users.ts +16 -0
- package/src/db/tables/verifiedTokens.ts +19 -14
- package/src/db/tables/webhookSubscriptions.ts +58 -3
- package/src/handlers/relay.test.ts +2 -0
- package/src/handlers/relay.ts +95 -99
- package/src/internal/Auth.test.ts +48 -0
- package/src/internal/Auth.ts +61 -2
- package/src/internal/Cache.ts +13 -9
- package/src/internal/Cursor.test.ts +2 -2
- package/src/internal/Cursor.ts +1 -1
- package/src/internal/EarnRates.test.ts +125 -0
- package/src/internal/EarnRates.ts +409 -0
- package/src/internal/EarnVaults.test.ts +195 -0
- package/src/internal/EarnVaults.ts +876 -0
- package/src/internal/EdgeCache.test.ts +19 -0
- package/src/internal/EdgeCache.ts +35 -5
- package/src/internal/Id.ts +14 -0
- package/src/internal/Idempotency.test.ts +109 -0
- package/src/internal/Idempotency.ts +237 -0
- package/src/internal/Log.test-d.ts +41 -8
- package/src/internal/Log.test.ts +189 -8
- package/src/internal/Log.ts +124 -17
- package/src/internal/MetricSink.test.ts +244 -4
- package/src/internal/MetricSink.ts +51 -1
- package/src/internal/OpenApi.ts +3 -0
- package/src/internal/Provider.test.ts +17 -0
- package/src/internal/Provider.ts +17 -0
- package/src/internal/Schema.ts +27 -17
- package/src/internal/Store.test.ts +25 -0
- package/src/internal/Store.ts +46 -0
- package/src/internal/Tidx.local.test.ts +78 -3
- package/src/internal/Tidx.test.ts +212 -18
- package/src/internal/Tidx.ts +112 -32
- package/src/internal/VerifiedTokens.test.ts +15 -0
- package/src/internal/Viem.test.ts +170 -17
- package/src/internal/Viem.ts +111 -28
- package/src/internal/WebhookDestination.ts +25 -23
- package/src/internal/Webhooks.test.ts +59 -0
- package/src/internal/Webhooks.ts +34 -10
- package/src/internal/exchange/Provider.test.ts +216 -0
- package/src/internal/exchange/Provider.ts +326 -0
- package/src/internal/exchange/index.test.ts +6 -0
- package/src/internal/exchange/index.ts +1 -0
- package/src/internal/exchange/providers/uniswap.test.ts +122 -0
- package/src/internal/exchange/providers/uniswap.ts +682 -0
- package/src/internal/funding/Action.test.ts +138 -0
- package/src/internal/funding/Action.ts +117 -0
- package/src/internal/funding/Catalog.test.ts +311 -0
- package/src/internal/funding/Catalog.ts +347 -0
- package/src/internal/funding/Chain.test.ts +79 -0
- package/src/internal/funding/Chain.ts +120 -0
- package/src/internal/funding/Deposit.test.ts +26 -0
- package/src/internal/funding/Deposit.ts +453 -0
- package/src/internal/funding/DepositAddress.test.ts +18 -0
- package/src/internal/funding/DepositAddress.ts +312 -0
- package/src/internal/funding/Evidence.test.ts +297 -0
- package/src/internal/funding/Evidence.ts +430 -0
- package/src/internal/funding/Provider.test.ts +1328 -0
- package/src/internal/funding/Provider.ts +1796 -0
- package/src/internal/funding/Reconciliation.local.test.ts +504 -0
- package/src/internal/funding/Reconciliation.test.ts +2020 -0
- package/src/internal/funding/Reconciliation.ts +930 -0
- package/src/internal/funding/Route.test.ts +66 -0
- package/src/internal/funding/Route.ts +29 -0
- package/src/internal/funding/Subsidy.local.test.ts +152 -0
- package/src/internal/funding/Subsidy.test.ts +75 -0
- package/src/internal/funding/Subsidy.ts +260 -0
- package/src/internal/funding/Token.test.ts +47 -0
- package/src/internal/funding/Token.ts +59 -0
- package/src/internal/funding/Transfer.test.ts +369 -0
- package/src/internal/funding/Transfer.ts +522 -0
- package/src/internal/funding/index.test.ts +20 -0
- package/src/internal/funding/index.ts +12 -0
- package/src/internal/funding/providers/across.ts +149 -0
- package/src/{apps/data/FundingQuoteProviders.test.ts → internal/funding/providers/index.test.ts} +178 -157
- package/src/internal/funding/providers/relay.test.ts +474 -0
- package/src/internal/funding/providers/relay.ts +559 -0
- package/src/internal/funding/providers/rhino.ts +139 -0
- package/src/internal/funding/providers/squid.ts +151 -0
- package/src/internal/funding/providers/symbiosis.ts +221 -0
- package/src/internal/index.test.ts +5 -1
- package/src/internal/index.ts +5 -1
- package/src/internal/webhookDestinations/url.ts +49 -45
- package/src/providers/index.test.ts +14 -0
- package/src/providers/index.ts +54 -0
- package/dist/apps/data/FundingQuoteProviders.d.ts +0 -174
- package/dist/apps/data/FundingQuoteProviders.d.ts.map +0 -1
- package/dist/apps/data/FundingQuoteProviders.js +0 -775
- package/dist/apps/data/FundingQuoteProviders.js.map +0 -1
- package/dist/internal/FundingQuotes.d.ts +0 -864
- package/dist/internal/FundingQuotes.d.ts.map +0 -1
- package/dist/internal/FundingQuotes.js +0 -672
- package/dist/internal/FundingQuotes.js.map +0 -1
- package/src/apps/data/FundingQuoteProviders.ts +0 -1043
- package/src/internal/FundingQuotes.test.ts +0 -456
- package/src/internal/FundingQuotes.ts +0 -944
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { JSONColumnType } from 'kysely';
|
|
2
|
+
import type * as Db from '../Db.js';
|
|
3
|
+
import type * as db_Schema from '../Schema.js';
|
|
4
|
+
/** Columns of the `funding_catalogs` table. */
|
|
5
|
+
export type CatalogTable = db_Schema.FundingCatalog;
|
|
6
|
+
/** Columns of the `funding_chains` table. */
|
|
7
|
+
export type ChainTable = Omit<db_Schema.FundingChain, 'aliases' | 'rpcUrls'> & {
|
|
8
|
+
/** Caller-facing chain aliases stored as JSON. */
|
|
9
|
+
aliases: JSONColumnType<db_Schema.FundingChain['aliases'], string, string>;
|
|
10
|
+
/** Public RPC endpoints stored as JSON. */
|
|
11
|
+
rpcUrls: JSONColumnType<db_Schema.FundingChain['rpcUrls'], string, string>;
|
|
12
|
+
};
|
|
13
|
+
/** Columns of the `funding_tokens` table. */
|
|
14
|
+
export type TokenTable = db_Schema.FundingToken;
|
|
15
|
+
/** Columns of the `funding_chain_tokens` table. */
|
|
16
|
+
export type ChainTokenTable = db_Schema.FundingChainToken;
|
|
17
|
+
/** Columns of the `funding_routes` table. */
|
|
18
|
+
export type RouteTable = db_Schema.FundingRoute;
|
|
19
|
+
/** A route row whose `capabilities` may be absent (validated input, fixtures). */
|
|
20
|
+
export type RouteRow = Omit<db_Schema.FundingRoute, 'capabilities'> & {
|
|
21
|
+
/** Executable capability; absent and null both mean indicative-only. */
|
|
22
|
+
capabilities?: db_Schema.FundingRoute['capabilities'] | undefined;
|
|
23
|
+
};
|
|
24
|
+
/** Stored funding catalog rows and version metadata. */
|
|
25
|
+
export type Rows = {
|
|
26
|
+
/** Current catalog metadata, or undefined before the first publish. */
|
|
27
|
+
catalog: db_Schema.FundingCatalog | undefined;
|
|
28
|
+
/** Chain-scoped funding token rows. */
|
|
29
|
+
chainTokens: readonly db_Schema.FundingChainToken[];
|
|
30
|
+
/** Funding chain rows. */
|
|
31
|
+
chains: readonly db_Schema.FundingChain[];
|
|
32
|
+
/** Funding provider route rows. */
|
|
33
|
+
routes: readonly RouteRow[];
|
|
34
|
+
/** Funding token rows. */
|
|
35
|
+
tokens: readonly db_Schema.FundingToken[];
|
|
36
|
+
};
|
|
37
|
+
/** Reads the current funding catalog version metadata. */
|
|
38
|
+
export declare function head(db: Db.Db): Promise<db_Schema.FundingCatalog | undefined>;
|
|
39
|
+
/** Reads every row in the current funding catalog. */
|
|
40
|
+
export declare function read(db: Db.Db): Promise<Rows>;
|
|
41
|
+
/** Replaces the complete funding catalog and advances its version. */
|
|
42
|
+
export declare function publish(db: Db.Db, input: publish.Input): Promise<db_Schema.FundingCatalog>;
|
|
43
|
+
export declare namespace publish {
|
|
44
|
+
/** Complete validated funding catalog rows. */
|
|
45
|
+
type Input = {
|
|
46
|
+
/** Chain-scoped funding token rows. */
|
|
47
|
+
chainTokens: readonly db_Schema.FundingChainToken[];
|
|
48
|
+
/** Funding chain rows. */
|
|
49
|
+
chains: readonly db_Schema.FundingChain[];
|
|
50
|
+
/** Funding provider route rows. */
|
|
51
|
+
routes: readonly RouteRow[];
|
|
52
|
+
/** Funding token rows. */
|
|
53
|
+
tokens: readonly db_Schema.FundingToken[];
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=fundingCatalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fundingCatalog.d.ts","sourceRoot":"","sources":["../../../src/db/tables/fundingCatalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AAI5C,OAAO,KAAK,KAAK,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,KAAK,KAAK,SAAS,MAAM,cAAc,CAAA;AAK9C,+CAA+C;AAC/C,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC,cAAc,CAAA;AAEnD,6CAA6C;AAC7C,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,SAAS,GAAG,SAAS,CAAC,GAAG;IAC7E,kDAAkD;IAClD,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1E,2CAA2C;IAC3C,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAC3E,CAAA;AAED,6CAA6C;AAC7C,MAAM,MAAM,UAAU,GAAG,SAAS,CAAC,YAAY,CAAA;AAE/C,mDAAmD;AACnD,MAAM,MAAM,eAAe,GAAG,SAAS,CAAC,iBAAiB,CAAA;AAEzD,6CAA6C;AAC7C,MAAM,MAAM,UAAU,GAAG,SAAS,CAAC,YAAY,CAAA;AAE/C,kFAAkF;AAClF,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,cAAc,CAAC,GAAG;IACpE,wEAAwE;IACxE,YAAY,CAAC,EAAE,SAAS,CAAC,YAAY,CAAC,cAAc,CAAC,GAAG,SAAS,CAAA;CAClE,CAAA;AAED,wDAAwD;AACxD,MAAM,MAAM,IAAI,GAAG;IACjB,uEAAuE;IACvE,OAAO,EAAE,SAAS,CAAC,cAAc,GAAG,SAAS,CAAA;IAC7C,uCAAuC;IACvC,WAAW,EAAE,SAAS,SAAS,CAAC,iBAAiB,EAAE,CAAA;IACnD,0BAA0B;IAC1B,MAAM,EAAE,SAAS,SAAS,CAAC,YAAY,EAAE,CAAA;IACzC,mCAAmC;IACnC,MAAM,EAAE,SAAS,QAAQ,EAAE,CAAA;IAC3B,0BAA0B;IAC1B,MAAM,EAAE,SAAS,SAAS,CAAC,YAAY,EAAE,CAAA;CAC1C,CAAA;AAED,0DAA0D;AAC1D,wBAAsB,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,cAAc,GAAG,SAAS,CAAC,CAMnF;AAED,sDAAsD;AACtD,wBAAgB,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuB7C;AAED,sEAAsE;AACtE,wBAAgB,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,CAiD1F;AAED,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,+CAA+C;IAC/C,KAAK,KAAK,GAAG;QACX,uCAAuC;QACvC,WAAW,EAAE,SAAS,SAAS,CAAC,iBAAiB,EAAE,CAAA;QACnD,0BAA0B;QAC1B,MAAM,EAAE,SAAS,SAAS,CAAC,YAAY,EAAE,CAAA;QACzC,mCAAmC;QACnC,MAAM,EAAE,SAAS,QAAQ,EAAE,CAAA;QAC3B,0BAA0B;QAC1B,MAAM,EAAE,SAAS,SAAS,CAAC,YAAY,EAAE,CAAA;KAC1C,CAAA;CACF"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { sql } from 'kysely';
|
|
2
|
+
import { Hex } from 'ox';
|
|
3
|
+
const catalogId = 'default';
|
|
4
|
+
const publishLockKey = 0x66636174;
|
|
5
|
+
/** Reads the current funding catalog version metadata. */
|
|
6
|
+
export async function head(db) {
|
|
7
|
+
return db.kysely
|
|
8
|
+
.selectFrom('funding_catalogs')
|
|
9
|
+
.selectAll()
|
|
10
|
+
.where('id', '=', catalogId)
|
|
11
|
+
.executeTakeFirst();
|
|
12
|
+
}
|
|
13
|
+
/** Reads every row in the current funding catalog. */
|
|
14
|
+
export function read(db) {
|
|
15
|
+
return db.transaction(async (tx) => {
|
|
16
|
+
await sql `SELECT pg_advisory_xact_lock(${publishLockKey})`.execute(tx.kysely);
|
|
17
|
+
const catalog = await head(tx);
|
|
18
|
+
const chains = await tx.kysely.selectFrom('funding_chains').selectAll().orderBy('id').execute();
|
|
19
|
+
const tokens = await tx.kysely.selectFrom('funding_tokens').selectAll().orderBy('id').execute();
|
|
20
|
+
const chainTokens = await tx.kysely
|
|
21
|
+
.selectFrom('funding_chain_tokens')
|
|
22
|
+
.selectAll()
|
|
23
|
+
.orderBy('chainId')
|
|
24
|
+
.orderBy('tokenId')
|
|
25
|
+
.execute();
|
|
26
|
+
const routes = await tx.kysely
|
|
27
|
+
.selectFrom('funding_routes')
|
|
28
|
+
.selectAll()
|
|
29
|
+
.orderBy('providerId')
|
|
30
|
+
.orderBy('sourceChainId')
|
|
31
|
+
.orderBy('sourceTokenId')
|
|
32
|
+
.orderBy('destinationChainId')
|
|
33
|
+
.orderBy('destinationTokenId')
|
|
34
|
+
.execute();
|
|
35
|
+
return { catalog, chainTokens, chains, routes, tokens };
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
/** Replaces the complete funding catalog and advances its version. */
|
|
39
|
+
export function publish(db, input) {
|
|
40
|
+
return db.transaction(async (tx) => {
|
|
41
|
+
await sql `SELECT pg_advisory_xact_lock(${publishLockKey})`.execute(tx.kysely);
|
|
42
|
+
const catalog = {
|
|
43
|
+
id: catalogId,
|
|
44
|
+
updatedAt: new Date().toISOString(),
|
|
45
|
+
version: nextVersion(),
|
|
46
|
+
};
|
|
47
|
+
await tx.kysely.deleteFrom('funding_routes').execute();
|
|
48
|
+
await tx.kysely.deleteFrom('funding_chain_tokens').execute();
|
|
49
|
+
await tx.kysely.deleteFrom('funding_tokens').execute();
|
|
50
|
+
await tx.kysely.deleteFrom('funding_chains').execute();
|
|
51
|
+
if (input.chains.length > 0)
|
|
52
|
+
await tx.kysely
|
|
53
|
+
.insertInto('funding_chains')
|
|
54
|
+
.values(input.chains.map((chain) => ({
|
|
55
|
+
...chain,
|
|
56
|
+
aliases: JSON.stringify(chain.aliases),
|
|
57
|
+
rpcUrls: JSON.stringify(chain.rpcUrls),
|
|
58
|
+
})))
|
|
59
|
+
.execute();
|
|
60
|
+
if (input.tokens.length > 0)
|
|
61
|
+
await tx.kysely.insertInto('funding_tokens').values(input.tokens).execute();
|
|
62
|
+
if (input.chainTokens.length > 0)
|
|
63
|
+
await tx.kysely.insertInto('funding_chain_tokens').values(input.chainTokens).execute();
|
|
64
|
+
if (input.routes.length > 0)
|
|
65
|
+
await tx.kysely
|
|
66
|
+
.insertInto('funding_routes')
|
|
67
|
+
.values(input.routes.map((route) => ({ ...route, capabilities: route.capabilities ?? null })))
|
|
68
|
+
.execute();
|
|
69
|
+
await tx.kysely
|
|
70
|
+
.insertInto('funding_catalogs')
|
|
71
|
+
.values(catalog)
|
|
72
|
+
.onConflict((oc) => oc.column('id').doUpdateSet({
|
|
73
|
+
updatedAt: catalog.updatedAt,
|
|
74
|
+
version: catalog.version,
|
|
75
|
+
}))
|
|
76
|
+
.execute();
|
|
77
|
+
return catalog;
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
let lastVersionMs = 0;
|
|
81
|
+
function nextVersion() {
|
|
82
|
+
lastVersionMs = Math.max(Date.now(), lastVersionMs + 1);
|
|
83
|
+
return `${lastVersionMs.toString().padStart(15, '0')}_${Hex.random(4).slice(2)}`;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=fundingCatalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fundingCatalog.js","sourceRoot":"","sources":["../../../src/db/tables/fundingCatalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { type JSONColumnType, type Selectable } from 'kysely';
|
|
2
|
+
import type * as Db from '../Db.js';
|
|
3
|
+
import type * as db_Schema from '../Schema.js';
|
|
4
|
+
/** Columns of the `funding_deposit_addresses` table. */
|
|
5
|
+
export type Table = Omit<db_Schema.FundingDepositAddress, 'providerRequestIds'> & {
|
|
6
|
+
/** Private provider request identifiers stored as JSON. */
|
|
7
|
+
providerRequestIds: JSONColumnType<readonly string[], string, string>;
|
|
8
|
+
};
|
|
9
|
+
/** A stored funding deposit address. */
|
|
10
|
+
export type Record = Selectable<Table>;
|
|
11
|
+
/** Ownership filter derived from the authenticated API key. */
|
|
12
|
+
export type Owner = {
|
|
13
|
+
/** Key environment. */
|
|
14
|
+
environment: Record['environment'];
|
|
15
|
+
/** Owning organization id (`org_…`). */
|
|
16
|
+
orgId: string;
|
|
17
|
+
/** Attributed project id for project-scoped API keys. */
|
|
18
|
+
projectId?: string | undefined;
|
|
19
|
+
};
|
|
20
|
+
/** Identity fields that make one reusable address match a caller request. */
|
|
21
|
+
export type Match = Owner & {
|
|
22
|
+
/** Customer destination token key. */
|
|
23
|
+
destinationTokenKey: string;
|
|
24
|
+
/** Tempo account that receives completed deposits. */
|
|
25
|
+
recipient: string;
|
|
26
|
+
/** Source-chain account that receives refunds. */
|
|
27
|
+
refundAddress: string;
|
|
28
|
+
/** Source chain CAIP-2 id. */
|
|
29
|
+
sourceChainId: string;
|
|
30
|
+
/** Source token key. */
|
|
31
|
+
sourceTokenKey: string;
|
|
32
|
+
/** Whether Tempo guarantees normalized 1:1 delivery. */
|
|
33
|
+
subsidize: boolean;
|
|
34
|
+
};
|
|
35
|
+
/** Inserts a provisioned funding deposit address. */
|
|
36
|
+
export declare function insert(db: Db.Db, record: Record): Promise<Record>;
|
|
37
|
+
/** Inserts an address or returns the concurrently-created matching resource. */
|
|
38
|
+
export declare function insertOrGet(db: Db.Db, options: insertOrGet.Options): Promise<Record>;
|
|
39
|
+
export declare namespace insertOrGet {
|
|
40
|
+
/** Record and stable identity used by create-or-get. */
|
|
41
|
+
type Options = {
|
|
42
|
+
/** Stable customer-visible address identity. */
|
|
43
|
+
match: Match;
|
|
44
|
+
/** Provisioned address record to insert. */
|
|
45
|
+
record: Record;
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/** Gets a funding deposit address without ownership scoping. */
|
|
49
|
+
export declare function get(db: Db.Db, id: string): Promise<Record | undefined>;
|
|
50
|
+
/** Gets a funding deposit address by its provider-owned address. */
|
|
51
|
+
export declare function getByProviderAddress(db: Db.Db, options: getByProviderAddress.Options): Promise<Record | undefined>;
|
|
52
|
+
export declare namespace getByProviderAddress {
|
|
53
|
+
/** Provider address identity received from a reconciliation trigger. */
|
|
54
|
+
type Options = {
|
|
55
|
+
/** Provider-owned reusable deposit address. */
|
|
56
|
+
address: string;
|
|
57
|
+
/** Funding provider id. */
|
|
58
|
+
providerId: string;
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/** Gets an owner-visible funding deposit address. */
|
|
62
|
+
export declare function getOwned(db: Db.Db, owner: Owner, id: string): Promise<Record | undefined>;
|
|
63
|
+
/** Gets the reusable address that matches one owner and route identity. */
|
|
64
|
+
export declare function getMatching(db: Db.Db, match: Match): Promise<Record | undefined>;
|
|
65
|
+
/** Claims a bounded batch of active addresses due for provider reconciliation. */
|
|
66
|
+
export declare function claimDue(db: Db.Db, options: claimDue.Options): Promise<readonly Record[]>;
|
|
67
|
+
export declare namespace claimDue {
|
|
68
|
+
/** Provider and lease bounds for one reconciliation claim. */
|
|
69
|
+
type Options = {
|
|
70
|
+
/** Exclusive upper bound on rows claimed in one tick. */
|
|
71
|
+
limit: number;
|
|
72
|
+
/** Expiry time assigned to each claimed lease. */
|
|
73
|
+
leaseUntil: string;
|
|
74
|
+
/** Current time used for due and expired-lease comparisons. */
|
|
75
|
+
now: string;
|
|
76
|
+
/** Funding provider whose addresses should be claimed. */
|
|
77
|
+
providerId: string;
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/** Claims one active address unless another reconciliation owns its lease. */
|
|
81
|
+
export declare function claim(db: Db.Db, options: claim.Options): Promise<Record | undefined>;
|
|
82
|
+
export declare namespace claim {
|
|
83
|
+
/** Identity and lease bounds for one reconciliation claim. */
|
|
84
|
+
type Options = {
|
|
85
|
+
/** Funding deposit address id (`fda_…`). */
|
|
86
|
+
id: string;
|
|
87
|
+
/** Expiry time assigned to the claimed lease. */
|
|
88
|
+
leaseUntil: string;
|
|
89
|
+
/** Current time used for expired-lease comparison. */
|
|
90
|
+
now: string;
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
/** Extends an active reconciliation lease without changing its fence. */
|
|
94
|
+
export declare function renewPoll(db: Db.Db, options: renewPoll.Options): Promise<boolean>;
|
|
95
|
+
export declare namespace renewPoll {
|
|
96
|
+
/** Lease identity and renewed expiry guarded by the current fence. */
|
|
97
|
+
type Options = {
|
|
98
|
+
/** Funding deposit address id (`fda_…`). */
|
|
99
|
+
id: string;
|
|
100
|
+
/** Replacement reconciliation lease expiry. */
|
|
101
|
+
leaseUntil: string;
|
|
102
|
+
/** Fencing token returned by the claim operation. */
|
|
103
|
+
pollLeaseVersion: number;
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
/** Completes an owned reconciliation lease and schedules the address again. */
|
|
107
|
+
export declare function completePoll(db: Db.Db, options: completePoll.Options): Promise<Record | undefined>;
|
|
108
|
+
export declare namespace completePoll {
|
|
109
|
+
/** Successful reconciliation result guarded by the claimed lease version. */
|
|
110
|
+
type Options = {
|
|
111
|
+
/** Funding deposit address id (`fda_…`). */
|
|
112
|
+
id: string;
|
|
113
|
+
/** Time when provider reconciliation completed. */
|
|
114
|
+
lastPolledAt: string;
|
|
115
|
+
/** Time when this address becomes due again. */
|
|
116
|
+
nextPollAt: string;
|
|
117
|
+
/** Fencing token returned by {@link claimDue}. */
|
|
118
|
+
pollLeaseVersion: number;
|
|
119
|
+
/** Provider request identifiers retained from address provisioning. */
|
|
120
|
+
providerRequestIds: readonly string[];
|
|
121
|
+
/** Bounded provider reconciliation state. */
|
|
122
|
+
providerState: Record['providerState'];
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
/** Releases an owned reconciliation lease after failure and schedules a retry. */
|
|
126
|
+
export declare function failPoll(db: Db.Db, options: failPoll.Options): Promise<Record | undefined>;
|
|
127
|
+
export declare namespace failPoll {
|
|
128
|
+
/** Failed reconciliation result guarded by the claimed lease version. */
|
|
129
|
+
type Options = {
|
|
130
|
+
/** Funding deposit address id (`fda_…`). */
|
|
131
|
+
id: string;
|
|
132
|
+
/** Time when this address becomes eligible for retry. */
|
|
133
|
+
nextPollAt: string;
|
|
134
|
+
/** Fencing token returned by {@link claimDue}. */
|
|
135
|
+
pollLeaseVersion: number;
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
/** Applies a version-guarded deposit address status update. */
|
|
139
|
+
export declare function update(db: Db.Db, options: update.Options): Promise<Record | undefined>;
|
|
140
|
+
export declare namespace update {
|
|
141
|
+
/** Guarded address update fields. */
|
|
142
|
+
type Options = {
|
|
143
|
+
/** Stored version required for the update. */
|
|
144
|
+
expectedVersion: number;
|
|
145
|
+
/** Funding deposit address id (`fda_…`). */
|
|
146
|
+
id: string;
|
|
147
|
+
/** Replacement lifecycle status. */
|
|
148
|
+
status: Record['status'];
|
|
149
|
+
/** New material update time. */
|
|
150
|
+
updatedAt: string;
|
|
151
|
+
/** New material version. */
|
|
152
|
+
version: number;
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
/** Provider address conflicted with a different customer-visible identity. */
|
|
156
|
+
export declare class ConflictError extends Error {
|
|
157
|
+
name: string;
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=fundingDepositAddresses.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fundingDepositAddresses.d.ts","sourceRoot":"","sources":["../../../src/db/tables/fundingDepositAddresses.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import { sql } from 'kysely';
|
|
2
|
+
import * as pg from 'pg';
|
|
3
|
+
/** Inserts a provisioned funding deposit address. */
|
|
4
|
+
export function insert(db, record) {
|
|
5
|
+
return db.kysely
|
|
6
|
+
.insertInto('funding_deposit_addresses')
|
|
7
|
+
.values({
|
|
8
|
+
...record,
|
|
9
|
+
providerRequestIds: JSON.stringify(record.providerRequestIds),
|
|
10
|
+
})
|
|
11
|
+
.returningAll()
|
|
12
|
+
.executeTakeFirstOrThrow();
|
|
13
|
+
}
|
|
14
|
+
/** Inserts an address or returns the concurrently-created matching resource. */
|
|
15
|
+
export async function insertOrGet(db, options) {
|
|
16
|
+
const record = await db.kysely
|
|
17
|
+
.insertInto('funding_deposit_addresses')
|
|
18
|
+
.values({
|
|
19
|
+
...options.record,
|
|
20
|
+
providerRequestIds: JSON.stringify(options.record.providerRequestIds),
|
|
21
|
+
})
|
|
22
|
+
.onConflict((oc) => oc
|
|
23
|
+
.columns([
|
|
24
|
+
'orgId',
|
|
25
|
+
'environment',
|
|
26
|
+
'projectId',
|
|
27
|
+
'sourceChainId',
|
|
28
|
+
'sourceTokenKey',
|
|
29
|
+
'destinationTokenKey',
|
|
30
|
+
'recipient',
|
|
31
|
+
'refundAddress',
|
|
32
|
+
'subsidize',
|
|
33
|
+
])
|
|
34
|
+
.doNothing())
|
|
35
|
+
.returningAll()
|
|
36
|
+
.executeTakeFirst()
|
|
37
|
+
.catch((cause) => {
|
|
38
|
+
if (cause instanceof pg.DatabaseError &&
|
|
39
|
+
cause.code === '23505' &&
|
|
40
|
+
cause.constraint === 'funding_deposit_addresses_provider_address_key')
|
|
41
|
+
throw new ConflictError();
|
|
42
|
+
throw cause;
|
|
43
|
+
});
|
|
44
|
+
if (record)
|
|
45
|
+
return record;
|
|
46
|
+
const existing = await getMatching(db, options.match);
|
|
47
|
+
if (existing)
|
|
48
|
+
return existing;
|
|
49
|
+
throw new ConflictError();
|
|
50
|
+
}
|
|
51
|
+
/** Gets a funding deposit address without ownership scoping. */
|
|
52
|
+
export function get(db, id) {
|
|
53
|
+
return db.kysely
|
|
54
|
+
.selectFrom('funding_deposit_addresses')
|
|
55
|
+
.selectAll()
|
|
56
|
+
.where('id', '=', id)
|
|
57
|
+
.executeTakeFirst();
|
|
58
|
+
}
|
|
59
|
+
/** Gets a funding deposit address by its provider-owned address. */
|
|
60
|
+
export function getByProviderAddress(db, options) {
|
|
61
|
+
const address = /^0x[0-9a-fA-F]{40}$/.test(options.address)
|
|
62
|
+
? options.address.toLowerCase()
|
|
63
|
+
: options.address;
|
|
64
|
+
return db.kysely
|
|
65
|
+
.selectFrom('funding_deposit_addresses')
|
|
66
|
+
.selectAll()
|
|
67
|
+
.where('address', '=', address)
|
|
68
|
+
.where('providerId', '=', options.providerId)
|
|
69
|
+
.executeTakeFirst();
|
|
70
|
+
}
|
|
71
|
+
/** Gets an owner-visible funding deposit address. */
|
|
72
|
+
export function getOwned(db, owner, id) {
|
|
73
|
+
let query = db.kysely
|
|
74
|
+
.selectFrom('funding_deposit_addresses')
|
|
75
|
+
.selectAll()
|
|
76
|
+
.where('environment', '=', owner.environment)
|
|
77
|
+
.where('id', '=', id)
|
|
78
|
+
.where('orgId', '=', owner.orgId);
|
|
79
|
+
if (owner.projectId !== undefined)
|
|
80
|
+
query = query.where('projectId', '=', owner.projectId);
|
|
81
|
+
return query.executeTakeFirst();
|
|
82
|
+
}
|
|
83
|
+
/** Gets the reusable address that matches one owner and route identity. */
|
|
84
|
+
export function getMatching(db, match) {
|
|
85
|
+
let query = db.kysely
|
|
86
|
+
.selectFrom('funding_deposit_addresses')
|
|
87
|
+
.selectAll()
|
|
88
|
+
.where('destinationTokenKey', '=', match.destinationTokenKey)
|
|
89
|
+
.where('environment', '=', match.environment)
|
|
90
|
+
.where('orgId', '=', match.orgId)
|
|
91
|
+
.where('recipient', '=', match.recipient)
|
|
92
|
+
.where('refundAddress', '=', match.refundAddress)
|
|
93
|
+
.where('sourceChainId', '=', match.sourceChainId)
|
|
94
|
+
.where('sourceTokenKey', '=', match.sourceTokenKey)
|
|
95
|
+
.where('subsidize', '=', match.subsidize);
|
|
96
|
+
query =
|
|
97
|
+
match.projectId === undefined
|
|
98
|
+
? query.where('projectId', 'is', null)
|
|
99
|
+
: query.where('projectId', '=', match.projectId);
|
|
100
|
+
return query.executeTakeFirst();
|
|
101
|
+
}
|
|
102
|
+
/** Claims a bounded batch of active addresses due for provider reconciliation. */
|
|
103
|
+
export function claimDue(db, options) {
|
|
104
|
+
return db.transaction(async (tx) => {
|
|
105
|
+
const due = await tx.kysely
|
|
106
|
+
.selectFrom('funding_deposit_addresses')
|
|
107
|
+
.select('id')
|
|
108
|
+
.where('nextPollAt', '<=', options.now)
|
|
109
|
+
.where('providerId', '=', options.providerId)
|
|
110
|
+
.where('status', '=', 'active')
|
|
111
|
+
.where((eb) => eb.or([eb('pollLeaseUntil', 'is', null), eb('pollLeaseUntil', '<=', options.now)]))
|
|
112
|
+
.orderBy('nextPollAt', 'asc')
|
|
113
|
+
.orderBy('id', 'asc')
|
|
114
|
+
.limit(options.limit)
|
|
115
|
+
.forUpdate()
|
|
116
|
+
.skipLocked()
|
|
117
|
+
.execute();
|
|
118
|
+
if (due.length === 0)
|
|
119
|
+
return [];
|
|
120
|
+
return tx.kysely
|
|
121
|
+
.updateTable('funding_deposit_addresses')
|
|
122
|
+
.set({
|
|
123
|
+
pollLeaseUntil: options.leaseUntil,
|
|
124
|
+
pollLeaseVersion: sql `poll_lease_version + 1`,
|
|
125
|
+
})
|
|
126
|
+
.where('id', 'in', due.map((record) => record.id))
|
|
127
|
+
.returningAll()
|
|
128
|
+
.execute();
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
/** Claims one active address unless another reconciliation owns its lease. */
|
|
132
|
+
export function claim(db, options) {
|
|
133
|
+
return db.kysely
|
|
134
|
+
.updateTable('funding_deposit_addresses')
|
|
135
|
+
.set({
|
|
136
|
+
pollLeaseUntil: options.leaseUntil,
|
|
137
|
+
pollLeaseVersion: sql `poll_lease_version + 1`,
|
|
138
|
+
})
|
|
139
|
+
.where('id', '=', options.id)
|
|
140
|
+
.where('status', '=', 'active')
|
|
141
|
+
.where((eb) => eb.or([eb('pollLeaseUntil', 'is', null), eb('pollLeaseUntil', '<=', options.now)]))
|
|
142
|
+
.returningAll()
|
|
143
|
+
.executeTakeFirst();
|
|
144
|
+
}
|
|
145
|
+
/** Extends an active reconciliation lease without changing its fence. */
|
|
146
|
+
export async function renewPoll(db, options) {
|
|
147
|
+
return Boolean(await db.kysely
|
|
148
|
+
.updateTable('funding_deposit_addresses')
|
|
149
|
+
.set({ pollLeaseUntil: options.leaseUntil })
|
|
150
|
+
.where('id', '=', options.id)
|
|
151
|
+
.where('pollLeaseUntil', 'is not', null)
|
|
152
|
+
.where('pollLeaseVersion', '=', options.pollLeaseVersion)
|
|
153
|
+
.where('status', '=', 'active')
|
|
154
|
+
.returning('id')
|
|
155
|
+
.executeTakeFirst());
|
|
156
|
+
}
|
|
157
|
+
/** Completes an owned reconciliation lease and schedules the address again. */
|
|
158
|
+
export function completePoll(db, options) {
|
|
159
|
+
return db.kysely
|
|
160
|
+
.updateTable('funding_deposit_addresses')
|
|
161
|
+
.set({
|
|
162
|
+
lastPolledAt: options.lastPolledAt,
|
|
163
|
+
nextPollAt: options.nextPollAt,
|
|
164
|
+
pollFailureCount: 0,
|
|
165
|
+
pollLeaseUntil: null,
|
|
166
|
+
providerRequestIds: JSON.stringify(options.providerRequestIds),
|
|
167
|
+
providerState: options.providerState,
|
|
168
|
+
})
|
|
169
|
+
.where('id', '=', options.id)
|
|
170
|
+
.where('pollLeaseVersion', '=', options.pollLeaseVersion)
|
|
171
|
+
.returningAll()
|
|
172
|
+
.executeTakeFirst();
|
|
173
|
+
}
|
|
174
|
+
/** Releases an owned reconciliation lease after failure and schedules a retry. */
|
|
175
|
+
export function failPoll(db, options) {
|
|
176
|
+
return db.kysely
|
|
177
|
+
.updateTable('funding_deposit_addresses')
|
|
178
|
+
.set({
|
|
179
|
+
nextPollAt: options.nextPollAt,
|
|
180
|
+
pollFailureCount: sql `poll_failure_count + 1`,
|
|
181
|
+
pollLeaseUntil: null,
|
|
182
|
+
})
|
|
183
|
+
.where('id', '=', options.id)
|
|
184
|
+
.where('pollLeaseVersion', '=', options.pollLeaseVersion)
|
|
185
|
+
.returningAll()
|
|
186
|
+
.executeTakeFirst();
|
|
187
|
+
}
|
|
188
|
+
/** Applies a version-guarded deposit address status update. */
|
|
189
|
+
export function update(db, options) {
|
|
190
|
+
return db.kysely
|
|
191
|
+
.updateTable('funding_deposit_addresses')
|
|
192
|
+
.set({
|
|
193
|
+
status: options.status,
|
|
194
|
+
updatedAt: options.updatedAt,
|
|
195
|
+
version: options.version,
|
|
196
|
+
})
|
|
197
|
+
.where('id', '=', options.id)
|
|
198
|
+
.where('version', '=', options.expectedVersion)
|
|
199
|
+
.returningAll()
|
|
200
|
+
.executeTakeFirst();
|
|
201
|
+
}
|
|
202
|
+
/** Provider address conflicted with a different customer-visible identity. */
|
|
203
|
+
export class ConflictError extends Error {
|
|
204
|
+
name = 'FundingDepositAddresses.ConflictError';
|
|
205
|
+
}
|
|
206
|
+
//# sourceMappingURL=fundingDepositAddresses.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fundingDepositAddresses.js","sourceRoot":"","sources":["../../../src/db/tables/fundingDepositAddresses.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import type { JSONColumnType, Selectable } from 'kysely';
|
|
2
|
+
import type * as Db from '../Db.js';
|
|
3
|
+
import type * as db_Schema from '../Schema.js';
|
|
4
|
+
/** Columns of the `funding_deposits` table. */
|
|
5
|
+
export type Table = Omit<db_Schema.FundingDeposit, 'providerRequestIds' | 'providerTransactionHashes'> & {
|
|
6
|
+
/** Private provider request identifiers stored as JSON. */
|
|
7
|
+
providerRequestIds: JSONColumnType<readonly string[], string, string>;
|
|
8
|
+
/** Private provider transaction references stored as JSON. */
|
|
9
|
+
providerTransactionHashes: JSONColumnType<readonly string[], string, string>;
|
|
10
|
+
};
|
|
11
|
+
/** A stored funding deposit. */
|
|
12
|
+
export type Record = Selectable<Table>;
|
|
13
|
+
/** Ownership filter inherited from the deposit address. */
|
|
14
|
+
export type Owner = {
|
|
15
|
+
/** Key environment. */
|
|
16
|
+
environment: Record['environment'];
|
|
17
|
+
/** Owning organization id (`org_…`). */
|
|
18
|
+
orgId: string;
|
|
19
|
+
/** Attributed project id for project-scoped API keys. */
|
|
20
|
+
projectId?: string | undefined;
|
|
21
|
+
};
|
|
22
|
+
/** Inserts one provider-observed source transfer as a funding deposit. */
|
|
23
|
+
export declare function insert(db: Db.Db, record: Record): Promise<Record>;
|
|
24
|
+
/** Gets deposits created from one provider-observed source transaction. */
|
|
25
|
+
export declare function listByProviderObservation(db: Db.Db, options: listByProviderObservation.Options): Promise<Record[]>;
|
|
26
|
+
export declare namespace listByProviderObservation {
|
|
27
|
+
/** Provider observation fields that identify one source transaction. */
|
|
28
|
+
type Options = {
|
|
29
|
+
/** Funding deposit address that received the transfer. */
|
|
30
|
+
depositAddressId: string;
|
|
31
|
+
/** Provider request that reported the transfer. */
|
|
32
|
+
providerRequestId: string;
|
|
33
|
+
/** Provider-observed source transaction reference. */
|
|
34
|
+
sourceTransactionHash: string;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
/** Gets deposits associated with one address and source transaction. */
|
|
38
|
+
export declare function listBySourceTransaction(db: Db.Db, options: listBySourceTransaction.Options): Promise<Record[]>;
|
|
39
|
+
export declare namespace listBySourceTransaction {
|
|
40
|
+
/** Source transaction fields scoped to one deposit address. */
|
|
41
|
+
type Options = {
|
|
42
|
+
/** Funding deposit address that received the transfer. */
|
|
43
|
+
depositAddressId: string;
|
|
44
|
+
/** Provider-observed source transaction reference. */
|
|
45
|
+
sourceTransactionHash: string;
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/** Gets a funding deposit without ownership scoping. */
|
|
49
|
+
export declare function get(db: Db.Db, id: string): Promise<Record | undefined>;
|
|
50
|
+
/** Gets an owner-visible funding deposit. */
|
|
51
|
+
export declare function getOwned(db: Db.Db, owner: Owner, id: string): Promise<Record | undefined>;
|
|
52
|
+
/** Lists one owner-visible address's deposits newest-first. */
|
|
53
|
+
export declare function listByAddress(db: Db.Db, owner: Owner, addressId: string, options: listByAddress.Options): Promise<Record[]>;
|
|
54
|
+
export declare namespace listByAddress {
|
|
55
|
+
/** Cursor fields for the last deposit returned by the previous page. */
|
|
56
|
+
type Cursor = {
|
|
57
|
+
/** Deposit creation time. */
|
|
58
|
+
createdAt: string;
|
|
59
|
+
/** Deposit id, used as a deterministic tie-breaker. */
|
|
60
|
+
id: string;
|
|
61
|
+
};
|
|
62
|
+
/** Paging options for one address's deposits. */
|
|
63
|
+
type Options = {
|
|
64
|
+
/** Exclusive lower bound from the previous page. */
|
|
65
|
+
cursor?: Cursor | undefined;
|
|
66
|
+
/** Maximum rows to return. */
|
|
67
|
+
limit: number;
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/** Applies a version-guarded deposit update. */
|
|
71
|
+
export declare function update(db: Db.Db, options: update.Options): Promise<Record | undefined>;
|
|
72
|
+
export declare namespace update {
|
|
73
|
+
/** Guarded deposit update fields. */
|
|
74
|
+
type Options = {
|
|
75
|
+
/** Stored version required for the update. */
|
|
76
|
+
expectedVersion: number;
|
|
77
|
+
/** Funding deposit id (`fdp_…`). */
|
|
78
|
+
id: string;
|
|
79
|
+
/** Provider output amount confirmed on Tempo. */
|
|
80
|
+
providerOutputAmount: Record['providerOutputAmount'];
|
|
81
|
+
/** Provider request that first reported the deposit. */
|
|
82
|
+
providerRequestId: Record['providerRequestId'];
|
|
83
|
+
/** Private provider request identifiers. */
|
|
84
|
+
providerRequestIds: Record['providerRequestIds'];
|
|
85
|
+
/** Bounded private provider state. */
|
|
86
|
+
providerState: Record['providerState'];
|
|
87
|
+
/** Provider-leg transaction references. */
|
|
88
|
+
providerTransactionHashes: Record['providerTransactionHashes'];
|
|
89
|
+
/** Deposit position within the provider request. */
|
|
90
|
+
providerTransferIndex: Record['providerTransferIndex'];
|
|
91
|
+
/** Bounded private retry state. */
|
|
92
|
+
retryState: Record['retryState'];
|
|
93
|
+
/** Persisted settlement transaction bytes for exactly-once rebroadcast. */
|
|
94
|
+
settlementTransaction: Record['settlementTransaction'];
|
|
95
|
+
/** Persisted settlement transaction hash. */
|
|
96
|
+
settlementTransactionHash: Record['settlementTransactionHash'];
|
|
97
|
+
/** Replacement public snapshot. */
|
|
98
|
+
snapshot: Record['snapshot'];
|
|
99
|
+
/** Verified transfer position in the source transaction, or null. */
|
|
100
|
+
sourceTransferIndex: Record['sourceTransferIndex'];
|
|
101
|
+
/** Replacement lifecycle status. */
|
|
102
|
+
status: Record['status'];
|
|
103
|
+
/** Replacement customer-safe reason. */
|
|
104
|
+
statusReason: Record['statusReason'];
|
|
105
|
+
/** Destination token amount supplied by Tempo. */
|
|
106
|
+
subsidyAmount: Record['subsidyAmount'];
|
|
107
|
+
/** Tempo gas paid for settlement, in base units. */
|
|
108
|
+
tempoGasPaid: Record['tempoGasPaid'];
|
|
109
|
+
/** New material update time. */
|
|
110
|
+
updatedAt: string;
|
|
111
|
+
/** New material version. */
|
|
112
|
+
version: number;
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=fundingDeposits.d.ts.map
|