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,74 @@
|
|
|
1
|
+
import { AbiFunction, Address, Solidity } from 'ox';
|
|
2
|
+
import * as z from 'zod/mini';
|
|
3
|
+
/**
|
|
4
|
+
* Executable source-chain actions returned by funding transfer creation. A
|
|
5
|
+
* strict discriminated union: transfer reads never include an action.
|
|
6
|
+
*/
|
|
7
|
+
const approve = AbiFunction.from('function approve(address spender, uint256 amount)');
|
|
8
|
+
const approveSelector = AbiFunction.getSelector(approve);
|
|
9
|
+
/** Zod schemas owned by funding actions. */
|
|
10
|
+
export var schema;
|
|
11
|
+
(function (schema) {
|
|
12
|
+
/** One unsigned EVM call, in the exchange quote API's call shape. */
|
|
13
|
+
schema.Call = z
|
|
14
|
+
.object({
|
|
15
|
+
data: z
|
|
16
|
+
.string()
|
|
17
|
+
.check(z.regex(/^0x(?:[0-9a-fA-F]{2})*$/), z.describe('ABI-encoded calldata.'), z.meta({ examples: ['0x095ea7b3'] })),
|
|
18
|
+
to: z
|
|
19
|
+
.string()
|
|
20
|
+
.check(z.regex(/^0x[0-9a-fA-F]{40}$/), z.describe('Contract the call targets.'), z.meta({ examples: [`0x${'44'.repeat(20)}`] })),
|
|
21
|
+
value: z
|
|
22
|
+
.string()
|
|
23
|
+
.check(z.regex(/^0x[0-9a-fA-F]+$/), z.describe('Native value to send, as hex.'), z.meta({ examples: ['0x0'] })),
|
|
24
|
+
})
|
|
25
|
+
.check(z.describe('One unsigned EVM call.'));
|
|
26
|
+
/** Ordered unsigned EVM calls the caller signs and submits on the source chain. */
|
|
27
|
+
schema.EvmCalls = z
|
|
28
|
+
.object({
|
|
29
|
+
calls: z
|
|
30
|
+
.array(schema.Call)
|
|
31
|
+
.check(z.minLength(1), z.describe('Calls in submission order; they may require separate transactions.')),
|
|
32
|
+
type: z.literal('evm:calls').check(z.describe('Action kind.')),
|
|
33
|
+
})
|
|
34
|
+
.check(z.describe('Ordered unsigned EVM calls to sign and submit on the source chain.'));
|
|
35
|
+
/** Executable source-chain action attached to a creation response. */
|
|
36
|
+
schema.Action = z
|
|
37
|
+
.discriminatedUnion('type', [schema.EvmCalls])
|
|
38
|
+
.check(z.describe('Executable source-chain action. Never returned by transfer reads.'));
|
|
39
|
+
})(schema || (schema = {}));
|
|
40
|
+
/**
|
|
41
|
+
* Validates prepared EVM calls before persistence. Token calls, approval
|
|
42
|
+
* targets, spenders, amounts, selectors, and native value must match the route.
|
|
43
|
+
*/
|
|
44
|
+
export function validateEvmCalls(options) {
|
|
45
|
+
const action = schema.EvmCalls.safeParse(options.action);
|
|
46
|
+
if (!action.success)
|
|
47
|
+
throw new InvalidActionError('Malformed EVM calls.');
|
|
48
|
+
for (const [index, call] of action.data.calls.entries()) {
|
|
49
|
+
if (BigInt(call.value) !== 0n)
|
|
50
|
+
throw new InvalidActionError('Stablecoin funding calls must not carry native value.');
|
|
51
|
+
const targetsSourceToken = Address.isEqual(call.to, options.sourceTokenAddress);
|
|
52
|
+
const selector = call.data.slice(0, approveSelector.length).toLowerCase();
|
|
53
|
+
if (targetsSourceToken && selector !== approveSelector)
|
|
54
|
+
throw new InvalidActionError('Unsupported source token call.');
|
|
55
|
+
if (selector !== approveSelector)
|
|
56
|
+
continue;
|
|
57
|
+
if (!targetsSourceToken)
|
|
58
|
+
throw new InvalidActionError('Approval must target the source token.');
|
|
59
|
+
if (call.data.length !== approveSelector.length + 128)
|
|
60
|
+
throw new InvalidActionError('Malformed approval calldata.');
|
|
61
|
+
const [spender, amount] = AbiFunction.decodeData(approve, call.data);
|
|
62
|
+
if (!action.data.calls
|
|
63
|
+
.slice(index + 1)
|
|
64
|
+
.some((next) => Address.isEqual(next.to, spender)))
|
|
65
|
+
throw new InvalidActionError('Approval spender must match a later prepared executor.');
|
|
66
|
+
if (amount >= Solidity.maxUint256 || amount > BigInt(options.sourceAmount))
|
|
67
|
+
throw new InvalidActionError('Approval must stay bounded to the route amount.');
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/** Error thrown when a provider returns an action outside the route's bounds. */
|
|
71
|
+
export class InvalidActionError extends Error {
|
|
72
|
+
name = 'Funding.Action.InvalidActionError';
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=Action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Action.js","sourceRoot":"","sources":["../../../src/internal/funding/Action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAY,QAAQ,EAAE,MAAM,IAAI,CAAA;AAC7D,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAE7B;;;GAGG;AAEH,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAA;AACrF,MAAM,eAAe,GAAG,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;AAExD,4CAA4C;AAC5C,MAAM,KAAW,MAAM,CA6CtB;AA7CD,WAAiB,MAAM;IACrB,qEAAqE;IACxD,WAAI,GAAG,CAAC;SAClB,MAAM,CAAC;QACN,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,KAAK,CACJ,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,EAClC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EACnC,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CACrC;QACH,EAAE,EAAE,CAAC;aACF,MAAM,EAAE;aACR,KAAK,CACJ,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAC9B,CAAC,CAAC,QAAQ,CAAC,4BAA4B,CAAC,EACxC,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAC/C;QACH,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,KAAK,CACJ,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAC3B,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC,EAC3C,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAC9B;KACJ,CAAC;SACD,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,CAAA;IAE9C,mFAAmF;IACtE,eAAQ,GAAG,CAAC;SACtB,MAAM,CAAC;QACN,KAAK,EAAE,CAAC;aACL,KAAK,CAAC,WAAI,CAAC;aACX,KAAK,CACJ,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EACd,CAAC,CAAC,QAAQ,CAAC,oEAAoE,CAAC,CACjF;QACH,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;KAC/D,CAAC;SACD,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,oEAAoE,CAAC,CAAC,CAAA;IAE1F,sEAAsE;IACzD,aAAM,GAAG,CAAC;SACpB,kBAAkB,CAAC,MAAM,EAAE,CAAC,eAAQ,CAAC,CAAC;SACtC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,mEAAmE,CAAC,CAAC,CAAA;AAC3F,CAAC,EA7CgB,MAAM,KAAN,MAAM,QA6CtB;AAWD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAiC;IAChE,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACxD,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,MAAM,IAAI,kBAAkB,CAAC,sBAAsB,CAAC,CAAA;IACzE,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QACxD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;YAC3B,MAAM,IAAI,kBAAkB,CAAC,uDAAuD,CAAC,CAAA;QACvF,MAAM,kBAAkB,GAAG,OAAO,CAAC,OAAO,CACxC,IAAI,CAAC,EAAqB,EAC1B,OAAO,CAAC,kBAAqC,CAC9C,CAAA;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAA;QACzE,IAAI,kBAAkB,IAAI,QAAQ,KAAK,eAAe;YACpD,MAAM,IAAI,kBAAkB,CAAC,gCAAgC,CAAC,CAAA;QAChE,IAAI,QAAQ,KAAK,eAAe;YAAE,SAAQ;QAC1C,IAAI,CAAC,kBAAkB;YAAE,MAAM,IAAI,kBAAkB,CAAC,wCAAwC,CAAC,CAAA;QAC/F,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,eAAe,CAAC,MAAM,GAAG,GAAG;YACnD,MAAM,IAAI,kBAAkB,CAAC,8BAA8B,CAAC,CAAA;QAC9D,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,IAAe,CAAC,CAAA;QAC/E,IACE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK;aACf,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;aAChB,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAqB,EAAE,OAAO,CAAC,CAAC;YAEvE,MAAM,IAAI,kBAAkB,CAAC,wDAAwD,CAAC,CAAA;QACxF,IAAI,MAAM,IAAI,QAAQ,CAAC,UAAU,IAAI,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;YACxE,MAAM,IAAI,kBAAkB,CAAC,iDAAiD,CAAC,CAAA;IACnF,CAAC;AACH,CAAC;AAcD,iFAAiF;AACjF,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAClC,IAAI,GAAG,mCAAmC,CAAA;CACpD"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import type { Context } from 'hono';
|
|
2
|
+
import * as z from 'zod/mini';
|
|
3
|
+
import type * as App from '../../App.js';
|
|
4
|
+
import * as Db from '../../db/Db.js';
|
|
5
|
+
import * as core_Catalog from '../../db/tables/fundingCatalog.js';
|
|
6
|
+
import * as Chain from './Chain.js';
|
|
7
|
+
import * as Route from './Route.js';
|
|
8
|
+
import * as Token from './Token.js';
|
|
9
|
+
/** Funding catalog schemas. */
|
|
10
|
+
export declare namespace schema {
|
|
11
|
+
/** Funding capabilities enabled on one provider route. */
|
|
12
|
+
const Capabilities: z.ZodMiniObject<{
|
|
13
|
+
depositAddress: z.ZodMiniOptional<z.ZodMiniLiteral<true>>;
|
|
14
|
+
transfer: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
15
|
+
modes: z.ZodMiniReadonly<z.ZodMiniArray<z.ZodMiniEnum<{
|
|
16
|
+
exactDestination: "exactDestination";
|
|
17
|
+
exactSource: "exactSource";
|
|
18
|
+
}>>>;
|
|
19
|
+
}, z.core.$strip>>;
|
|
20
|
+
}, z.core.$strip>;
|
|
21
|
+
/** Complete funding catalog content accepted by the publish boundary. */
|
|
22
|
+
const Data: z.ZodMiniObject<{
|
|
23
|
+
chainTokens: z.ZodMiniReadonly<z.ZodMiniArray<z.ZodMiniObject<{
|
|
24
|
+
address: z.ZodMiniString<string>;
|
|
25
|
+
chainId: z.ZodMiniString<string>;
|
|
26
|
+
decimals: z.ZodMiniNumber<number>;
|
|
27
|
+
name: z.ZodMiniNullable<z.ZodMiniString<string>>;
|
|
28
|
+
standard: z.ZodMiniString<string>;
|
|
29
|
+
tokenId: z.ZodMiniString<string>;
|
|
30
|
+
}, z.core.$strip>>>;
|
|
31
|
+
chains: z.ZodMiniReadonly<z.ZodMiniArray<z.ZodMiniObject<{
|
|
32
|
+
id: z.ZodMiniString<string>;
|
|
33
|
+
parentChainId: z.ZodMiniNullable<z.ZodMiniString<string>>;
|
|
34
|
+
aliases: z.ZodMiniReadonly<z.ZodMiniArray<z.ZodMiniString<string>>>;
|
|
35
|
+
name: z.ZodMiniString<string>;
|
|
36
|
+
rpcUrls: z.ZodMiniDefault<z.ZodMiniReadonly<z.ZodMiniArray<z.ZodMiniURL>>>;
|
|
37
|
+
slug: z.ZodMiniString<string>;
|
|
38
|
+
}, z.core.$strip>>>;
|
|
39
|
+
routes: z.ZodMiniReadonly<z.ZodMiniArray<z.ZodMiniObject<{
|
|
40
|
+
capabilities: z.ZodMiniOptional<z.ZodMiniNullable<z.ZodMiniObject<{
|
|
41
|
+
depositAddress: z.ZodMiniOptional<z.ZodMiniLiteral<true>>;
|
|
42
|
+
transfer: z.ZodMiniOptional<z.ZodMiniObject<{
|
|
43
|
+
modes: z.ZodMiniReadonly<z.ZodMiniArray<z.ZodMiniEnum<{
|
|
44
|
+
exactDestination: "exactDestination";
|
|
45
|
+
exactSource: "exactSource";
|
|
46
|
+
}>>>;
|
|
47
|
+
}, z.core.$strip>>;
|
|
48
|
+
}, z.core.$strip>>>;
|
|
49
|
+
destinationChainId: z.ZodMiniString<string>;
|
|
50
|
+
destinationTokenId: z.ZodMiniString<string>;
|
|
51
|
+
providerId: z.ZodMiniString<string>;
|
|
52
|
+
sourceChainId: z.ZodMiniString<string>;
|
|
53
|
+
sourceTokenId: z.ZodMiniString<string>;
|
|
54
|
+
}, z.core.$strip>>>;
|
|
55
|
+
tokens: z.ZodMiniReadonly<z.ZodMiniArray<z.ZodMiniObject<{
|
|
56
|
+
currency: z.ZodMiniString<string>;
|
|
57
|
+
id: z.ZodMiniString<string>;
|
|
58
|
+
name: z.ZodMiniString<string>;
|
|
59
|
+
symbol: z.ZodMiniString<string>;
|
|
60
|
+
}, z.core.$strip>>>;
|
|
61
|
+
}, z.core.$strip>;
|
|
62
|
+
}
|
|
63
|
+
/** Funding capabilities enabled on one provider route. */
|
|
64
|
+
export type Capabilities = z.output<typeof schema.Capabilities>;
|
|
65
|
+
/** One hydrated provider route in a funding catalog snapshot. */
|
|
66
|
+
export type ProviderRoute = {
|
|
67
|
+
/** Funding capabilities; absent means the route is quote-only. */
|
|
68
|
+
capabilities?: Capabilities | undefined;
|
|
69
|
+
/** Funding provider that supports the route. */
|
|
70
|
+
providerId: string;
|
|
71
|
+
/** Hydrated source-to-destination funding route. */
|
|
72
|
+
route: Route.Route;
|
|
73
|
+
};
|
|
74
|
+
/** Compiled and indexed funding catalog. */
|
|
75
|
+
export type Snapshot = {
|
|
76
|
+
/** Funding chains indexed by CAIP-2 id, slug, and alias. */
|
|
77
|
+
chainsByKey: ReadonlyMap<string, Chain.Chain>;
|
|
78
|
+
/** Hydrated provider routes in stable catalog order. */
|
|
79
|
+
routes: readonly ProviderRoute[];
|
|
80
|
+
/** Hydrated routes grouped by provider id. */
|
|
81
|
+
routesByProvider: ReadonlyMap<string, readonly Route.Route[]>;
|
|
82
|
+
/** Canonical funding tokens indexed by stable id. */
|
|
83
|
+
tokensById: ReadonlyMap<string, Token.Token>;
|
|
84
|
+
/** ISO timestamp of the catalog's last publish. */
|
|
85
|
+
updatedAt: string;
|
|
86
|
+
/** Opaque catalog version. */
|
|
87
|
+
version: string;
|
|
88
|
+
};
|
|
89
|
+
/** Compiles stored funding catalog rows into a validated snapshot. */
|
|
90
|
+
export declare function compile(rows: core_Catalog.Rows): Snapshot;
|
|
91
|
+
/** Reads and compiles the current funding catalog from Postgres. */
|
|
92
|
+
export declare function read(db: Db.Db): Promise<Snapshot>;
|
|
93
|
+
/** Publishes a complete funding catalog and primes the current isolate. */
|
|
94
|
+
export declare function publish(db: Db.Db, input: publish.Input): Promise<Snapshot>;
|
|
95
|
+
export declare namespace publish {
|
|
96
|
+
/** Complete funding catalog content. */
|
|
97
|
+
type Input = z.input<typeof schema.Data>;
|
|
98
|
+
}
|
|
99
|
+
/** Replaces the current isolate's compiled catalog snapshot. */
|
|
100
|
+
export declare function prime(source: Db.Source, snapshot: Snapshot): Snapshot;
|
|
101
|
+
/** Returns the current funding catalog snapshot with soft background refresh. */
|
|
102
|
+
export declare function snapshot(c: Context<App.Environment>): Promise<Snapshot>;
|
|
103
|
+
/** Error thrown when funding catalog references cannot be compiled. */
|
|
104
|
+
export declare class InvalidCatalogError extends Error {
|
|
105
|
+
name: string;
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=Catalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Catalog.d.ts","sourceRoot":"","sources":["../../../src/internal/funding/Catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAE7B,OAAO,KAAK,KAAK,GAAG,MAAM,cAAc,CAAA;AACxC,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAEpC,OAAO,KAAK,YAAY,MAAM,mCAAmC,CAAA;AAEjE,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAOnC,+BAA+B;AAC/B,yBAAiB,MAAM,CAAC;IAqBtB,0DAA0D;IACnD,MAAM,YAAY;;;;;;;;qBAetB,CAAA;IAQH,yEAAyE;IAClE,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBASwC,CAAA;CAC1D;AAED,0DAA0D;AAC1D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC,YAAY,CAAC,CAAA;AAE/D,iEAAiE;AACjE,MAAM,MAAM,aAAa,GAAG;IAC1B,kEAAkE;IAClE,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,CAAA;IACvC,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAA;IAClB,oDAAoD;IACpD,KAAK,EAAE,KAAK,CAAC,KAAK,CAAA;CACnB,CAAA;AAED,4CAA4C;AAC5C,MAAM,MAAM,QAAQ,GAAG;IACrB,4DAA4D;IAC5D,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;IAC7C,wDAAwD;IACxD,MAAM,EAAE,SAAS,aAAa,EAAE,CAAA;IAChC,8CAA8C;IAC9C,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;IAC7D,qDAAqD;IACrD,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;IAC5C,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAA;IACjB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,sEAAsE;AACtE,wBAAgB,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,GAAG,QAAQ,CAqGzD;AAED,oEAAoE;AACpE,wBAAsB,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAEvD;AAED,2EAA2E;AAC3E,wBAAsB,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,CAYhF;AAED,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,wCAAwC;IACxC,KAAK,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAA;CACzC;AAED,gEAAgE;AAChE,wBAAgB,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAGrE;AAED,iFAAiF;AACjF,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAgBvE;AAsFD,uEAAuE;AACvE,qBAAa,mBAAoB,SAAQ,KAAK;IACnC,IAAI,SAAwC;CACtD"}
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
import * as z from 'zod/mini';
|
|
2
|
+
import * as Db from '../../db/Db.js';
|
|
3
|
+
import * as db_Schema from '../../db/Schema.js';
|
|
4
|
+
import * as core_Catalog from '../../db/tables/fundingCatalog.js';
|
|
5
|
+
import * as Timing from '../Timing.js';
|
|
6
|
+
import * as Chain from './Chain.js';
|
|
7
|
+
import * as Route from './Route.js';
|
|
8
|
+
import * as Token from './Token.js';
|
|
9
|
+
import * as Transfer from './Transfer.js';
|
|
10
|
+
const defaultRefreshMs = 10_000;
|
|
11
|
+
const emptyUpdatedAt = '1970-01-01T00:00:00.000Z';
|
|
12
|
+
const emptyVersion = 'empty';
|
|
13
|
+
/** Funding catalog schemas. */
|
|
14
|
+
export var schema;
|
|
15
|
+
(function (schema) {
|
|
16
|
+
const ChainId = z
|
|
17
|
+
.string()
|
|
18
|
+
.check(z.regex(/^(?:eip155:\d+|solana:[^:]+|tron:[^:]+)$/), z.describe('CAIP-2 funding chain identifier.'));
|
|
19
|
+
const Chain = z.extend(db_Schema.FundingChain, {
|
|
20
|
+
id: ChainId,
|
|
21
|
+
parentChainId: z.nullable(ChainId),
|
|
22
|
+
});
|
|
23
|
+
const TransferCapability = z
|
|
24
|
+
.object({
|
|
25
|
+
modes: z
|
|
26
|
+
.readonly(z.array(z.enum(Transfer.modes)))
|
|
27
|
+
.check(z.minLength(1), z.describe('Amount modes enabled for funding transfers.')),
|
|
28
|
+
})
|
|
29
|
+
.check(z.describe('Funding transfer capability enabled on one provider route.'));
|
|
30
|
+
/** Funding capabilities enabled on one provider route. */
|
|
31
|
+
schema.Capabilities = z
|
|
32
|
+
.object({
|
|
33
|
+
depositAddress: z
|
|
34
|
+
.optional(z.literal(true))
|
|
35
|
+
.check(z.describe('Deposit-address funding support enabled on the route.')),
|
|
36
|
+
transfer: z
|
|
37
|
+
.optional(TransferCapability)
|
|
38
|
+
.check(z.describe('Funding transfer support enabled on the route.')),
|
|
39
|
+
})
|
|
40
|
+
.check(z.refine((capabilities) => capabilities.depositAddress !== undefined || capabilities.transfer !== undefined), z.describe('Funding capabilities enabled on one provider route.'));
|
|
41
|
+
// Absent or null `capabilities` keeps a route quote-only, so transfer and
|
|
42
|
+
// deposit-address support enable through reviewed seed edits.
|
|
43
|
+
const Route = z.extend(db_Schema.FundingRoute, {
|
|
44
|
+
capabilities: z.optional(z.nullable(schema.Capabilities)),
|
|
45
|
+
});
|
|
46
|
+
/** Complete funding catalog content accepted by the publish boundary. */
|
|
47
|
+
schema.Data = z
|
|
48
|
+
.object({
|
|
49
|
+
chainTokens: z
|
|
50
|
+
.readonly(z.array(db_Schema.FundingChainToken))
|
|
51
|
+
.check(z.describe('Chain-scoped funding tokens.')),
|
|
52
|
+
chains: z.readonly(z.array(Chain)).check(z.describe('Funding chains.')),
|
|
53
|
+
routes: z.readonly(z.array(Route)).check(z.describe('Funding provider routes.')),
|
|
54
|
+
tokens: z.readonly(z.array(db_Schema.FundingToken)).check(z.describe('Funding tokens.')),
|
|
55
|
+
})
|
|
56
|
+
.check(z.describe('Complete funding catalog content.'));
|
|
57
|
+
})(schema || (schema = {}));
|
|
58
|
+
/** Compiles stored funding catalog rows into a validated snapshot. */
|
|
59
|
+
export function compile(rows) {
|
|
60
|
+
const data = normalize({
|
|
61
|
+
chainTokens: rows.chainTokens,
|
|
62
|
+
chains: rows.chains,
|
|
63
|
+
routes: rows.routes,
|
|
64
|
+
tokens: rows.tokens,
|
|
65
|
+
});
|
|
66
|
+
if (!rows.catalog && hasContent(data))
|
|
67
|
+
throw new InvalidCatalogError('Catalog content exists without a version head.');
|
|
68
|
+
const chainIds = new Set(data.chains.map((chain) => chain.id));
|
|
69
|
+
const chainsById = new Map();
|
|
70
|
+
const chainsByKey = new Map();
|
|
71
|
+
for (const row of data.chains) {
|
|
72
|
+
if (row.parentChainId && !chainIds.has(row.parentChainId))
|
|
73
|
+
throw new InvalidCatalogError(`Unknown parent chain "${row.parentChainId}".`);
|
|
74
|
+
const chain = Chain.from({
|
|
75
|
+
aliases: row.aliases,
|
|
76
|
+
id: row.id,
|
|
77
|
+
name: row.name,
|
|
78
|
+
...(row.parentChainId ? { parentChainId: row.parentChainId } : {}),
|
|
79
|
+
rpcUrls: row.rpcUrls,
|
|
80
|
+
slug: row.slug,
|
|
81
|
+
});
|
|
82
|
+
if (chainsById.has(chain.id))
|
|
83
|
+
throw new InvalidCatalogError(`Duplicate chain "${chain.id}".`);
|
|
84
|
+
chainsById.set(chain.id, chain);
|
|
85
|
+
for (const key of [chain.id, chain.slug, ...chain.aliases]) {
|
|
86
|
+
const normalized = normalizeKey(key);
|
|
87
|
+
if (chainsByKey.has(normalized))
|
|
88
|
+
throw new InvalidCatalogError(`Duplicate chain key "${key}".`);
|
|
89
|
+
chainsByKey.set(normalized, chain);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
const configs = new Map();
|
|
93
|
+
const placements = new Set();
|
|
94
|
+
const tokenIds = new Set(data.tokens.map((token) => token.id));
|
|
95
|
+
for (const row of data.chainTokens) {
|
|
96
|
+
const chain = chainsById.get(row.chainId);
|
|
97
|
+
if (!chain)
|
|
98
|
+
throw new InvalidCatalogError(`Unknown chain "${row.chainId}" for token placement.`);
|
|
99
|
+
if (!tokenIds.has(row.tokenId))
|
|
100
|
+
throw new InvalidCatalogError(`Unknown token "${row.tokenId}" for token placement.`);
|
|
101
|
+
const placement = placementKey(row.chainId, row.tokenId);
|
|
102
|
+
if (placements.has(placement))
|
|
103
|
+
throw new InvalidCatalogError(`Duplicate token placement "${placement}".`);
|
|
104
|
+
placements.add(placement);
|
|
105
|
+
const chains = configs.get(row.tokenId) ?? {};
|
|
106
|
+
chains[chain.id] = {
|
|
107
|
+
address: row.address,
|
|
108
|
+
decimals: row.decimals,
|
|
109
|
+
...(row.name ? { name: row.name } : {}),
|
|
110
|
+
standard: row.standard,
|
|
111
|
+
};
|
|
112
|
+
configs.set(row.tokenId, chains);
|
|
113
|
+
}
|
|
114
|
+
const tokensById = new Map();
|
|
115
|
+
for (const row of data.tokens) {
|
|
116
|
+
if (tokensById.has(row.id))
|
|
117
|
+
throw new InvalidCatalogError(`Duplicate token "${row.id}".`);
|
|
118
|
+
tokensById.set(row.id, Token.from({
|
|
119
|
+
chains: configs.get(row.id) ?? {},
|
|
120
|
+
currency: row.currency,
|
|
121
|
+
name: row.name,
|
|
122
|
+
slug: row.id,
|
|
123
|
+
symbol: row.symbol,
|
|
124
|
+
}));
|
|
125
|
+
}
|
|
126
|
+
const routes = [];
|
|
127
|
+
const routesByProvider = new Map();
|
|
128
|
+
for (const row of data.routes) {
|
|
129
|
+
const route = {
|
|
130
|
+
destination: resolvePlacement(chainsById, tokensById, row.destinationChainId, row.destinationTokenId),
|
|
131
|
+
source: resolvePlacement(chainsById, tokensById, row.sourceChainId, row.sourceTokenId),
|
|
132
|
+
};
|
|
133
|
+
routes.push({
|
|
134
|
+
...(row.capabilities ? { capabilities: row.capabilities } : {}),
|
|
135
|
+
providerId: row.providerId,
|
|
136
|
+
route,
|
|
137
|
+
});
|
|
138
|
+
const providerRoutes = routesByProvider.get(row.providerId);
|
|
139
|
+
if (providerRoutes)
|
|
140
|
+
providerRoutes.push(route);
|
|
141
|
+
else
|
|
142
|
+
routesByProvider.set(row.providerId, [route]);
|
|
143
|
+
}
|
|
144
|
+
return {
|
|
145
|
+
chainsByKey,
|
|
146
|
+
routes,
|
|
147
|
+
routesByProvider,
|
|
148
|
+
tokensById,
|
|
149
|
+
updatedAt: rows.catalog?.updatedAt ?? emptyUpdatedAt,
|
|
150
|
+
version: rows.catalog?.version ?? emptyVersion,
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
/** Reads and compiles the current funding catalog from Postgres. */
|
|
154
|
+
export async function read(db) {
|
|
155
|
+
return compile(await core_Catalog.read(db));
|
|
156
|
+
}
|
|
157
|
+
/** Publishes a complete funding catalog and primes the current isolate. */
|
|
158
|
+
export async function publish(db, input) {
|
|
159
|
+
const data = normalize(input);
|
|
160
|
+
compile({
|
|
161
|
+
catalog: { id: 'default', updatedAt: emptyUpdatedAt, version: 'validation' },
|
|
162
|
+
...data,
|
|
163
|
+
});
|
|
164
|
+
// Absent `capabilities` persists as null; both mean indicative-only.
|
|
165
|
+
await core_Catalog.publish(db, {
|
|
166
|
+
...data,
|
|
167
|
+
routes: data.routes.map((route) => ({ ...route, capabilities: route.capabilities ?? null })),
|
|
168
|
+
});
|
|
169
|
+
return prime(db, await read(db));
|
|
170
|
+
}
|
|
171
|
+
/** Replaces the current isolate's compiled catalog snapshot. */
|
|
172
|
+
export function prime(source, snapshot) {
|
|
173
|
+
cells.set(source, { checkedAt: Date.now(), snapshot });
|
|
174
|
+
return snapshot;
|
|
175
|
+
}
|
|
176
|
+
/** Returns the current funding catalog snapshot with soft background refresh. */
|
|
177
|
+
export function snapshot(c) {
|
|
178
|
+
return Timing.time(c, 'funding_catalog', async () => {
|
|
179
|
+
const source = c.get('dbCached');
|
|
180
|
+
const cell = cells.get(source);
|
|
181
|
+
if (cell && Date.now() - cell.checkedAt < defaultRefreshMs)
|
|
182
|
+
return cell.snapshot;
|
|
183
|
+
if (cell) {
|
|
184
|
+
const pending = refresh(c, source, cell);
|
|
185
|
+
try {
|
|
186
|
+
c.executionCtx.waitUntil(pending);
|
|
187
|
+
}
|
|
188
|
+
catch {
|
|
189
|
+
void pending;
|
|
190
|
+
}
|
|
191
|
+
return cell.snapshot;
|
|
192
|
+
}
|
|
193
|
+
return refresh(c, source, undefined);
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
const cells = new WeakMap();
|
|
197
|
+
const refreshing = new WeakMap();
|
|
198
|
+
function refresh(c, source, current) {
|
|
199
|
+
const existing = refreshing.get(source);
|
|
200
|
+
if (existing)
|
|
201
|
+
return existing;
|
|
202
|
+
const pending = (async () => {
|
|
203
|
+
try {
|
|
204
|
+
const db = Db.get(source);
|
|
205
|
+
if (current) {
|
|
206
|
+
const head = await Timing.time(c, 'funding_catalog_head', () => core_Catalog.head(db));
|
|
207
|
+
if (!head || head.version === current.snapshot.version) {
|
|
208
|
+
cells.set(source, { checkedAt: Date.now(), snapshot: current.snapshot });
|
|
209
|
+
return current.snapshot;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
const next = await read(db);
|
|
213
|
+
cells.set(source, { checkedAt: Date.now(), snapshot: next });
|
|
214
|
+
return next;
|
|
215
|
+
}
|
|
216
|
+
catch (error) {
|
|
217
|
+
if (!current)
|
|
218
|
+
throw error;
|
|
219
|
+
console.error('[funding-catalog] refresh failed; serving last good snapshot', error);
|
|
220
|
+
cells.set(source, { checkedAt: Date.now(), snapshot: current.snapshot });
|
|
221
|
+
return current.snapshot;
|
|
222
|
+
}
|
|
223
|
+
finally {
|
|
224
|
+
refreshing.delete(source);
|
|
225
|
+
}
|
|
226
|
+
})();
|
|
227
|
+
refreshing.set(source, pending);
|
|
228
|
+
return pending;
|
|
229
|
+
}
|
|
230
|
+
function hasContent(data) {
|
|
231
|
+
return (data.chains.length > 0 ||
|
|
232
|
+
data.tokens.length > 0 ||
|
|
233
|
+
data.chainTokens.length > 0 ||
|
|
234
|
+
data.routes.length > 0);
|
|
235
|
+
}
|
|
236
|
+
function normalize(input) {
|
|
237
|
+
const data = schema.Data.parse(input);
|
|
238
|
+
return {
|
|
239
|
+
...data,
|
|
240
|
+
chainTokens: data.chainTokens.map((token) => ({
|
|
241
|
+
...token,
|
|
242
|
+
address: token.chainId.startsWith('eip155:') ? token.address.toLowerCase() : token.address,
|
|
243
|
+
})),
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
function normalizeKey(key) {
|
|
247
|
+
return key.trim().toLowerCase();
|
|
248
|
+
}
|
|
249
|
+
function placementKey(chainId, tokenId) {
|
|
250
|
+
return `${chainId}:${tokenId}`;
|
|
251
|
+
}
|
|
252
|
+
function resolvePlacement(chains, tokens, chainId, tokenId) {
|
|
253
|
+
const chain = chains.get(chainId);
|
|
254
|
+
if (!chain)
|
|
255
|
+
throw new InvalidCatalogError(`Unknown route chain "${chainId}".`);
|
|
256
|
+
const token = tokens.get(tokenId);
|
|
257
|
+
if (!token)
|
|
258
|
+
throw new InvalidCatalogError(`Unknown route token "${tokenId}".`);
|
|
259
|
+
try {
|
|
260
|
+
return Token.resolve(token, chain);
|
|
261
|
+
}
|
|
262
|
+
catch {
|
|
263
|
+
throw new InvalidCatalogError(`Unknown route token placement "${placementKey(chainId, tokenId)}".`);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
/** Error thrown when funding catalog references cannot be compiled. */
|
|
267
|
+
export class InvalidCatalogError extends Error {
|
|
268
|
+
name = 'Funding.Catalog.InvalidCatalogError';
|
|
269
|
+
}
|
|
270
|
+
//# sourceMappingURL=Catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Catalog.js","sourceRoot":"","sources":["../../../src/internal/funding/Catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import * as Token from './Token.js';
|
|
2
|
+
/** Canonical identifier for a funding chain. */
|
|
3
|
+
export type Id = `eip155:${number}` | `solana:${string}` | `tron:${string}`;
|
|
4
|
+
/** Chain metadata for a funding token. */
|
|
5
|
+
export type Chain = Callable & ((Base & {
|
|
6
|
+
/** Address encoding used by accounts and tokens on the chain. */
|
|
7
|
+
addressFormat: 'hex';
|
|
8
|
+
/** Chain execution family. */
|
|
9
|
+
kind: 'evm';
|
|
10
|
+
}) | (Base & {
|
|
11
|
+
/** Address encoding used by accounts and tokens on the chain. */
|
|
12
|
+
addressFormat: 'base58';
|
|
13
|
+
/** Chain execution family. */
|
|
14
|
+
kind: 'solana';
|
|
15
|
+
}) | (Base & {
|
|
16
|
+
/** Address encoding used by accounts and tokens on the chain. */
|
|
17
|
+
addressFormat: 'base58check';
|
|
18
|
+
/** Chain execution family. */
|
|
19
|
+
kind: 'tron';
|
|
20
|
+
}));
|
|
21
|
+
type Callable = (options: Callable.Options) => Selection;
|
|
22
|
+
declare namespace Callable {
|
|
23
|
+
/** Tokens selected for a funding route on this chain. */
|
|
24
|
+
type Options = {
|
|
25
|
+
/** Token definitions to resolve on the chain. */
|
|
26
|
+
tokens: readonly Token.Token[];
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/** Tokens resolved for one funding chain. */
|
|
30
|
+
export type Selection = {
|
|
31
|
+
/** Chain shared by every selected token. */
|
|
32
|
+
chain: Chain;
|
|
33
|
+
/** Chain-scoped funding tokens. */
|
|
34
|
+
tokens: readonly Token.Resolved[];
|
|
35
|
+
};
|
|
36
|
+
type Base = {
|
|
37
|
+
/** Caller-facing aliases accepted for this chain. */
|
|
38
|
+
aliases: readonly string[];
|
|
39
|
+
/** CAIP-2 chain identifier. */
|
|
40
|
+
id: Id;
|
|
41
|
+
/** Human-readable chain name. */
|
|
42
|
+
name: string;
|
|
43
|
+
/** Parent chain identifier when this chain is a Zone. */
|
|
44
|
+
parentChainId?: Id | undefined;
|
|
45
|
+
/** Public RPC endpoints used for funding-chain evidence. */
|
|
46
|
+
rpcUrls: readonly string[];
|
|
47
|
+
/** Stable chain segment used in quote identifiers. */
|
|
48
|
+
slug: string;
|
|
49
|
+
};
|
|
50
|
+
/** Creates funding chain metadata from a CAIP-2 identifier. */
|
|
51
|
+
export declare function from(options: from.Options): Chain;
|
|
52
|
+
export declare namespace from {
|
|
53
|
+
/** Funding chain definition. */
|
|
54
|
+
type Options = {
|
|
55
|
+
/** Additional caller-facing aliases accepted for this chain. */
|
|
56
|
+
aliases?: readonly string[] | undefined;
|
|
57
|
+
/** CAIP-2 chain identifier. */
|
|
58
|
+
id: Id;
|
|
59
|
+
/** Human-readable chain name. */
|
|
60
|
+
name: string;
|
|
61
|
+
/** Parent chain identifier when this chain is a Zone. */
|
|
62
|
+
parentChainId?: Id | undefined;
|
|
63
|
+
/** Public RPC endpoints used for funding-chain evidence. */
|
|
64
|
+
rpcUrls?: readonly string[] | undefined;
|
|
65
|
+
/** Stable chain segment used in quote identifiers. */
|
|
66
|
+
slug: string;
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/** Returns the numeric portion of an EIP-155 CAIP-2 chain identifier. */
|
|
70
|
+
export declare function eip155Id(chain: Chain): string;
|
|
71
|
+
/** Error thrown when a funding chain identifier is invalid for an operation. */
|
|
72
|
+
export declare class InvalidIdError extends Error {
|
|
73
|
+
name: string;
|
|
74
|
+
}
|
|
75
|
+
export {};
|
|
76
|
+
//# sourceMappingURL=Chain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Chain.d.ts","sourceRoot":"","sources":["../../../src/internal/funding/Chain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC,gDAAgD;AAChD,MAAM,MAAM,EAAE,GAAG,UAAU,MAAM,EAAE,GAAG,UAAU,MAAM,EAAE,GAAG,QAAQ,MAAM,EAAE,CAAA;AAE3E,0CAA0C;AAC1C,MAAM,MAAM,KAAK,GAAG,QAAQ,GAC1B,CACI,CAAC,IAAI,GAAG;IACN,iEAAiE;IACjE,aAAa,EAAE,KAAK,CAAA;IACpB,8BAA8B;IAC9B,IAAI,EAAE,KAAK,CAAA;CACZ,CAAC,GACF,CAAC,IAAI,GAAG;IACN,iEAAiE;IACjE,aAAa,EAAE,QAAQ,CAAA;IACvB,8BAA8B;IAC9B,IAAI,EAAE,QAAQ,CAAA;CACf,CAAC,GACF,CAAC,IAAI,GAAG;IACN,iEAAiE;IACjE,aAAa,EAAE,aAAa,CAAA;IAC5B,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAA;CACb,CAAC,CACL,CAAA;AAEH,KAAK,QAAQ,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,KAAK,SAAS,CAAA;AAExD,OAAO,WAAW,QAAQ,CAAC;IACzB,yDAAyD;IACzD,KAAK,OAAO,GAAG;QACb,iDAAiD;QACjD,MAAM,EAAE,SAAS,KAAK,CAAC,KAAK,EAAE,CAAA;KAC/B,CAAA;CACF;AAED,6CAA6C;AAC7C,MAAM,MAAM,SAAS,GAAG;IACtB,4CAA4C;IAC5C,KAAK,EAAE,KAAK,CAAA;IACZ,mCAAmC;IACnC,MAAM,EAAE,SAAS,KAAK,CAAC,QAAQ,EAAE,CAAA;CAClC,CAAA;AAED,KAAK,IAAI,GAAG;IACV,qDAAqD;IACrD,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IAC1B,+BAA+B;IAC/B,EAAE,EAAE,EAAE,CAAA;IACN,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,yDAAyD;IACzD,aAAa,CAAC,EAAE,EAAE,GAAG,SAAS,CAAA;IAC9B,4DAA4D;IAC5D,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IAC1B,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,+DAA+D;AAC/D,wBAAgB,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,GAAG,KAAK,CA2BjD;AAED,MAAM,CAAC,OAAO,WAAW,IAAI,CAAC;IAC5B,gCAAgC;IAChC,KAAK,OAAO,GAAG;QACb,gEAAgE;QAChE,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;QACvC,+BAA+B;QAC/B,EAAE,EAAE,EAAE,CAAA;QACN,iCAAiC;QACjC,IAAI,EAAE,MAAM,CAAA;QACZ,yDAAyD;QACzD,aAAa,CAAC,EAAE,EAAE,GAAG,SAAS,CAAA;QAC9B,4DAA4D;QAC5D,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;QACvC,sDAAsD;QACtD,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;CACF;AAED,yEAAyE;AACzE,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAI7C;AAED,gFAAgF;AAChF,qBAAa,cAAe,SAAQ,KAAK;IAC9B,IAAI,SAAiC;CAC/C"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import * as Token from './Token.js';
|
|
2
|
+
/** Creates funding chain metadata from a CAIP-2 identifier. */
|
|
3
|
+
export function from(options) {
|
|
4
|
+
const { aliases = [], id, name, parentChainId, rpcUrls = [], slug } = options;
|
|
5
|
+
const base = { aliases, id, name, ...(parentChainId ? { parentChainId } : {}), rpcUrls, slug };
|
|
6
|
+
const metadata = (() => {
|
|
7
|
+
if (id.startsWith('eip155:'))
|
|
8
|
+
return { ...base, addressFormat: 'hex', kind: 'evm' };
|
|
9
|
+
if (id.startsWith('solana:'))
|
|
10
|
+
return { ...base, addressFormat: 'base58', kind: 'solana' };
|
|
11
|
+
if (id.startsWith('tron:'))
|
|
12
|
+
return { ...base, addressFormat: 'base58check', kind: 'tron' };
|
|
13
|
+
throw new InvalidIdError();
|
|
14
|
+
})();
|
|
15
|
+
function select(parameters) {
|
|
16
|
+
const chain = select;
|
|
17
|
+
return {
|
|
18
|
+
chain,
|
|
19
|
+
tokens: parameters.tokens.map((token) => Token.resolve(token, chain)),
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
return Object.defineProperties(select, Object.fromEntries(Object.entries(metadata).map(([key, value]) => [
|
|
23
|
+
key,
|
|
24
|
+
{ configurable: true, enumerable: true, value },
|
|
25
|
+
])));
|
|
26
|
+
}
|
|
27
|
+
/** Returns the numeric portion of an EIP-155 CAIP-2 chain identifier. */
|
|
28
|
+
export function eip155Id(chain) {
|
|
29
|
+
const match = /^eip155:(\d+)$/.exec(chain.id);
|
|
30
|
+
if (!match?.[1])
|
|
31
|
+
throw new InvalidIdError();
|
|
32
|
+
return match[1];
|
|
33
|
+
}
|
|
34
|
+
/** Error thrown when a funding chain identifier is invalid for an operation. */
|
|
35
|
+
export class InvalidIdError extends Error {
|
|
36
|
+
name = 'Funding.Chain.InvalidIdError';
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=Chain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Chain.js","sourceRoot":"","sources":["../../../src/internal/funding/Chain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AA6DnC,+DAA+D;AAC/D,MAAM,UAAU,IAAI,CAAC,OAAqB;IACxC,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;IAC7E,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC9F,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE;QACrB,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,EAAE,GAAG,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAW,CAAA;QAC5F,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;YAC1B,OAAO,EAAE,GAAG,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAW,CAAA;QACtE,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;YACxB,OAAO,EAAE,GAAG,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAW,CAAA;QACzE,MAAM,IAAI,cAAc,EAAE,CAAA;IAC5B,CAAC,CAAC,EAAE,CAAA;IACJ,SAAS,MAAM,CAAC,UAA4B;QAC1C,MAAM,KAAK,GAAG,MAAe,CAAA;QAC7B,OAAO;YACL,KAAK;YACL,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACtE,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAC,gBAAgB,CAC5B,MAAM,EACN,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QAC7C,GAAG;QACH,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE;KAChD,CAAC,CACH,CACO,CAAA;AACZ,CAAC;AAoBD,yEAAyE;AACzE,MAAM,UAAU,QAAQ,CAAC,KAAY;IACnC,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC7C,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAAE,MAAM,IAAI,cAAc,EAAE,CAAA;IAC3C,OAAO,KAAK,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;AAED,gFAAgF;AAChF,MAAM,OAAO,cAAe,SAAQ,KAAK;IAC9B,IAAI,GAAG,8BAA8B,CAAA;CAC/C"}
|