tapimo 0.7.1 → 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 +29 -8
- package/dist/ApiKeys.d.ts.map +1 -1
- package/dist/ApiKeys.js +24 -5
- package/dist/ApiKeys.js.map +1 -1
- package/dist/App.d.ts +20680 -15487
- package/dist/App.d.ts.map +1 -1
- package/dist/App.js +250 -129
- 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 +667 -76
- 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 +107 -11
- package/dist/admin/apps/api-keys.d.ts.map +1 -1
- package/dist/admin/apps/api-keys.js +145 -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/organizations.d.ts +2 -0
- package/dist/admin/apps/organizations.d.ts.map +1 -1
- package/dist/admin/apps/verified-tokens.d.ts +74 -74
- 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 +4 -0
- package/dist/analytics/Analytics.d.ts.map +1 -1
- package/dist/analytics/Analytics.js +21 -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 +5666 -3934
- package/dist/apps/data/App.d.ts.map +1 -1
- package/dist/apps/data/App.js +90 -22
- 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 +56 -56
- 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 +65 -65
- package/dist/apps/data/routes/balances.d.ts +14 -14
- package/dist/apps/data/routes/balances.js +5 -5
- package/dist/apps/data/routes/balances.js.map +1 -1
- package/dist/apps/data/routes/blocks.d.ts +39 -39
- package/dist/apps/data/routes/coingecko.d.ts +54 -54
- 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 +2574 -0
- package/dist/apps/data/routes/earn.d.ts.map +1 -0
- package/dist/apps/data/routes/earn.js +1574 -0
- package/dist/apps/data/routes/earn.js.map +1 -0
- package/dist/apps/data/routes/exchanges.d.ts +1626 -719
- 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/indexer.d.ts +35 -35
- package/dist/apps/data/routes/indexer.d.ts.map +1 -1
- package/dist/apps/data/routes/indexer.js +23 -3
- package/dist/apps/data/routes/indexer.js.map +1 -1
- package/dist/apps/data/routes/receipts.d.ts +33 -33
- 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 +6 -6
- package/dist/apps/data/routes/rpc.d.ts.map +1 -1
- package/dist/apps/data/routes/rpc.js +214 -22
- package/dist/apps/data/routes/rpc.js.map +1 -1
- package/dist/apps/data/routes/tokenlist.d.ts +1 -1
- 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 +115 -87
- 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 +54 -54
- 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/verified-tokens.d.ts +36 -36
- package/dist/apps/data/routes/webhooks.d.ts +370 -368
- 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/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/funding/App.d.ts +3183 -0
- 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/{data/routes/funding.d.ts → funding/routes/quotes.d.ts} +26 -396
- 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 +3 -1
- package/dist/apps/index.d.ts.map +1 -1
- package/dist/apps/index.js +3 -1
- package/dist/apps/index.js.map +1 -1
- package/dist/apps/management/App.d.ts +839 -574
- package/dist/apps/management/App.d.ts.map +1 -1
- 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 +296 -19
- package/dist/apps/management/routes/api-keys.d.ts.map +1 -1
- package/dist/apps/management/routes/api-keys.js +77 -9
- 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 +35 -35
- package/dist/apps/management/routes/invitations.d.ts +17 -17
- 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 +38 -38
- package/dist/apps/management/routes/me.d.ts +6 -6
- package/dist/apps/management/routes/members.d.ts +69 -69
- package/dist/apps/management/routes/orgs.d.ts +16 -16
- 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 +19 -19
- package/dist/apps/management/routes/scopes.d.ts +1 -1
- package/dist/apps/management/routes/scopes.js +2 -2
- package/dist/apps/management/routes/scopes.js.map +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 +122 -122
- 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/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 +57 -58
- 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/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 +22 -0
- package/dist/db/Db.d.ts.map +1 -1
- package/dist/db/Db.js +379 -0
- package/dist/db/Db.js.map +1 -1
- package/dist/db/Schema.d.ts +933 -1
- package/dist/db/Schema.d.ts.map +1 -1
- package/dist/db/Schema.js +289 -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 +172 -0
- package/dist/db/tables/fundingDepositAddresses.d.ts.map +1 -0
- package/dist/db/tables/fundingDepositAddresses.js +218 -0
- package/dist/db/tables/fundingDepositAddresses.js.map +1 -0
- 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 +171 -0
- package/dist/db/tables/fundingDeposits.d.ts.map +1 -0
- package/dist/db/tables/fundingDeposits.js +182 -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 +37 -11
- package/dist/internal/Auth.d.ts.map +1 -1
- package/dist/internal/Auth.js +75 -16
- package/dist/internal/Auth.js.map +1 -1
- package/dist/internal/Cache.d.ts.map +1 -1
- package/dist/internal/Cache.js +17 -11
- 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 +10 -3
- package/dist/internal/EdgeCache.d.ts.map +1 -1
- package/dist/internal/EdgeCache.js +43 -11
- 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/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/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 +2 -2
- package/dist/internal/OpenApi.d.ts.map +1 -1
- package/dist/internal/OpenApi.js +4 -1
- 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 +49 -24
- package/dist/internal/Tidx.d.ts.map +1 -1
- package/dist/internal/Tidx.js +90 -12
- package/dist/internal/Tidx.js.map +1 -1
- package/dist/internal/Viem.d.ts +90 -65
- package/dist/internal/Viem.d.ts.map +1 -1
- package/dist/internal/Viem.js +90 -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 +408 -0
- package/dist/internal/funding/Deposit.d.ts.map +1 -0
- package/dist/internal/funding/Deposit.js +318 -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 +48 -0
- package/dist/internal/funding/Evidence.d.ts.map +1 -0
- package/dist/internal/funding/Evidence.js +315 -0
- package/dist/internal/funding/Evidence.js.map +1 -0
- package/dist/internal/funding/Provider.d.ts +1288 -0
- package/dist/internal/funding/Provider.d.ts.map +1 -0
- package/dist/internal/funding/Provider.js +1086 -0
- package/dist/internal/funding/Provider.js.map +1 -0
- package/dist/internal/funding/Reconciliation.d.ts +127 -0
- package/dist/internal/funding/Reconciliation.d.ts.map +1 -0
- package/dist/internal/funding/Reconciliation.js +885 -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/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 +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 +14 -0
- package/dist/internal/funding/index.d.ts.map +1 -0
- package/dist/internal/funding/index.js +14 -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 +88 -0
- package/dist/internal/funding/providers/relay.d.ts.map +1 -0
- package/dist/internal/funding/providers/relay.js +871 -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 +10 -5
- package/src/ApiKey.test.ts +35 -0
- package/src/ApiKey.ts +27 -0
- package/src/ApiKeys.test.ts +40 -7
- package/src/ApiKeys.ts +46 -10
- package/src/App.test.ts +108 -15
- package/src/App.ts +296 -138
- package/src/Assets.ts +29 -4
- package/src/Client.test-d.ts +809 -37
- 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 +190 -22
- package/src/admin/apps/api-keys.ts +170 -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 +24 -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 +184 -3
- package/src/apps/data/App.test.ts +28 -23
- package/src/apps/data/App.ts +95 -36
- 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 +1391 -0
- package/src/apps/data/routes/earn.ts +2188 -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/indexer.test.ts +43 -34
- package/src/apps/data/routes/indexer.ts +21 -3
- 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 +245 -25
- package/src/apps/data/routes/tokenlist.ts +72 -19
- package/src/apps/data/routes/tokens.test.ts +6 -8
- 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/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 +3 -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 +103 -3
- package/src/apps/management/routes/api-keys.ts +98 -10
- 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/mcp.test.ts +17 -2
- package/src/apps/mcp.ts +18 -13
- package/src/apps/metadata.ts +12 -0
- 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 +128 -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/cloudflare.ts +279 -0
- package/src/db/Db.ts +501 -0
- package/src/db/Schema.ts +349 -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 +404 -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 +399 -0
- package/src/db/tables/fundingDeposits.ts +373 -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 +225 -5
- package/src/internal/Auth.ts +109 -20
- package/src/internal/Cache.test.ts +37 -3
- package/src/internal/Cache.ts +14 -10
- 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 +26 -7
- package/src/internal/EdgeCache.ts +48 -9
- 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/IpAllowlist.test.ts +52 -0
- package/src/internal/IpAllowlist.ts +39 -0
- package/src/internal/Log.test-d.ts +41 -8
- package/src/internal/Log.test.ts +196 -9
- 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 +4 -1
- 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 +240 -18
- package/src/internal/Tidx.ts +129 -33
- package/src/internal/VerifiedTokens.test.ts +15 -0
- package/src/internal/Viem.test.ts +198 -17
- package/src/internal/Viem.ts +127 -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 +522 -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 +425 -0
- package/src/internal/funding/Provider.test.ts +1328 -0
- package/src/internal/funding/Provider.ts +1911 -0
- package/src/internal/funding/Reconciliation.local.test.ts +511 -0
- package/src/internal/funding/Reconciliation.test.ts +3037 -0
- package/src/internal/funding/Reconciliation.ts +1202 -0
- package/src/internal/funding/Route.test.ts +66 -0
- package/src/internal/funding/Route.ts +29 -0
- package/src/internal/funding/SourceObservation.test.ts +301 -0
- package/src/internal/funding/SourceObservation.ts +267 -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 +21 -0
- package/src/internal/funding/index.ts +13 -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 +564 -0
- package/src/internal/funding/providers/relay.ts +1060 -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/apps/data/routes/funding.d.ts.map +0 -1
- package/dist/apps/data/routes/funding.js +0 -410
- package/dist/apps/data/routes/funding.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/apps/data/routes/funding.test.ts +0 -503
- package/src/apps/data/routes/funding.ts +0 -604
- package/src/internal/FundingQuotes.test.ts +0 -456
- package/src/internal/FundingQuotes.ts +0 -944
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Idempotency.d.ts","sourceRoot":"","sources":["../../../../src/apps/mpp/internal/Idempotency.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,gBAAgB,MAAM,kCAAkC,CAAA;AAEpE,OAAO,KAAK,KAAK,GAAG,MAAM,WAAW,CAAA;AAErC;;;;;GAKG;AAEH,qEAAqE;AACrE,MAAM,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAA;AAYhD,sFAAsF;AACtF,wBAAgB,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,UAE9C;AAED,iEAAiE;AACjE,wBAAgB,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAEnE;AAED,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,2DAA2D;IAC3D,KAAK,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IAElE,qDAAqD;IACrD,KAAK,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAA;CAC9C;AAED,iEAAiE;AACjE,wBAAgB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjE;AAED,MAAM,CAAC,OAAO,WAAW,QAAQ,CAAC;IAChC,mEAAmE;IACnE,KAAK,OAAO,GAAG,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;CACxE;AAED,iDAAiD;AACjD,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/D;AAED,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,wDAAwD;IACxD,KAAK,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAA;CAChD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import * as core_Idempotency from '../../../internal/Idempotency.js';
|
|
2
|
+
import * as Ttl from '../../../internal/Ttl.js';
|
|
3
|
+
const broadcast = core_Idempotency.create({
|
|
4
|
+
namespace: 'mpp:relay:v1',
|
|
5
|
+
// Covers the confirmation wait after a credential has passed its
|
|
6
|
+
// five-second validity window.
|
|
7
|
+
pendingTtl: Ttl.minutes(1),
|
|
8
|
+
// Retains a successful settlement receipt for client recovery after
|
|
9
|
+
// transport failures.
|
|
10
|
+
receiptTtl: Ttl.days(1),
|
|
11
|
+
});
|
|
12
|
+
/** Returns a stable digest without retaining credential contents in durable state. */
|
|
13
|
+
export function inputHash(input) {
|
|
14
|
+
return core_Idempotency.inputHash(input);
|
|
15
|
+
}
|
|
16
|
+
/** Claims a broadcast request or returns its current outcome. */
|
|
17
|
+
export function claim(options) {
|
|
18
|
+
return broadcast.claim(options);
|
|
19
|
+
}
|
|
20
|
+
/** Persists a successful response for an owned request claim. */
|
|
21
|
+
export function complete(options) {
|
|
22
|
+
return broadcast.complete(options);
|
|
23
|
+
}
|
|
24
|
+
/** Releases an owned retryable request claim. */
|
|
25
|
+
export function release(options) {
|
|
26
|
+
return broadcast.release(options);
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=Idempotency.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Idempotency.js","sourceRoot":"","sources":["../../../../src/apps/mpp/internal/Idempotency.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,gBAAgB,MAAM,kCAAkC,CAAA;AACpE,OAAO,KAAK,GAAG,MAAM,0BAA0B,CAAA;AAa/C,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAwB;IAC/D,SAAS,EAAE,cAAc;IACzB,iEAAiE;IACjE,+BAA+B;IAC/B,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1B,oEAAoE;IACpE,sBAAsB;IACtB,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;CACxB,CAAC,CAAA;AAEF,sFAAsF;AACtF,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC7C,OAAO,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;AAC1C,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,KAAK,CAAC,OAAsB;IAC1C,OAAO,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;AACjC,CAAC;AAUD,iEAAiE;AACjE,MAAM,UAAU,QAAQ,CAAC,OAAyB;IAChD,OAAO,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;AACpC,CAAC;AAOD,iDAAiD;AACjD,MAAM,UAAU,OAAO,CAAC,OAAwB;IAC9C,OAAO,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;AACnC,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { LocalAccount } from 'viem/accounts';
|
|
2
|
+
import type * as Auth from '../../../internal/Auth.js';
|
|
3
|
+
import type * as Db from '../../../db/Db.js';
|
|
4
|
+
import type * as Mpp from '../Mpp.js';
|
|
5
|
+
/** Resolves the chain declared by a Tempo charge challenge. */
|
|
6
|
+
export declare function chainId(input: Mpp.RelayInput): number | undefined;
|
|
7
|
+
/** Whether a Tempo charge credential requests platform fee sponsorship. */
|
|
8
|
+
export declare function requiresFeePayer(input: Mpp.RelayInput): boolean;
|
|
9
|
+
/** Refuses credentials outside the chains served by this API deployment. */
|
|
10
|
+
export declare function assertSupportedChain(options: assertSupportedChain.Options): void;
|
|
11
|
+
export declare namespace assertSupportedChain {
|
|
12
|
+
/** Chain-selection inputs. */
|
|
13
|
+
type Options = {
|
|
14
|
+
/** Resolved credential chain. */
|
|
15
|
+
chainId: number;
|
|
16
|
+
/** Chains served by this API deployment. */
|
|
17
|
+
supportedChainIds: ReadonlySet<number>;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
/** Authorizes managed fee sponsorship for one broadcast request. */
|
|
21
|
+
export declare function authorizeFeePayer(options: authorizeFeePayer.Options): Promise<LocalAccount | undefined>;
|
|
22
|
+
export declare namespace authorizeFeePayer {
|
|
23
|
+
/** Dependencies used to authorize managed fee sponsorship. */
|
|
24
|
+
type Options = {
|
|
25
|
+
/** Credential chain. */
|
|
26
|
+
chainId: number;
|
|
27
|
+
/** Primary database for authoritative billing enforcement. */
|
|
28
|
+
db: Db.Db;
|
|
29
|
+
/** Managed fee-payer account, when configured. */
|
|
30
|
+
feePayer?: LocalAccount | undefined;
|
|
31
|
+
/** MPP credential being broadcast. */
|
|
32
|
+
input: Mpp.RelayInput;
|
|
33
|
+
/** Authenticated request principal. */
|
|
34
|
+
principal?: Auth.Principal | undefined;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
/** Raised when an MPP credential selects a chain this deployment does not serve. */
|
|
38
|
+
export declare class UnsupportedChainError extends Error {
|
|
39
|
+
name: string;
|
|
40
|
+
constructor(chainId: number);
|
|
41
|
+
}
|
|
42
|
+
/** Raised when a caller is not eligible for managed fee sponsorship. */
|
|
43
|
+
export declare class PolicyDeniedError extends Error {
|
|
44
|
+
name: string;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=Policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Policy.d.ts","sourceRoot":"","sources":["../../../../src/apps/mpp/internal/Policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAEjD,OAAO,KAAK,KAAK,IAAI,MAAM,2BAA2B,CAAA;AACtD,OAAO,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAG5C,OAAO,KAAK,KAAK,GAAG,MAAM,WAAW,CAAA;AAErC,+DAA+D;AAC/D,wBAAgB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,GAAG,MAAM,GAAG,SAAS,CAIjE;AAED,2EAA2E;AAC3E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,WAGrD;AAED,4EAA4E;AAC5E,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,oBAAoB,CAAC,OAAO,QAGzE;AAED,MAAM,CAAC,OAAO,WAAW,oBAAoB,CAAC;IAC5C,8BAA8B;IAC9B,KAAK,OAAO,GAAG;QACb,iCAAiC;QACjC,OAAO,EAAE,MAAM,CAAA;QACf,4CAA4C;QAC5C,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;KACvC,CAAA;CACF;AAED,oEAAoE;AACpE,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,iBAAiB,CAAC,OAAO,GACjC,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAiBnC;AAED,MAAM,CAAC,OAAO,WAAW,iBAAiB,CAAC;IACzC,8DAA8D;IAC9D,KAAK,OAAO,GAAG;QACb,wBAAwB;QACxB,OAAO,EAAE,MAAM,CAAA;QACf,8DAA8D;QAC9D,EAAE,EAAE,EAAE,CAAC,EAAE,CAAA;QACT,kDAAkD;QAClD,QAAQ,CAAC,EAAE,YAAY,GAAG,SAAS,CAAA;QACnC,sCAAsC;QACtC,KAAK,EAAE,GAAG,CAAC,UAAU,CAAA;QACrB,uCAAuC;QACvC,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;KACvC,CAAA;CACF;AAYD,oFAAoF;AACpF,qBAAa,qBAAsB,SAAQ,KAAK;IACrC,IAAI,SAAqC;IAElD,YAAY,OAAO,EAAE,MAAM,EAE1B;CACF;AAED,wEAAwE;AACxE,qBAAa,iBAAkB,SAAQ,KAAK;IACjC,IAAI,SAAiC;CAC/C"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import * as Viem from '../../../internal/Viem.js';
|
|
2
|
+
import * as Billing from '../../management/Billing.js';
|
|
3
|
+
/** Resolves the chain declared by a Tempo charge challenge. */
|
|
4
|
+
export function chainId(input) {
|
|
5
|
+
const request = input.challenge.request;
|
|
6
|
+
const details = record(request['methodDetails']);
|
|
7
|
+
return number(details?.['chainId']) ?? number(request['chainId']);
|
|
8
|
+
}
|
|
9
|
+
/** Whether a Tempo charge credential requests platform fee sponsorship. */
|
|
10
|
+
export function requiresFeePayer(input) {
|
|
11
|
+
const request = input.challenge.request;
|
|
12
|
+
return record(request['methodDetails'])?.['feePayer'] === true && request['feePayer'] !== false;
|
|
13
|
+
}
|
|
14
|
+
/** Refuses credentials outside the chains served by this API deployment. */
|
|
15
|
+
export function assertSupportedChain(options) {
|
|
16
|
+
const { chainId, supportedChainIds } = options;
|
|
17
|
+
if (!supportedChainIds.has(chainId))
|
|
18
|
+
throw new UnsupportedChainError(chainId);
|
|
19
|
+
}
|
|
20
|
+
/** Authorizes managed fee sponsorship for one broadcast request. */
|
|
21
|
+
export async function authorizeFeePayer(options) {
|
|
22
|
+
const { chainId, db, feePayer, input, principal } = options;
|
|
23
|
+
if (!feePayer || !requiresFeePayer(input))
|
|
24
|
+
return feePayer;
|
|
25
|
+
if (principal?.type !== 'api_key')
|
|
26
|
+
throw new PolicyDeniedError('Fee sponsorship requires an API key.');
|
|
27
|
+
if (!Viem.isMainnet(chainId))
|
|
28
|
+
return feePayer;
|
|
29
|
+
if (principal.environment !== 'production')
|
|
30
|
+
throw new PolicyDeniedError('Mainnet fee sponsorship requires a production API key.');
|
|
31
|
+
const status = await Billing.status(db, principal.orgId);
|
|
32
|
+
if (status !== 'active')
|
|
33
|
+
throw new PolicyDeniedError(status === 'past_due'
|
|
34
|
+
? 'Billing is past due.'
|
|
35
|
+
: 'Active billing is required for mainnet fee sponsorship.');
|
|
36
|
+
return feePayer;
|
|
37
|
+
}
|
|
38
|
+
function record(value) {
|
|
39
|
+
return value && typeof value === 'object' && !Array.isArray(value)
|
|
40
|
+
? value
|
|
41
|
+
: undefined;
|
|
42
|
+
}
|
|
43
|
+
function number(value) {
|
|
44
|
+
return typeof value === 'number' && Number.isSafeInteger(value) ? value : undefined;
|
|
45
|
+
}
|
|
46
|
+
/** Raised when an MPP credential selects a chain this deployment does not serve. */
|
|
47
|
+
export class UnsupportedChainError extends Error {
|
|
48
|
+
name = 'Mpp.Policy.UnsupportedChainError';
|
|
49
|
+
constructor(chainId) {
|
|
50
|
+
super(`Unsupported chain id ${chainId}.`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/** Raised when a caller is not eligible for managed fee sponsorship. */
|
|
54
|
+
export class PolicyDeniedError extends Error {
|
|
55
|
+
name = 'Mpp.Policy.PolicyDeniedError';
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=Policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Policy.js","sourceRoot":"","sources":["../../../../src/apps/mpp/internal/Policy.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,IAAI,MAAM,2BAA2B,CAAA;AACjD,OAAO,KAAK,OAAO,MAAM,6BAA6B,CAAA;AAGtD,+DAA+D;AAC/D,MAAM,UAAU,OAAO,CAAC,KAAqB;IAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAA;IACvC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAA;IAChD,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;AACnE,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,gBAAgB,CAAC,KAAqB;IACpD,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAA;IACvC,OAAO,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,KAAK,CAAA;AACjG,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,oBAAoB,CAAC,OAAqC;IACxE,MAAM,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAA;IAC9C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAA;AAC/E,CAAC;AAYD,oEAAoE;AACpE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAAkC;IAElC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;IAC3D,IAAI,CAAC,QAAQ,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAA;IAC1D,IAAI,SAAS,EAAE,IAAI,KAAK,SAAS;QAC/B,MAAM,IAAI,iBAAiB,CAAC,sCAAsC,CAAC,CAAA;IACrE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;QAAE,OAAO,QAAQ,CAAA;IAC7C,IAAI,SAAS,CAAC,WAAW,KAAK,YAAY;QACxC,MAAM,IAAI,iBAAiB,CAAC,wDAAwD,CAAC,CAAA;IAEvF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,CAAA;IACxD,IAAI,MAAM,KAAK,QAAQ;QACrB,MAAM,IAAI,iBAAiB,CACzB,MAAM,KAAK,UAAU;YACnB,CAAC,CAAC,sBAAsB;YACxB,CAAC,CAAC,yDAAyD,CAC9D,CAAA;IACH,OAAO,QAAQ,CAAA;AACjB,CAAC;AAkBD,SAAS,MAAM,CAAC,KAAc;IAC5B,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAChE,CAAC,CAAE,KAAiC;QACpC,CAAC,CAAC,SAAS,CAAA;AACf,CAAC;AAED,SAAS,MAAM,CAAC,KAAc;IAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AACrF,CAAC;AAED,oFAAoF;AACpF,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IACrC,IAAI,GAAG,kCAAkC,CAAA;IAElD,YAAY,OAAe;QACzB,KAAK,CAAC,wBAAwB,OAAO,GAAG,CAAC,CAAA;IAC3C,CAAC;CACF;AAED,wEAAwE;AACxE,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACjC,IAAI,GAAG,8BAA8B,CAAA;CAC/C"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as Store from '../../../internal/Store.js';
|
|
2
|
+
import * as Screening from './Screening.js';
|
|
3
|
+
/** Coordinates concurrent cached screening before credential processing. */
|
|
4
|
+
export type Manager = {
|
|
5
|
+
/** Rejects when any payment participant fails screening. */
|
|
6
|
+
screen(addresses: readonly string[]): Promise<void>;
|
|
7
|
+
};
|
|
8
|
+
/** Creates a cached address-screening manager. */
|
|
9
|
+
export declare function create(options: create.Options): Manager;
|
|
10
|
+
export declare namespace create {
|
|
11
|
+
/** Dependencies for cached address screening. */
|
|
12
|
+
type Options = {
|
|
13
|
+
/** Tempo chain that owns the screened addresses. */
|
|
14
|
+
chainId: number;
|
|
15
|
+
/** Address-screening provider. */
|
|
16
|
+
provider?: Screening.Provider | undefined;
|
|
17
|
+
/** Cache used for screening results. */
|
|
18
|
+
store: Store.Store;
|
|
19
|
+
/** Cache duration. @default `Ttl.days(1)` */
|
|
20
|
+
ttl?: number | undefined;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/** Indicates that an address-screening provider rejected a participant. */
|
|
24
|
+
export declare class RejectedError extends Error {
|
|
25
|
+
name: string;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=ScreenManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScreenManager.d.ts","sourceRoot":"","sources":["../../../../src/apps/mpp/internal/ScreenManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAA;AACnD,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C,4EAA4E;AAC5E,MAAM,MAAM,OAAO,GAAG;IACpB,4DAA4D;IAC5D,MAAM,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACpD,CAAA;AAED,kDAAkD;AAClD,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAWvD;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,iDAAiD;IACjD,KAAK,OAAO,GAAG;QACb,oDAAoD;QACpD,OAAO,EAAE,MAAM,CAAA;QACf,kCAAkC;QAClC,QAAQ,CAAC,EAAE,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAA;QACzC,wCAAwC;QACxC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAA;QAClB,6CAA6C;QAC7C,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KACzB,CAAA;CACF;AAED,2EAA2E;AAC3E,qBAAa,aAAc,SAAQ,KAAK;IAC7B,IAAI,SAAoC;CAClD"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as Store from '../../../internal/Store.js';
|
|
2
|
+
import * as Screening from './Screening.js';
|
|
3
|
+
/** Creates a cached address-screening manager. */
|
|
4
|
+
export function create(options) {
|
|
5
|
+
const { chainId, provider = Screening.allowAll, store, ttl = Screening.defaultTtl } = options;
|
|
6
|
+
return {
|
|
7
|
+
async screen(addresses) {
|
|
8
|
+
const results = await Promise.all(addresses.map((address) => Screening.screen({ address, chainId, provider, store, ttl })));
|
|
9
|
+
if (results.some((result) => !result.allowed))
|
|
10
|
+
throw new RejectedError();
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
/** Indicates that an address-screening provider rejected a participant. */
|
|
15
|
+
export class RejectedError extends Error {
|
|
16
|
+
name = 'Mpp.ScreenManager.RejectedError';
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=ScreenManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScreenManager.js","sourceRoot":"","sources":["../../../../src/apps/mpp/internal/ScreenManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAA;AACnD,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAQ3C,kDAAkD;AAClD,MAAM,UAAU,MAAM,CAAC,OAAuB;IAC5C,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,GAAG,SAAS,CAAC,UAAU,EAAE,GAAG,OAAO,CAAA;IAE7F,OAAO;QACL,KAAK,CAAC,MAAM,CAAC,SAAS;YACpB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CACzF,CAAA;YACD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;gBAAE,MAAM,IAAI,aAAa,EAAE,CAAA;QAC1E,CAAC;KACF,CAAA;AACH,CAAC;AAgBD,2EAA2E;AAC3E,MAAM,OAAO,aAAc,SAAQ,KAAK;IAC7B,IAAI,GAAG,iCAAiC,CAAA;CAClD"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import * as Store from '../../../internal/Store.js';
|
|
2
|
+
/** Address-screening result. */
|
|
3
|
+
export type Result = {
|
|
4
|
+
allowed: boolean;
|
|
5
|
+
};
|
|
6
|
+
/** Address-screening provider. */
|
|
7
|
+
export type Provider = {
|
|
8
|
+
/** Screens one normalized account address on a Tempo chain. */
|
|
9
|
+
screen(options: {
|
|
10
|
+
address: string;
|
|
11
|
+
chainId: number;
|
|
12
|
+
}): Promise<Result>;
|
|
13
|
+
};
|
|
14
|
+
/** Allows every address while the external screening provider is unconfigured. */
|
|
15
|
+
export declare const allowAll: Provider;
|
|
16
|
+
/** Screens one address, caching the provider result by chain and normalized address. */
|
|
17
|
+
export declare function screen(options: screen.Options): Promise<Result>;
|
|
18
|
+
export declare namespace screen {
|
|
19
|
+
/** Dependencies used to screen an address. */
|
|
20
|
+
type Options = {
|
|
21
|
+
/** Normalized account address. */
|
|
22
|
+
address: string;
|
|
23
|
+
/** Tempo chain identifier. */
|
|
24
|
+
chainId: number;
|
|
25
|
+
/** Address-screening provider. */
|
|
26
|
+
provider: Provider;
|
|
27
|
+
/** Cache used for provider results. */
|
|
28
|
+
store: Store.Store;
|
|
29
|
+
/** Cache duration. @default `Ttl.days(1)` */
|
|
30
|
+
ttl?: number | undefined;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/** Default address-screening cache lifetime (24 hours). */
|
|
34
|
+
export declare const defaultTtl: number;
|
|
35
|
+
//# sourceMappingURL=Screening.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Screening.d.ts","sourceRoot":"","sources":["../../../../src/apps/mpp/internal/Screening.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAA;AAGnD,gCAAgC;AAChC,MAAM,MAAM,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAA;AAEzC,kCAAkC;AAClC,MAAM,MAAM,QAAQ,GAAG;IACrB,+DAA+D;IAC/D,MAAM,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;CACvE,CAAA;AAED,kFAAkF;AAClF,eAAO,MAAM,QAAQ,EAAE,QAItB,CAAA;AAED,wFAAwF;AACxF,wBAAsB,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAOrE;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,8CAA8C;IAC9C,KAAK,OAAO,GAAG;QACb,kCAAkC;QAClC,OAAO,EAAE,MAAM,CAAA;QACf,8BAA8B;QAC9B,OAAO,EAAE,MAAM,CAAA;QACf,kCAAkC;QAClC,QAAQ,EAAE,QAAQ,CAAA;QAClB,uCAAuC;QACvC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAA;QAClB,6CAA6C;QAC7C,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KACzB,CAAA;CACF;AAED,2DAA2D;AAC3D,eAAO,MAAM,UAAU,QAAc,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as Store from '../../../internal/Store.js';
|
|
2
|
+
import * as Ttl from '../../../internal/Ttl.js';
|
|
3
|
+
/** Allows every address while the external screening provider is unconfigured. */
|
|
4
|
+
export const allowAll = {
|
|
5
|
+
async screen() {
|
|
6
|
+
return { allowed: true };
|
|
7
|
+
},
|
|
8
|
+
};
|
|
9
|
+
/** Screens one address, caching the provider result by chain and normalized address. */
|
|
10
|
+
export async function screen(options) {
|
|
11
|
+
const { address, chainId, provider, store, ttl = defaultTtl } = options;
|
|
12
|
+
return Store.memoize(() => provider.screen({ address, chainId }), {
|
|
13
|
+
key: `mpp:screen:v1:${chainId}:${address.toLowerCase()}`,
|
|
14
|
+
store,
|
|
15
|
+
ttl,
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
/** Default address-screening cache lifetime (24 hours). */
|
|
19
|
+
export const defaultTtl = Ttl.days(1);
|
|
20
|
+
//# sourceMappingURL=Screening.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Screening.js","sourceRoot":"","sources":["../../../../src/apps/mpp/internal/Screening.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAA;AACnD,OAAO,KAAK,GAAG,MAAM,0BAA0B,CAAA;AAW/C,kFAAkF;AAClF,MAAM,CAAC,MAAM,QAAQ,GAAa;IAChC,KAAK,CAAC,MAAM;QACV,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;CACF,CAAA;AAED,wFAAwF;AACxF,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAAuB;IAClD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,GAAG,UAAU,EAAE,GAAG,OAAO,CAAA;IACvE,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE;QAChE,GAAG,EAAE,iBAAiB,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,EAAE;QACxD,KAAK;QACL,GAAG;KACJ,CAAC,CAAA;AACJ,CAAC;AAkBD,2DAA2D;AAC3D,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { LocalAccount } from 'viem/accounts';
|
|
2
|
+
import type * as Auth from '../../../internal/Auth.js';
|
|
3
|
+
import type * as Db from '../../../db/Db.js';
|
|
4
|
+
/** Wraps a managed fee payer to record its signed transaction before broadcast. */
|
|
5
|
+
export declare function decorate(options: decorate.Options): LocalAccount;
|
|
6
|
+
export declare namespace decorate {
|
|
7
|
+
/** Dependencies used to record one MPP-sponsored transaction. */
|
|
8
|
+
type Options = {
|
|
9
|
+
/** Account that MPPX uses to add the fee-payer signature. */
|
|
10
|
+
account: LocalAccount;
|
|
11
|
+
/** Records the signed transaction before it can reach the network. */
|
|
12
|
+
onSigned: (options: {
|
|
13
|
+
serializedTransaction: `0x${string}`;
|
|
14
|
+
}) => Promise<void>;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
/** Records a sponsorship and atomically enforces its billing limits. */
|
|
18
|
+
export declare function record(options: record.Options): Promise<void>;
|
|
19
|
+
export declare namespace record {
|
|
20
|
+
/** Dependencies used to persist one MPP sponsorship. */
|
|
21
|
+
type Options = {
|
|
22
|
+
/** Primary database for billing enforcement and sponsorship state. */
|
|
23
|
+
db: Db.Db;
|
|
24
|
+
/** Cached database used for verified-token reads. */
|
|
25
|
+
dbCached: Db.Db;
|
|
26
|
+
/** API key that requested sponsorship. */
|
|
27
|
+
principal: Extract<Auth.Principal, {
|
|
28
|
+
type: 'api_key';
|
|
29
|
+
}>;
|
|
30
|
+
/** Final fee-payer-signed transaction, before broadcast. */
|
|
31
|
+
serializedTransaction: `0x${string}`;
|
|
32
|
+
/** Platform per-transaction cap in fee-token base units. */
|
|
33
|
+
txFeeLimit: bigint;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=Sponsorship.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Sponsorship.d.ts","sourceRoot":"","sources":["../../../../src/apps/mpp/internal/Sponsorship.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAGjD,OAAO,KAAK,KAAK,IAAI,MAAM,2BAA2B,CAAA;AAEtD,OAAO,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAQ5C,mFAAmF;AACnF,wBAAgB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,GAAG,YAAY,CAchE;AAED,MAAM,CAAC,OAAO,WAAW,QAAQ,CAAC;IAChC,iEAAiE;IACjE,KAAK,OAAO,GAAG;QACb,6DAA6D;QAC7D,OAAO,EAAE,YAAY,CAAA;QACrB,sEAAsE;QACtE,QAAQ,EAAE,CAAC,OAAO,EAAE;YAAE,qBAAqB,EAAE,KAAK,MAAM,EAAE,CAAA;SAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;KAC/E,CAAA;CACF;AAUD,wEAAwE;AACxE,wBAAsB,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA4EnE;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,wDAAwD;IACxD,KAAK,OAAO,GAAG;QACb,sEAAsE;QACtE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAA;QACT,qDAAqD;QACrD,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAA;QACf,0CAA0C;QAC1C,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE;YAAE,IAAI,EAAE,SAAS,CAAA;SAAE,CAAC,CAAA;QACvD,4DAA4D;QAC5D,qBAAqB,EAAE,KAAK,MAAM,EAAE,CAAA;QACpC,4DAA4D;QAC5D,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;CACF"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { Hash } from 'ox';
|
|
2
|
+
import { TxEnvelopeTempo } from 'ox/tempo';
|
|
3
|
+
import { TokenId, Transaction } from 'viem/tempo';
|
|
4
|
+
import * as BillingSettings from '../../../db/tables/billingSettings.js';
|
|
5
|
+
import * as SponsoredTransactions from '../../../db/tables/sponsoredTransactions.js';
|
|
6
|
+
import * as Fees from '../../../internal/Fees.js';
|
|
7
|
+
import * as VerifiedTokens from '../../../internal/VerifiedTokens.js';
|
|
8
|
+
import * as Viem from '../../../internal/Viem.js';
|
|
9
|
+
import * as Billing from '../../management/Billing.js';
|
|
10
|
+
import * as Policy from './Policy.js';
|
|
11
|
+
/** Wraps a managed fee payer to record its signed transaction before broadcast. */
|
|
12
|
+
export function decorate(options) {
|
|
13
|
+
const { account, onSigned } = options;
|
|
14
|
+
const signTransaction = account.signTransaction.bind(account);
|
|
15
|
+
return new Proxy(account, {
|
|
16
|
+
get(target, property, receiver) {
|
|
17
|
+
if (property !== 'signTransaction')
|
|
18
|
+
return Reflect.get(target, property, receiver);
|
|
19
|
+
return async (...parameters) => {
|
|
20
|
+
const serializedTransaction = await signTransaction(...parameters);
|
|
21
|
+
await onSigned({ serializedTransaction });
|
|
22
|
+
return serializedTransaction;
|
|
23
|
+
};
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
/** Records a sponsorship and atomically enforces its billing limits. */
|
|
28
|
+
export async function record(options) {
|
|
29
|
+
const { db, dbCached, principal, serializedTransaction, txFeeLimit } = options;
|
|
30
|
+
const transaction = Transaction.deserialize(serializedTransaction);
|
|
31
|
+
if (!transaction.from)
|
|
32
|
+
throw new Policy.PolicyDeniedError('Fee-sponsored transaction must declare a sender.');
|
|
33
|
+
if (typeof transaction.chainId !== 'number')
|
|
34
|
+
throw new Policy.PolicyDeniedError('Fee-sponsored transaction must declare a chain id.');
|
|
35
|
+
const chainId = transaction.chainId;
|
|
36
|
+
const feeMax = Fees.maxOf(transaction);
|
|
37
|
+
if (feeMax === undefined)
|
|
38
|
+
throw new Policy.PolicyDeniedError('Fee-sponsored transaction must declare a fee limit.');
|
|
39
|
+
const feeToken = (() => {
|
|
40
|
+
try {
|
|
41
|
+
return transaction.feeToken === undefined
|
|
42
|
+
? undefined
|
|
43
|
+
: TokenId.toAddress(transaction.feeToken);
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
throw new Policy.PolicyDeniedError('Fee-sponsored transaction uses an invalid fee token.');
|
|
47
|
+
}
|
|
48
|
+
})();
|
|
49
|
+
const mainnet = Viem.isMainnet(chainId);
|
|
50
|
+
const settings = mainnet ? await BillingSettings.get(db, principal.orgId) : undefined;
|
|
51
|
+
let currency;
|
|
52
|
+
if (mainnet) {
|
|
53
|
+
const verified = feeToken
|
|
54
|
+
? (await VerifiedTokens.read(dbCached, chainId))?.byAddress.get(feeToken.toLowerCase())
|
|
55
|
+
: undefined;
|
|
56
|
+
if (!verified ||
|
|
57
|
+
verified.currency.toLowerCase() !== 'usd' ||
|
|
58
|
+
verified.decimals !== Fees.tokenDecimals)
|
|
59
|
+
throw new Policy.PolicyDeniedError('Fee-sponsored transaction uses an unsupported fee token.');
|
|
60
|
+
currency = verified.currency.toLowerCase();
|
|
61
|
+
const cap = (() => {
|
|
62
|
+
if (settings?.txFeeLimit == null)
|
|
63
|
+
return txFeeLimit;
|
|
64
|
+
const org = Billing.toBaseUnits(settings.txFeeLimit);
|
|
65
|
+
return org < txFeeLimit ? org : txFeeLimit;
|
|
66
|
+
})();
|
|
67
|
+
if (feeMax > cap)
|
|
68
|
+
throw new Policy.PolicyDeniedError('Transaction fee limit exceeded.');
|
|
69
|
+
}
|
|
70
|
+
const envelope = TxEnvelopeTempo.deserialize(serializedTransaction);
|
|
71
|
+
const signPayload = TxEnvelopeTempo.getFeePayerSignPayload(envelope, { sender: transaction.from });
|
|
72
|
+
const input = {
|
|
73
|
+
apiKeyId: principal.id,
|
|
74
|
+
billable: mainnet && principal.environment === 'production',
|
|
75
|
+
chainId,
|
|
76
|
+
...(currency ? { currency } : {}),
|
|
77
|
+
environment: principal.environment,
|
|
78
|
+
feeMax: feeMax.toString(),
|
|
79
|
+
...(feeToken ? { feeToken } : {}),
|
|
80
|
+
orgId: principal.orgId,
|
|
81
|
+
...(principal.projectId === undefined ? {} : { projectId: principal.projectId }),
|
|
82
|
+
signPayload,
|
|
83
|
+
transaction: serializedTransaction,
|
|
84
|
+
transactionHash: Hash.keccak256(serializedTransaction),
|
|
85
|
+
};
|
|
86
|
+
if (settings?.spendLimit == null) {
|
|
87
|
+
await SponsoredTransactions.upsert(db, input);
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
try {
|
|
91
|
+
await SponsoredTransactions.reserve(db, input, {
|
|
92
|
+
chainIds: [Viem.chainId.mainnet],
|
|
93
|
+
max: Billing.toBaseUnits(settings.spendLimit),
|
|
94
|
+
since: Billing.periodStart(settings.period),
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
catch (cause) {
|
|
98
|
+
if (cause instanceof SponsoredTransactions.PeriodSpendLimitError)
|
|
99
|
+
throw new Policy.PolicyDeniedError('Spend limit exceeded.');
|
|
100
|
+
throw cause;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=Sponsorship.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Sponsorship.js","sourceRoot":"","sources":["../../../../src/apps/mpp/internal/Sponsorship.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as Mppx from 'mppx';
|
|
2
|
+
import * as Store from '../../../internal/Store.js';
|
|
3
|
+
/** Returns the normalized Tempo sender and recipients in a validated credential. */
|
|
4
|
+
export declare function addresses(result: Awaited<ReturnType<typeof Mppx.Method.validateCredential>>): string[];
|
|
5
|
+
/** Adapts Tempo API durable state to MPPX's atomic Cloudflare store contract. */
|
|
6
|
+
export declare function mppxStore(state: Store.State): Mppx.Store.AtomicStore;
|
|
7
|
+
//# sourceMappingURL=Utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Utils.d.ts","sourceRoot":"","sources":["../../../../src/apps/mpp/internal/Utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAE5B,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAA;AAEnD,oFAAoF;AACpF,wBAAgB,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,YAS3F;AAED,iFAAiF;AACjF,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAYpE"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import * as Mppx from 'mppx';
|
|
2
|
+
import * as Store from '../../../internal/Store.js';
|
|
3
|
+
/** Returns the normalized Tempo sender and recipients in a validated credential. */
|
|
4
|
+
export function addresses(result) {
|
|
5
|
+
const details = result.details;
|
|
6
|
+
return [details.sender, ...(details.transfers?.map(({ recipient }) => recipient) ?? [])]
|
|
7
|
+
.filter((address) => address !== undefined)
|
|
8
|
+
.map((address) => address.toLowerCase())
|
|
9
|
+
.filter((address, index, values) => values.indexOf(address) === index);
|
|
10
|
+
}
|
|
11
|
+
/** Adapts Tempo API durable state to MPPX's atomic Cloudflare store contract. */
|
|
12
|
+
export function mppxStore(state) {
|
|
13
|
+
return Mppx.Store.cloudflare({
|
|
14
|
+
delete: (key) => state.delete(key),
|
|
15
|
+
get: (key) => state.get(key),
|
|
16
|
+
put: (key, value) => state.put(key, value),
|
|
17
|
+
update: (key, change) => Store.change(state, key, (current) => {
|
|
18
|
+
const next = change(current);
|
|
19
|
+
// MPPX's Cloudflare adapter represents a missing value with JSON null.
|
|
20
|
+
return next.op === 'delete' ? { ...next, op: 'set', value: 'null' } : next;
|
|
21
|
+
}),
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=Utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../../../src/apps/mpp/internal/Utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAE5B,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAA;AAEnD,oFAAoF;AACpF,MAAM,UAAU,SAAS,CAAC,MAAkE;IAC1F,MAAM,OAAO,GAAG,MAAM,CAAC,OAGtB,CAAA;IACD,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;SACrF,MAAM,CAAC,CAAC,OAAO,EAAqB,EAAE,CAAC,OAAO,KAAK,SAAS,CAAC;SAC7D,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;SACvC,MAAM,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,CAAA;AAC1E,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,SAAS,CAAC,KAAkB;IAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QAC3B,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;QAClC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;QAC5B,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;QAC1C,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CACtB,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE;YACnC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;YAC5B,uEAAuE;YACvE,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAe,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QACrF,CAAC,CAAC;KACL,CAAC,CAAA;AACJ,CAAC"}
|