tapimo 0.0.2 → 0.2.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 +38 -16
- package/dist/ApiKey.d.ts +14 -11
- package/dist/ApiKey.d.ts.map +1 -1
- package/dist/ApiKey.js +11 -12
- package/dist/ApiKey.js.map +1 -1
- package/dist/ApiKeys.d.ts +207 -0
- package/dist/ApiKeys.d.ts.map +1 -0
- package/dist/ApiKeys.js +282 -0
- package/dist/ApiKeys.js.map +1 -0
- package/dist/App.d.ts +6771 -3819
- package/dist/App.d.ts.map +1 -1
- package/dist/App.js +145 -317
- package/dist/App.js.map +1 -1
- package/dist/Handler.d.ts +86 -0
- package/dist/Handler.d.ts.map +1 -0
- package/dist/Handler.js +83 -0
- package/dist/Handler.js.map +1 -0
- package/dist/Scope.d.ts +14 -4
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +16 -4
- package/dist/Scope.js.map +1 -1
- package/dist/Webhooks.d.ts +5 -7
- package/dist/Webhooks.d.ts.map +1 -1
- package/dist/Webhooks.js +11 -4
- package/dist/Webhooks.js.map +1 -1
- package/dist/admin/Access.d.ts +1 -3
- package/dist/admin/Access.d.ts.map +1 -1
- package/dist/admin/Access.js +1 -3
- package/dist/admin/Access.js.map +1 -1
- package/dist/admin/App.d.ts +167 -205
- package/dist/admin/App.d.ts.map +1 -1
- package/dist/admin/App.js +2 -4
- package/dist/admin/App.js.map +1 -1
- package/dist/admin/apps/api-keys.d.ts +105 -5
- package/dist/admin/apps/api-keys.d.ts.map +1 -1
- package/dist/admin/apps/api-keys.js +75 -9
- package/dist/admin/apps/api-keys.js.map +1 -1
- package/dist/admin/apps/scopes.d.ts +6 -0
- package/dist/admin/apps/scopes.d.ts.map +1 -1
- package/dist/admin/apps/verified-tokens.d.ts +35 -149
- package/dist/admin/apps/verified-tokens.d.ts.map +1 -1
- package/dist/admin/apps/verified-tokens.js +18 -39
- package/dist/admin/apps/verified-tokens.js.map +1 -1
- package/dist/admin/ui.generated.d.ts +1 -1
- package/dist/admin/ui.generated.js +1 -1
- package/dist/apps/data/App.d.ts +19176 -0
- package/dist/apps/data/App.d.ts.map +1 -0
- package/dist/apps/data/App.js +236 -0
- package/dist/apps/data/App.js.map +1 -0
- package/dist/apps/data/index.d.ts +3 -0
- package/dist/apps/data/index.d.ts.map +1 -0
- package/dist/apps/data/index.js +3 -0
- package/dist/apps/data/index.js.map +1 -0
- package/dist/apps/{activities.d.ts → data/routes/activities.d.ts} +32 -32
- package/dist/apps/{activities.d.ts.map → data/routes/activities.d.ts.map} +1 -1
- package/dist/apps/{activities.js → data/routes/activities.js} +13 -13
- package/dist/apps/data/routes/activities.js.map +1 -0
- package/dist/apps/{addresses.d.ts → data/routes/addresses.d.ts} +22 -22
- package/dist/apps/{addresses.d.ts.map → data/routes/addresses.d.ts.map} +1 -1
- package/dist/apps/{addresses.js → data/routes/addresses.js} +5 -5
- package/dist/apps/data/routes/addresses.js.map +1 -0
- package/dist/apps/{balances.d.ts → data/routes/balances.d.ts} +49 -49
- package/dist/apps/data/routes/balances.d.ts.map +1 -0
- package/dist/apps/{balances.js → data/routes/balances.js} +42 -11
- package/dist/apps/data/routes/balances.js.map +1 -0
- package/dist/apps/{blocks.d.ts → data/routes/blocks.d.ts} +47 -47
- package/dist/apps/data/routes/blocks.d.ts.map +1 -0
- package/dist/apps/{blocks.js → data/routes/blocks.js} +13 -13
- package/dist/apps/data/routes/blocks.js.map +1 -0
- package/dist/apps/{coingecko.d.ts → data/routes/coingecko.d.ts} +183 -183
- package/dist/apps/data/routes/coingecko.d.ts.map +1 -0
- package/dist/apps/{coingecko.js → data/routes/coingecko.js} +13 -13
- package/dist/apps/data/routes/coingecko.js.map +1 -0
- package/dist/apps/{exchanges.d.ts → data/routes/exchanges.d.ts} +460 -460
- package/dist/apps/data/routes/exchanges.d.ts.map +1 -0
- package/dist/apps/{exchanges.js → data/routes/exchanges.js} +19 -19
- package/dist/apps/data/routes/exchanges.js.map +1 -0
- package/dist/apps/{fee-amm.d.ts → data/routes/fee-amm.d.ts} +94 -94
- package/dist/apps/data/routes/fee-amm.d.ts.map +1 -0
- package/dist/apps/{fee-amm.js → data/routes/fee-amm.js} +17 -17
- package/dist/apps/data/routes/fee-amm.js.map +1 -0
- package/dist/apps/{indexer.d.ts → data/routes/indexer.d.ts} +4 -4
- package/dist/apps/data/routes/indexer.d.ts.map +1 -0
- package/dist/apps/{indexer.js → data/routes/indexer.js} +13 -9
- package/dist/apps/data/routes/indexer.js.map +1 -0
- package/dist/apps/{receipts.d.ts → data/routes/receipts.d.ts} +6 -6
- package/dist/apps/data/routes/receipts.d.ts.map +1 -0
- package/dist/apps/{receipts.js → data/routes/receipts.js} +12 -12
- package/dist/apps/data/routes/receipts.js.map +1 -0
- package/dist/apps/{rpc.d.ts → data/routes/rpc.d.ts} +4 -4
- package/dist/apps/data/routes/rpc.d.ts.map +1 -0
- package/dist/apps/{rpc.js → data/routes/rpc.js} +6 -6
- package/dist/apps/data/routes/rpc.js.map +1 -0
- package/dist/apps/{tokenlist.d.ts → data/routes/tokenlist.d.ts} +4 -4
- package/dist/apps/data/routes/tokenlist.d.ts.map +1 -0
- package/dist/apps/{tokenlist.js → data/routes/tokenlist.js} +8 -8
- package/dist/apps/data/routes/tokenlist.js.map +1 -0
- package/dist/apps/{tokens.d.ts → data/routes/tokens.d.ts} +11 -11
- package/dist/apps/data/routes/tokens.d.ts.map +1 -0
- package/dist/apps/{tokens.js → data/routes/tokens.js} +19 -19
- package/dist/apps/data/routes/tokens.js.map +1 -0
- package/dist/apps/{transactions.d.ts → data/routes/transactions.d.ts} +288 -288
- package/dist/apps/data/routes/transactions.d.ts.map +1 -0
- package/dist/apps/{transactions.js → data/routes/transactions.js} +13 -13
- package/dist/apps/data/routes/transactions.js.map +1 -0
- package/dist/apps/{transfers.d.ts → data/routes/transfers.d.ts} +35 -35
- package/dist/apps/data/routes/transfers.d.ts.map +1 -0
- package/dist/apps/{transfers.js → data/routes/transfers.js} +13 -13
- package/dist/apps/data/routes/transfers.js.map +1 -0
- package/dist/apps/{verified-tokens.d.ts → data/routes/verified-tokens.d.ts} +42 -42
- package/dist/apps/data/routes/verified-tokens.d.ts.map +1 -0
- package/dist/apps/{verified-tokens.js → data/routes/verified-tokens.js} +9 -9
- package/dist/apps/data/routes/verified-tokens.js.map +1 -0
- package/dist/apps/{webhooks.d.ts → data/routes/webhooks.d.ts} +66 -63
- package/dist/apps/{webhooks.d.ts.map → data/routes/webhooks.d.ts.map} +1 -1
- package/dist/apps/{webhooks.js → data/routes/webhooks.js} +67 -59
- package/dist/apps/data/routes/webhooks.js.map +1 -0
- package/dist/apps/docs/App.d.ts +27 -0
- package/dist/apps/docs/App.d.ts.map +1 -0
- package/dist/apps/docs/App.js +122 -0
- package/dist/apps/docs/App.js.map +1 -0
- package/dist/{internal/OpenApi.fonts.d.ts → apps/docs/fonts.d.ts} +1 -1
- package/dist/apps/docs/fonts.d.ts.map +1 -0
- package/dist/{internal/OpenApi.fonts.js → apps/docs/fonts.js} +1 -1
- package/dist/apps/docs/fonts.js.map +1 -0
- package/dist/apps/docs/index.d.ts +2 -0
- package/dist/apps/docs/index.d.ts.map +1 -0
- package/dist/apps/docs/index.js +2 -0
- package/dist/apps/docs/index.js.map +1 -0
- package/dist/{internal/OpenApi.logo.d.ts → apps/docs/logo.d.ts} +1 -1
- package/dist/apps/docs/logo.d.ts.map +1 -0
- package/dist/{internal/OpenApi.logo.js → apps/docs/logo.js} +1 -1
- package/dist/apps/docs/logo.js.map +1 -0
- package/dist/apps/index.d.ts +4 -0
- package/dist/apps/index.d.ts.map +1 -0
- package/dist/apps/index.js +4 -0
- package/dist/apps/index.js.map +1 -0
- package/dist/apps/metadata.d.ts +7 -0
- package/dist/apps/metadata.d.ts.map +1 -0
- package/dist/apps/metadata.js +15 -0
- package/dist/apps/metadata.js.map +1 -0
- package/dist/apps/platform/App.d.ts +2985 -0
- package/dist/apps/platform/App.d.ts.map +1 -0
- package/dist/apps/platform/App.js +74 -0
- package/dist/apps/platform/App.js.map +1 -0
- package/dist/apps/platform/index.d.ts +2 -0
- package/dist/apps/platform/index.d.ts.map +1 -0
- package/dist/apps/platform/index.js +2 -0
- package/dist/apps/platform/index.js.map +1 -0
- package/dist/apps/platform/routes/api-keys.d.ts +681 -0
- package/dist/apps/platform/routes/api-keys.d.ts.map +1 -0
- package/dist/apps/platform/routes/api-keys.js +328 -0
- package/dist/apps/platform/routes/api-keys.js.map +1 -0
- package/dist/apps/platform/routes/invitations.d.ts +733 -0
- package/dist/apps/platform/routes/invitations.d.ts.map +1 -0
- package/dist/apps/platform/routes/invitations.js +413 -0
- package/dist/apps/platform/routes/invitations.js.map +1 -0
- package/dist/apps/platform/routes/me.d.ts +95 -0
- package/dist/apps/platform/routes/me.d.ts.map +1 -0
- package/dist/apps/platform/routes/me.js +81 -0
- package/dist/apps/platform/routes/me.js.map +1 -0
- package/dist/apps/platform/routes/members.d.ts +554 -0
- package/dist/apps/platform/routes/members.d.ts.map +1 -0
- package/dist/apps/platform/routes/members.js +251 -0
- package/dist/apps/platform/routes/members.js.map +1 -0
- package/dist/apps/platform/routes/orgs.d.ts +582 -0
- package/dist/apps/platform/routes/orgs.d.ts.map +1 -0
- package/dist/apps/platform/routes/orgs.js +265 -0
- package/dist/apps/platform/routes/orgs.js.map +1 -0
- package/dist/apps/platform/routes/projects.d.ts +740 -0
- package/dist/apps/platform/routes/projects.d.ts.map +1 -0
- package/dist/apps/platform/routes/projects.js +286 -0
- package/dist/apps/platform/routes/projects.js.map +1 -0
- package/dist/apps/relay/App.d.ts +41 -0
- package/dist/apps/relay/App.d.ts.map +1 -0
- package/dist/apps/relay/App.js +103 -0
- package/dist/apps/relay/App.js.map +1 -0
- package/dist/apps/relay/Sponsorships.d.ts +107 -0
- package/dist/apps/relay/Sponsorships.d.ts.map +1 -0
- package/dist/apps/relay/Sponsorships.js +193 -0
- package/dist/apps/relay/Sponsorships.js.map +1 -0
- package/dist/apps/relay/index.d.ts +3 -0
- package/dist/apps/relay/index.d.ts.map +1 -0
- package/dist/apps/relay/index.js +3 -0
- package/dist/apps/relay/index.js.map +1 -0
- package/dist/{Cli.d.ts → cli/Cli.d.ts} +13 -2
- package/dist/cli/Cli.d.ts.map +1 -0
- package/dist/cli/Cli.js +19 -0
- package/dist/cli/Cli.js.map +1 -0
- package/dist/cli/bin.d.ts +3 -0
- package/dist/cli/bin.d.ts.map +1 -0
- package/dist/cli/bin.js +4 -0
- package/dist/cli/bin.js.map +1 -0
- package/dist/cli/commands/admin.d.ts +15 -0
- package/dist/cli/commands/admin.d.ts.map +1 -0
- package/dist/cli/commands/admin.js +60 -0
- package/dist/cli/commands/admin.js.map +1 -0
- package/dist/cloudflare.d.ts +7 -0
- package/dist/cloudflare.d.ts.map +1 -1
- package/dist/cloudflare.js +9 -0
- package/dist/cloudflare.js.map +1 -1
- package/dist/db/Db.d.ts +113 -0
- package/dist/db/Db.d.ts.map +1 -0
- package/dist/db/Db.js +402 -0
- package/dist/db/Db.js.map +1 -0
- package/dist/db/Schema.d.ts +168 -0
- package/dist/db/Schema.d.ts.map +1 -0
- package/dist/db/Schema.js +229 -0
- package/dist/db/Schema.js.map +1 -0
- package/dist/db/tables/invitations.d.ts +84 -0
- package/dist/db/tables/invitations.d.ts.map +1 -0
- package/dist/db/tables/invitations.js +165 -0
- package/dist/db/tables/invitations.js.map +1 -0
- package/dist/db/tables/memberships.d.ts +108 -0
- package/dist/db/tables/memberships.d.ts.map +1 -0
- package/dist/db/tables/memberships.js +153 -0
- package/dist/db/tables/memberships.js.map +1 -0
- package/dist/db/tables/organizations.d.ts +123 -0
- package/dist/db/tables/organizations.d.ts.map +1 -0
- package/dist/db/tables/organizations.js +170 -0
- package/dist/db/tables/organizations.js.map +1 -0
- package/dist/db/tables/projects.d.ts +65 -0
- package/dist/db/tables/projects.d.ts.map +1 -0
- package/dist/db/tables/projects.js +75 -0
- package/dist/db/tables/projects.js.map +1 -0
- package/dist/db/tables/sponsoredTransactions.d.ts +120 -0
- package/dist/db/tables/sponsoredTransactions.d.ts.map +1 -0
- package/dist/db/tables/sponsoredTransactions.js +161 -0
- package/dist/db/tables/sponsoredTransactions.js.map +1 -0
- package/dist/db/tables/users.d.ts +48 -0
- package/dist/db/tables/users.d.ts.map +1 -0
- package/dist/db/tables/users.js +65 -0
- package/dist/db/tables/users.js.map +1 -0
- package/dist/db/tables/verifiedTokens.d.ts +53 -0
- package/dist/db/tables/verifiedTokens.d.ts.map +1 -0
- package/dist/db/tables/verifiedTokens.js +74 -0
- package/dist/db/tables/verifiedTokens.js.map +1 -0
- package/dist/db/tables/webhookDeliveries.d.ts +71 -0
- package/dist/db/tables/webhookDeliveries.d.ts.map +1 -0
- package/dist/db/tables/webhookDeliveries.js +119 -0
- package/dist/db/tables/webhookDeliveries.js.map +1 -0
- package/dist/db/tables/webhookSubscriptions.d.ts +158 -0
- package/dist/db/tables/webhookSubscriptions.d.ts.map +1 -0
- package/dist/db/tables/webhookSubscriptions.js +272 -0
- package/dist/db/tables/webhookSubscriptions.js.map +1 -0
- package/dist/handlers/internal/executionError.d.ts +25 -0
- package/dist/handlers/internal/executionError.d.ts.map +1 -0
- package/dist/handlers/internal/executionError.js +186 -0
- package/dist/handlers/internal/executionError.js.map +1 -0
- package/dist/handlers/internal/multisig.d.ts +233 -0
- package/dist/handlers/internal/multisig.d.ts.map +1 -0
- package/dist/handlers/internal/multisig.js +542 -0
- package/dist/handlers/internal/multisig.js.map +1 -0
- package/dist/handlers/internal/requestListener.d.ts +124 -0
- package/dist/handlers/internal/requestListener.d.ts.map +1 -0
- package/dist/handlers/internal/requestListener.js +173 -0
- package/dist/handlers/internal/requestListener.js.map +1 -0
- package/dist/handlers/internal/sponsorship.d.ts +113 -0
- package/dist/handlers/internal/sponsorship.d.ts.map +1 -0
- package/dist/handlers/internal/sponsorship.js +128 -0
- package/dist/handlers/internal/sponsorship.js.map +1 -0
- package/dist/handlers/internal/types.d.ts +284 -0
- package/dist/handlers/internal/types.d.ts.map +1 -0
- package/dist/handlers/internal/types.js +2 -0
- package/dist/handlers/internal/types.js.map +1 -0
- package/dist/handlers/internal/utils.d.ts +34 -0
- package/dist/handlers/internal/utils.d.ts.map +1 -0
- package/dist/handlers/internal/utils.js +131 -0
- package/dist/handlers/internal/utils.js.map +1 -0
- package/dist/handlers/relay.d.ts +123 -0
- package/dist/handlers/relay.d.ts.map +1 -0
- package/dist/handlers/relay.js +1278 -0
- package/dist/handlers/relay.js.map +1 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/internal/Auth.d.ts +224 -16
- package/dist/internal/Auth.d.ts.map +1 -1
- package/dist/internal/Auth.js +572 -33
- package/dist/internal/Auth.js.map +1 -1
- package/dist/internal/Log.d.ts +7 -3
- package/dist/internal/Log.d.ts.map +1 -1
- package/dist/internal/Log.js +4 -0
- package/dist/internal/Log.js.map +1 -1
- package/dist/internal/OpenApi.d.ts +0 -19
- package/dist/internal/OpenApi.d.ts.map +1 -1
- package/dist/internal/OpenApi.js +0 -57
- package/dist/internal/OpenApi.js.map +1 -1
- package/dist/internal/RpcSchema.d.ts +10 -0
- package/dist/internal/RpcSchema.d.ts.map +1 -0
- package/dist/internal/RpcSchema.js +2 -0
- package/dist/internal/RpcSchema.js.map +1 -0
- package/dist/internal/Store.d.ts +49 -4
- package/dist/internal/Store.d.ts.map +1 -1
- package/dist/internal/Store.js +81 -5
- package/dist/internal/Store.js.map +1 -1
- package/dist/internal/VerifiedTokens.d.ts +15 -34
- package/dist/internal/VerifiedTokens.d.ts.map +1 -1
- package/dist/internal/VerifiedTokens.js +115 -159
- package/dist/internal/VerifiedTokens.js.map +1 -1
- package/dist/internal/Viem.d.ts +84 -0
- package/dist/internal/Viem.d.ts.map +1 -1
- package/dist/internal/Webhooks.d.ts +50 -36
- package/dist/internal/Webhooks.d.ts.map +1 -1
- package/dist/internal/Webhooks.js +92 -205
- package/dist/internal/Webhooks.js.map +1 -1
- package/package.json +37 -6
- package/src/ApiKey.test.ts +3 -3
- package/src/ApiKey.ts +11 -12
- package/src/ApiKeys.test.ts +278 -0
- package/src/ApiKeys.ts +358 -0
- package/src/App.test-d.ts +1 -1
- package/src/App.test.ts +40508 -19083
- package/src/App.ts +239 -416
- package/src/Client.test-d.ts +307 -16
- package/src/Handler.ts +154 -0
- package/src/Scope.ts +17 -4
- package/src/Webhooks.test.ts +8 -7
- package/src/Webhooks.ts +13 -7
- package/src/admin/Access.ts +1 -3
- package/src/admin/App.ts +19 -24
- package/src/admin/apps/api-keys.test.ts +70 -18
- package/src/admin/apps/api-keys.ts +92 -9
- package/src/admin/apps/scopes.test.ts +8 -0
- package/src/admin/apps/verified-tokens.test.ts +3 -30
- package/src/admin/apps/verified-tokens.ts +18 -37
- package/src/admin/ui.generated.ts +1 -1
- package/src/apps/composition.test.ts +66 -0
- package/src/apps/data/App.ts +295 -0
- package/src/apps/data/index.ts +2 -0
- package/src/apps/{activities.test.ts → data/routes/activities.test.ts} +3 -3
- package/src/apps/{activities.ts → data/routes/activities.ts} +15 -15
- package/src/apps/{addresses.ts → data/routes/addresses.ts} +6 -6
- package/src/apps/{balances.test.ts → data/routes/balances.test.ts} +6 -5
- package/src/apps/{balances.ts → data/routes/balances.ts} +46 -12
- package/src/apps/{blocks.test.ts → data/routes/blocks.test.ts} +4 -4
- package/src/apps/{blocks.ts → data/routes/blocks.ts} +14 -14
- package/src/apps/{coingecko.test.ts → data/routes/coingecko.test.ts} +2 -2
- package/src/apps/{coingecko.ts → data/routes/coingecko.ts} +14 -14
- package/src/apps/{exchanges.test.ts → data/routes/exchanges.test.ts} +2 -2
- package/src/apps/{exchanges.ts → data/routes/exchanges.ts} +20 -20
- package/src/apps/{fee-amm.test.ts → data/routes/fee-amm.test.ts} +3 -3
- package/src/apps/{fee-amm.ts → data/routes/fee-amm.ts} +18 -18
- package/src/apps/{indexer.test.ts → data/routes/indexer.test.ts} +27 -6
- package/src/apps/{indexer.ts → data/routes/indexer.ts} +13 -10
- package/src/apps/{receipts.test.ts → data/routes/receipts.test.ts} +4 -4
- package/src/apps/{receipts.ts → data/routes/receipts.ts} +13 -13
- package/src/apps/{rpc.test.ts → data/routes/rpc.test.ts} +142 -13
- package/src/apps/{rpc.ts → data/routes/rpc.ts} +7 -7
- package/src/apps/{tokenlist.test.ts → data/routes/tokenlist.test.ts} +8 -10
- package/src/apps/{tokenlist.ts → data/routes/tokenlist.ts} +9 -9
- package/src/apps/{tokens.test.ts → data/routes/tokens.test.ts} +6 -5
- package/src/apps/{tokens.ts → data/routes/tokens.ts} +20 -20
- package/src/apps/{transactions.test.ts → data/routes/transactions.test.ts} +4 -4
- package/src/apps/{transactions.ts → data/routes/transactions.ts} +15 -15
- package/src/apps/{transfers.test.ts → data/routes/transfers.test.ts} +3 -3
- package/src/apps/{transfers.ts → data/routes/transfers.ts} +15 -15
- package/src/apps/{verified-tokens.test.ts → data/routes/verified-tokens.test.ts} +27 -15
- package/src/apps/{verified-tokens.ts → data/routes/verified-tokens.ts} +10 -10
- package/src/apps/{webhooks.test.ts → data/routes/webhooks.test.ts} +137 -150
- package/src/apps/{webhooks.ts → data/routes/webhooks.ts} +83 -81
- package/src/apps/docs/App.ts +136 -0
- package/src/apps/docs/index.ts +1 -0
- package/src/apps/index.ts +3 -0
- package/src/apps/metadata.ts +23 -0
- package/src/apps/platform/App.ts +130 -0
- package/src/apps/platform/index.ts +1 -0
- package/src/apps/platform/routes/api-keys.test.ts +330 -0
- package/src/apps/platform/routes/api-keys.ts +427 -0
- package/src/apps/platform/routes/invitations.test.ts +361 -0
- package/src/apps/platform/routes/invitations.ts +519 -0
- package/src/apps/platform/routes/me.test.ts +121 -0
- package/src/apps/platform/routes/me.ts +106 -0
- package/src/apps/platform/routes/members.test.ts +195 -0
- package/src/apps/platform/routes/members.ts +313 -0
- package/src/apps/platform/routes/orgs.test.ts +313 -0
- package/src/apps/platform/routes/orgs.ts +343 -0
- package/src/apps/platform/routes/projects.test.ts +181 -0
- package/src/apps/platform/routes/projects.ts +367 -0
- package/src/apps/relay/App.test.ts +484 -0
- package/src/apps/relay/App.ts +128 -0
- package/src/apps/relay/Sponsorships.test.ts +375 -0
- package/src/apps/relay/Sponsorships.ts +305 -0
- package/src/apps/relay/index.ts +2 -0
- package/src/{Cli.test.ts → cli/Cli.test.ts} +10 -9
- package/src/{Cli.ts → cli/Cli.ts} +16 -9
- package/src/cli/bin.ts +4 -0
- package/src/cli/commands/admin.test.ts +71 -0
- package/src/cli/commands/admin.ts +60 -0
- package/src/cloudflare.ts +10 -0
- package/src/db/Db.test.ts +84 -0
- package/src/db/Db.ts +542 -0
- package/src/db/Schema.ts +301 -0
- package/src/db/tables/invitations.ts +198 -0
- package/src/db/tables/memberships.ts +208 -0
- package/src/db/tables/organizations.test.ts +160 -0
- package/src/db/tables/organizations.ts +232 -0
- package/src/db/tables/projects.ts +107 -0
- package/src/db/tables/sponsoredTransactions.test.ts +218 -0
- package/src/db/tables/sponsoredTransactions.ts +236 -0
- package/src/db/tables/users.ts +85 -0
- package/src/db/tables/verifiedTokens.ts +111 -0
- package/src/db/tables/webhookDeliveries.ts +159 -0
- package/src/db/tables/webhookSubscriptions.ts +358 -0
- package/src/handlers/internal/executionError.ts +207 -0
- package/src/handlers/internal/multisig.test.ts +818 -0
- package/src/handlers/internal/multisig.ts +823 -0
- package/src/handlers/internal/requestListener.ts +273 -0
- package/src/handlers/internal/sponsorship.ts +245 -0
- package/src/handlers/internal/types.ts +378 -0
- package/src/handlers/internal/utils.ts +153 -0
- package/src/handlers/relay.test.ts +2035 -0
- package/src/handlers/relay.ts +1623 -0
- package/src/index.ts +4 -2
- package/src/internal/Auth.test.ts +337 -21
- package/src/internal/Auth.ts +783 -44
- package/src/internal/Cursor.test.ts +3 -2
- package/src/internal/Log.test.ts +1 -1
- package/src/internal/Log.ts +11 -3
- package/src/internal/MetricSink.ts +1 -1
- package/src/internal/OpenApi.ts +0 -59
- package/src/internal/RateLimit.test.ts +1 -1
- package/src/internal/RpcSchema.ts +10 -0
- package/src/internal/Store.test.ts +150 -10
- package/src/internal/Store.ts +136 -11
- package/src/internal/Tidx.local.test.ts +1 -1
- package/src/internal/VerifiedTokens.test.ts +99 -115
- package/src/internal/VerifiedTokens.ts +123 -175
- package/src/internal/WebhookDestination.test.ts +1 -1
- package/src/internal/Webhooks.test.ts +111 -111
- package/src/internal/Webhooks.ts +103 -221
- package/dist/ApiKeySource.d.ts +0 -166
- package/dist/ApiKeySource.d.ts.map +0 -1
- package/dist/ApiKeySource.js +0 -234
- package/dist/ApiKeySource.js.map +0 -1
- package/dist/Cli.d.ts.map +0 -1
- package/dist/Cli.js +0 -13
- package/dist/Cli.js.map +0 -1
- package/dist/apps/activities.js.map +0 -1
- package/dist/apps/addresses.js.map +0 -1
- package/dist/apps/balances.d.ts.map +0 -1
- package/dist/apps/balances.js.map +0 -1
- package/dist/apps/blocks.d.ts.map +0 -1
- package/dist/apps/blocks.js.map +0 -1
- package/dist/apps/coingecko.d.ts.map +0 -1
- package/dist/apps/coingecko.js.map +0 -1
- package/dist/apps/exchanges.d.ts.map +0 -1
- package/dist/apps/exchanges.js.map +0 -1
- package/dist/apps/fee-amm.d.ts.map +0 -1
- package/dist/apps/fee-amm.js.map +0 -1
- package/dist/apps/indexer.d.ts.map +0 -1
- package/dist/apps/indexer.js.map +0 -1
- package/dist/apps/receipts.d.ts.map +0 -1
- package/dist/apps/receipts.js.map +0 -1
- package/dist/apps/rpc.d.ts.map +0 -1
- package/dist/apps/rpc.js.map +0 -1
- package/dist/apps/tokenlist.d.ts.map +0 -1
- package/dist/apps/tokenlist.js.map +0 -1
- package/dist/apps/tokens.d.ts.map +0 -1
- package/dist/apps/tokens.js.map +0 -1
- package/dist/apps/transactions.d.ts.map +0 -1
- package/dist/apps/transactions.js.map +0 -1
- package/dist/apps/transfers.d.ts.map +0 -1
- package/dist/apps/transfers.js.map +0 -1
- package/dist/apps/verified-tokens.d.ts.map +0 -1
- package/dist/apps/verified-tokens.js.map +0 -1
- package/dist/apps/webhooks.js.map +0 -1
- package/dist/internal/OpenApi.fonts.d.ts.map +0 -1
- package/dist/internal/OpenApi.fonts.js.map +0 -1
- package/dist/internal/OpenApi.logo.d.ts.map +0 -1
- package/dist/internal/OpenApi.logo.js.map +0 -1
- package/seeds/31318/icons/0x20c0000000000000000000000000000000000000.svg +0 -1
- package/seeds/31318/icons/0x20c0000000000000000000000000000000000001.svg +0 -1
- package/seeds/31318/icons/0x20c0000000000000000000000000000000000002.svg +0 -1
- package/seeds/31318/icons/0x20c0000000000000000000000000000000000003.svg +0 -1
- package/seeds/31318/verified-tokens.json +0 -30
- package/seeds/4217/icons/0x20c0000000000000000000000000000000000000.svg +0 -25
- package/seeds/4217/icons/0x20c000000000000000000000048c8f36df1c9a4a.svg +0 -1
- package/seeds/4217/icons/0x20c0000000000000000000000520792dcccccccc.svg +0 -1
- package/seeds/4217/icons/0x20c0000000000000000000000a6da882d075a4c3.svg +0 -4
- package/seeds/4217/icons/0x20c000000000000000000000111111111e910f0f.svg +0 -30
- package/seeds/4217/icons/0x20c00000000000000000000014f22ca97301eb73.svg +0 -1
- package/seeds/4217/icons/0x20c0000000000000000000001621e21f71cf12fb.svg +0 -1
- package/seeds/4217/icons/0x20c0000000000000000000002f52d5cc21a3207b.svg +0 -1
- package/seeds/4217/icons/0x20c0000000000000000000003158081efd85bfc2.svg +0 -11
- package/seeds/4217/icons/0x20c0000000000000000000003554d28269e0f3c2.svg +0 -1
- package/seeds/4217/icons/0x20c000000000000000000000383a23bacb546ab9.svg +0 -1
- package/seeds/4217/icons/0x20c00000000000000000000042109aef2f8b28e1.png +0 -0
- package/seeds/4217/icons/0x20c0000000000000000000005c0bac7cef389a11.svg +0 -1
- package/seeds/4217/icons/0x20c0000000000000000000006fd9a167923ba194.png +0 -0
- package/seeds/4217/icons/0x20c0000000000000000000007f7ba549dd0251b9.svg +0 -1
- package/seeds/4217/icons/0x20c0000000000000000000008191667423f70e67.svg +0 -5
- package/seeds/4217/icons/0x20c0000000000000000000008ee4fcff88888888.svg +0 -1
- package/seeds/4217/icons/0x20c0000000000000000000009a4a4b17e0dc6651.svg +0 -1
- package/seeds/4217/icons/0x20c000000000000000000000ab02d39df30bd17e.svg +0 -1
- package/seeds/4217/icons/0x20c000000000000000000000ae247a1130450f09.svg +0 -1
- package/seeds/4217/icons/0x20c000000000000000000000aeed2ec36a54d0e5.svg +0 -1
- package/seeds/4217/icons/0x20c000000000000000000000b9537d11c60e8b50.svg +0 -1
- package/seeds/4217/icons/0x20c000000000000000000000bd95bfb69fbe6ce3.svg +0 -1
- package/seeds/4217/icons/0x20c000000000000000000000c412ec89d0c08be5.svg +0 -1
- package/seeds/4217/icons/0x20c000000000000000000000f047dd7018e50367.png +0 -0
- package/seeds/4217/verified-tokens.json +0 -177
- package/seeds/42431/icons/0x20c0000000000000000000000000000000000000.svg +0 -25
- package/seeds/42431/icons/0x20c0000000000000000000000000000000000001.svg +0 -1
- package/seeds/42431/icons/0x20c0000000000000000000000000000000000002.svg +0 -1
- package/seeds/42431/icons/0x20c0000000000000000000000000000000000003.svg +0 -1
- package/seeds/42431/icons/0x20c0000000000000000000009e8d7eb59b783726.svg +0 -1
- package/seeds/42431/icons/0x20c000000000000000000000d72572838bbee59c.svg +0 -1
- package/seeds/42431/verified-tokens.json +0 -44
- package/seeds/openrpc/README.md +0 -27
- package/seeds/openrpc/execution-apis.json +0 -8989
- package/src/ApiKeySource.test-d.ts +0 -11
- package/src/ApiKeySource.test.ts +0 -295
- package/src/ApiKeySource.ts +0 -303
- /package/src/{internal/OpenApi.fonts.ts → apps/docs/fonts.ts} +0 -0
- /package/src/{internal/OpenApi.logo.ts → apps/docs/logo.ts} +0 -0
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import { sql } from 'kysely';
|
|
1
2
|
import { Hex } from 'ox';
|
|
2
3
|
import * as z from 'zod/mini';
|
|
4
|
+
import * as Db from '../db/Db.js';
|
|
5
|
+
import * as core_VerifiedTokens from '../db/tables/verifiedTokens.js';
|
|
3
6
|
import * as Schema from './Schema.js';
|
|
4
|
-
import * as Store from './Store.js';
|
|
5
7
|
import * as Timing from './Timing.js';
|
|
6
|
-
/** Schema for a chain's verified token list (
|
|
8
|
+
/** Schema for a chain's verified token list (validated at the write boundary). */
|
|
7
9
|
export const Data = z
|
|
8
10
|
.array(z
|
|
9
11
|
.object({
|
|
@@ -26,7 +28,8 @@ export function compile(options) {
|
|
|
26
28
|
const { chainId, tokens, updatedAt, version } = options;
|
|
27
29
|
// Backfill the derived `id` (lowercased address) without re-parsing through
|
|
28
30
|
// `Data`/`Schema.Address`, which would lowercase the stored `address` and
|
|
29
|
-
// drop its curated checksum casing.
|
|
31
|
+
// drop its curated checksum casing. Validation happens at the write boundary
|
|
32
|
+
// (`normalize`); reads trust the typed columns.
|
|
30
33
|
const list = tokens.map((token) => ({
|
|
31
34
|
...token,
|
|
32
35
|
id: token.id ?? token.address.toLowerCase(),
|
|
@@ -55,81 +58,26 @@ export function compile(options) {
|
|
|
55
58
|
version,
|
|
56
59
|
};
|
|
57
60
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
const keyPrefix = 'verified-token:v1';
|
|
62
|
-
// Storage schema version stamped on every head/blob, so a future on-disk format
|
|
63
|
-
// change can be detected and migrated.
|
|
64
|
-
const storeSchema = 1;
|
|
65
|
-
/** Store key for a chain's head pointer (current version + metadata). */
|
|
66
|
-
function headKey(chainId) {
|
|
67
|
-
return `${keyPrefix}:${chainId}:head`;
|
|
68
|
-
}
|
|
69
|
-
/** Store key for a chain's immutable snapshot blob at a given version. */
|
|
70
|
-
function snapshotKey(chainId, version) {
|
|
71
|
-
return `${keyPrefix}:${chainId}:snapshot:${version}`;
|
|
72
|
-
}
|
|
73
|
-
// Head pointer: tiny, read once per soft-TTL window to detect version changes
|
|
74
|
-
// without fetching the (much larger) token blob.
|
|
75
|
-
const Head = z
|
|
76
|
-
.object({
|
|
77
|
-
chainId: z.number().check(z.int(), z.describe('Chain the head belongs to.')),
|
|
78
|
-
count: z.number().check(z.int(), z.nonnegative(), z.describe('Token count at this version.')),
|
|
79
|
-
schema: z.number().check(z.int(), z.describe('Storage schema version.')),
|
|
80
|
-
updatedAt: z.string().check(z.describe('ISO timestamp of the last publish.')),
|
|
81
|
-
version: z.string().check(z.describe('Current snapshot version.')),
|
|
82
|
-
})
|
|
83
|
-
.check(z.describe('Verified-token head pointer stored under the head key.'));
|
|
84
|
-
// Immutable per-version blob holding the validated token list.
|
|
85
|
-
const Blob = z
|
|
86
|
-
.object({
|
|
87
|
-
chainId: z.number().check(z.int(), z.describe('Chain the blob belongs to.')),
|
|
88
|
-
schema: z.number().check(z.int(), z.describe('Storage schema version.')),
|
|
89
|
-
tokens: Data,
|
|
90
|
-
updatedAt: z.string().check(z.describe('ISO timestamp of the last publish.')),
|
|
91
|
-
version: z.string().check(z.describe('Snapshot version this blob holds.')),
|
|
92
|
-
})
|
|
93
|
-
.check(z.describe('Verified-token snapshot blob stored under a versioned key.'));
|
|
94
|
-
/** Reads a chain's head pointer, or `null` when the chain has no head yet. */
|
|
95
|
-
async function readHead(store, chainId) {
|
|
96
|
-
const raw = await store.get(headKey(chainId));
|
|
97
|
-
if (!raw)
|
|
98
|
-
return null;
|
|
99
|
-
return Head.parse(JSON.parse(raw));
|
|
61
|
+
/** Reads a chain's list metadata, or `null` when it has no list yet. */
|
|
62
|
+
async function readHead(db, chainId) {
|
|
63
|
+
return (await core_VerifiedTokens.head(db, chainId)) ?? null;
|
|
100
64
|
}
|
|
101
65
|
/**
|
|
102
|
-
* Reads and compiles a chain's
|
|
103
|
-
*
|
|
104
|
-
* never happen given the write-blob-before-flip-head ordering).
|
|
66
|
+
* Reads and compiles a chain's current verified list. Returns `null` when the
|
|
67
|
+
* chain has none.
|
|
105
68
|
*/
|
|
106
|
-
async function
|
|
107
|
-
const
|
|
108
|
-
if (!
|
|
109
|
-
|
|
110
|
-
const
|
|
111
|
-
const blob = Blob.parse({
|
|
112
|
-
...parsed,
|
|
113
|
-
tokens: Array.isArray(parsed.tokens) ? withIds(parsed.tokens) : parsed.tokens,
|
|
114
|
-
});
|
|
69
|
+
export async function read(db, chainId) {
|
|
70
|
+
const head = await readHead(db, chainId);
|
|
71
|
+
if (!head)
|
|
72
|
+
return null;
|
|
73
|
+
const rows = await core_VerifiedTokens.list(db, chainId);
|
|
115
74
|
return compile({
|
|
116
75
|
chainId,
|
|
117
|
-
tokens:
|
|
118
|
-
updatedAt:
|
|
119
|
-
version:
|
|
76
|
+
tokens: rows.map(core_VerifiedTokens.toToken),
|
|
77
|
+
updatedAt: head.updatedAt,
|
|
78
|
+
version: head.version,
|
|
120
79
|
});
|
|
121
80
|
}
|
|
122
|
-
/**
|
|
123
|
-
* Reads and compiles the snapshot a chain's head points at. Returns `null` when
|
|
124
|
-
* the chain has no head. Throws {@link TornStateError} when `head` references a
|
|
125
|
-
* missing snapshot blob.
|
|
126
|
-
*/
|
|
127
|
-
export async function read(store, chainId) {
|
|
128
|
-
const head = await readHead(store, chainId);
|
|
129
|
-
if (!head)
|
|
130
|
-
return null;
|
|
131
|
-
return readBlob(store, chainId, head.version);
|
|
132
|
-
}
|
|
133
81
|
// Tracks the last epoch-ms used by `nextVersion` so versions stay strictly
|
|
134
82
|
// monotonic even when multiple writes land in the same millisecond.
|
|
135
83
|
let lastVersionMs = 0;
|
|
@@ -179,31 +127,42 @@ function withIds(tokens) {
|
|
|
179
127
|
// Returns the current authoritative list for a chain to read-modify-write
|
|
180
128
|
// against: the durable snapshot, or an empty list when the chain has no head yet
|
|
181
129
|
// (the first write starts the chain's list from scratch).
|
|
182
|
-
async function currentList(
|
|
183
|
-
return (await read(
|
|
130
|
+
async function currentList(db, chainId) {
|
|
131
|
+
return (await read(db, chainId))?.list ?? [];
|
|
184
132
|
}
|
|
185
|
-
//
|
|
186
|
-
//
|
|
187
|
-
//
|
|
188
|
-
|
|
189
|
-
async function assertVersion(store, chainId, ifMatch) {
|
|
133
|
+
// Optimistic concurrency: when `ifMatch` is set, the caller's expected version
|
|
134
|
+
// must equal the current head version. Runs inside the publish lock, so —
|
|
135
|
+
// unlike the old best-effort KV check — the compare-and-set actually holds.
|
|
136
|
+
async function assertVersion(db, chainId, ifMatch) {
|
|
190
137
|
if (ifMatch === undefined)
|
|
191
138
|
return;
|
|
192
|
-
const head = await readHead(
|
|
139
|
+
const head = await readHead(db, chainId);
|
|
193
140
|
const actual = head?.version ?? emptyVersion;
|
|
194
141
|
if (actual !== ifMatch)
|
|
195
142
|
throw new VersionMismatchError({ actual, chainId, expected: ifMatch });
|
|
196
143
|
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
144
|
+
/**
|
|
145
|
+
* Fixed first key for the per-chain publish advisory lock (the ASCII bytes of
|
|
146
|
+
* `"vtok"`); the chain id is the second key.
|
|
147
|
+
*/
|
|
148
|
+
const publishLockKey = 0x76746f6b;
|
|
149
|
+
// Runs a write's read-modify-publish inside one transaction holding a
|
|
150
|
+
// per-chain advisory lock, serializing concurrent writers so `assertVersion`
|
|
151
|
+
// and the read-modify-write can't interleave (the lock releases on commit).
|
|
152
|
+
async function withPublishLock(db, chainId, fn) {
|
|
153
|
+
return db.transaction(async (tx) => {
|
|
154
|
+
await sql `SELECT pg_advisory_xact_lock(${publishLockKey}, ${chainId})`.execute(tx.kysely);
|
|
155
|
+
return fn(tx);
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
// Validate-replace-prime: validate the whole list, replace the chain's rows
|
|
159
|
+
// and bump its list version (atomic inside the publish lock's transaction),
|
|
160
|
+
// then prime this isolate for read-your-write.
|
|
161
|
+
async function publish(db, chainId, tokens) {
|
|
202
162
|
const list = normalize(chainId, tokens);
|
|
203
163
|
const version = nextVersion();
|
|
204
164
|
const updatedAt = new Date().toISOString();
|
|
205
|
-
await
|
|
206
|
-
await store.put(headKey(chainId), JSON.stringify({ chainId, count: list.length, schema: storeSchema, updatedAt, version }));
|
|
165
|
+
await core_VerifiedTokens.publish(db, chainId, { tokens: list, updatedAt, version });
|
|
207
166
|
const snapshot = compile({ chainId, tokens: list, updatedAt, version });
|
|
208
167
|
prime(chainId, snapshot);
|
|
209
168
|
return snapshot;
|
|
@@ -212,72 +171,80 @@ async function publish(store, chainId, tokens) {
|
|
|
212
171
|
* Appends a verified token to a chain's list and publishes a new snapshot.
|
|
213
172
|
* Throws on a duplicate address or (case-insensitive) symbol.
|
|
214
173
|
*/
|
|
215
|
-
export async function create(
|
|
174
|
+
export async function create(db, input) {
|
|
216
175
|
const { chainId, currency, decimals, logoUri, name, symbol } = input;
|
|
217
176
|
const address = input.address.toLowerCase();
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
177
|
+
return withPublishLock(db, chainId, async (tx) => {
|
|
178
|
+
const list = await currentList(tx, chainId);
|
|
179
|
+
const token = {
|
|
180
|
+
address,
|
|
181
|
+
currency,
|
|
182
|
+
decimals,
|
|
183
|
+
id: address,
|
|
184
|
+
name,
|
|
185
|
+
symbol,
|
|
186
|
+
...(logoUri === undefined ? {} : { logoUri }),
|
|
187
|
+
};
|
|
188
|
+
const snapshot = await publish(tx, chainId, [...list, token]);
|
|
189
|
+
return { snapshot, token: snapshot.byAddress.get(address) };
|
|
190
|
+
});
|
|
230
191
|
}
|
|
231
192
|
/**
|
|
232
193
|
* Partially updates a verified token in place (preserving list order) and
|
|
233
194
|
* publishes a new snapshot. Throws {@link NotFoundError} when the address is
|
|
234
195
|
* absent, and the uniqueness errors when an edit collides with another entry.
|
|
235
196
|
*/
|
|
236
|
-
export async function patch(
|
|
237
|
-
await assertVersion(store, chainId, options.ifMatch);
|
|
197
|
+
export async function patch(db, chainId, address, input, options = {}) {
|
|
238
198
|
const target = address.toLowerCase();
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
199
|
+
return withPublishLock(db, chainId, async (tx) => {
|
|
200
|
+
await assertVersion(tx, chainId, options.ifMatch);
|
|
201
|
+
const list = await currentList(tx, chainId);
|
|
202
|
+
const index = list.findIndex((token) => token.address.toLowerCase() === target);
|
|
203
|
+
if (index === -1)
|
|
204
|
+
throw new NotFoundError({ address: target, chainId });
|
|
205
|
+
// Edit in place, overriding only the fields the patch supplies.
|
|
206
|
+
const next = list.map((token, i) => {
|
|
207
|
+
if (i !== index)
|
|
208
|
+
return token;
|
|
209
|
+
const logoUri = input.logoUri ?? token.logoUri;
|
|
210
|
+
return {
|
|
211
|
+
address: target,
|
|
212
|
+
currency: input.currency ?? token.currency,
|
|
213
|
+
decimals: input.decimals ?? token.decimals,
|
|
214
|
+
id: target,
|
|
215
|
+
name: input.name ?? token.name,
|
|
216
|
+
symbol: input.symbol ?? token.symbol,
|
|
217
|
+
...(logoUri === undefined ? {} : { logoUri }),
|
|
218
|
+
};
|
|
219
|
+
});
|
|
220
|
+
const snapshot = await publish(tx, chainId, next);
|
|
221
|
+
return { snapshot, token: snapshot.byAddress.get(target) };
|
|
257
222
|
});
|
|
258
|
-
const snapshot = await publish(store, chainId, next);
|
|
259
|
-
return { snapshot, token: snapshot.byAddress.get(target) };
|
|
260
223
|
}
|
|
261
224
|
/**
|
|
262
225
|
* Removes a verified token from a chain's list and publishes a new snapshot.
|
|
263
226
|
* Throws {@link NotFoundError} when the address is absent.
|
|
264
227
|
*/
|
|
265
|
-
export async function remove(
|
|
266
|
-
await assertVersion(store, chainId, options.ifMatch);
|
|
228
|
+
export async function remove(db, chainId, address, options = {}) {
|
|
267
229
|
const target = address.toLowerCase();
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
230
|
+
return withPublishLock(db, chainId, async (tx) => {
|
|
231
|
+
await assertVersion(tx, chainId, options.ifMatch);
|
|
232
|
+
const list = await currentList(tx, chainId);
|
|
233
|
+
const next = list.filter((token) => token.address.toLowerCase() !== target);
|
|
234
|
+
if (next.length === list.length)
|
|
235
|
+
throw new NotFoundError({ address: target, chainId });
|
|
236
|
+
return { snapshot: await publish(tx, chainId, next) };
|
|
237
|
+
});
|
|
273
238
|
}
|
|
274
239
|
/**
|
|
275
240
|
* Replaces a chain's entire verified list and publishes a new snapshot. Used to
|
|
276
241
|
* bulk-load the initial list and to roll back to a previous one.
|
|
277
242
|
*/
|
|
278
|
-
export async function replace(
|
|
279
|
-
|
|
280
|
-
|
|
243
|
+
export async function replace(db, chainId, tokens, options = {}) {
|
|
244
|
+
return withPublishLock(db, chainId, async (tx) => {
|
|
245
|
+
await assertVersion(tx, chainId, options.ifMatch);
|
|
246
|
+
return { snapshot: await publish(tx, chainId, tokens) };
|
|
247
|
+
});
|
|
281
248
|
}
|
|
282
249
|
// Sentinel version/time for the empty snapshot served before a chain has any
|
|
283
250
|
// durable head (KV is the single source of truth; nothing is verified until it
|
|
@@ -317,13 +284,13 @@ export function prime(chainId, snapshot) {
|
|
|
317
284
|
}
|
|
318
285
|
// Single-flight wrapper around `refreshCell`: concurrent stale/cold reads for a
|
|
319
286
|
// chain share one in-flight refresh.
|
|
320
|
-
function refresh(c,
|
|
287
|
+
function refresh(c, db, chainId, cell) {
|
|
321
288
|
const existing = refreshes.get(chainId);
|
|
322
289
|
if (existing)
|
|
323
290
|
return existing;
|
|
324
291
|
const flight = (async () => {
|
|
325
292
|
try {
|
|
326
|
-
return await refreshCell(c,
|
|
293
|
+
return await refreshCell(c, db, chainId, cell);
|
|
327
294
|
}
|
|
328
295
|
finally {
|
|
329
296
|
refreshes.delete(chainId);
|
|
@@ -335,12 +302,12 @@ function refresh(c, store, chainId, cell) {
|
|
|
335
302
|
// Refresh state machine. Soft-stale reads only the head and recompiles
|
|
336
303
|
// solely on a version change; cold loads the full snapshot (an empty snapshot
|
|
337
304
|
// when the chain has no head yet).
|
|
338
|
-
async function refreshCell(c,
|
|
339
|
-
// Cold: no prior snapshot. Load from
|
|
340
|
-
// chain has no head. A hard failure here propagates (we have nothing good
|
|
341
|
-
// serve, and must not resurrect deleted tokens).
|
|
305
|
+
async function refreshCell(c, db, chainId, cell) {
|
|
306
|
+
// Cold: no prior snapshot. Load from the database, or an empty snapshot when
|
|
307
|
+
// the chain has no head. A hard failure here propagates (we have nothing good
|
|
308
|
+
// to serve, and must not resurrect deleted tokens).
|
|
342
309
|
if (!cell) {
|
|
343
|
-
const loaded = await Timing.time(c, 'verified_snapshot', () => read(
|
|
310
|
+
const loaded = await Timing.time(c, 'verified_snapshot', () => read(db, chainId));
|
|
344
311
|
const snapshot = loaded ?? emptySnapshot(chainId);
|
|
345
312
|
cells.set(chainId, { checkedAt: Date.now(), snapshot });
|
|
346
313
|
return snapshot;
|
|
@@ -348,14 +315,14 @@ async function refreshCell(c, store, chainId, cell) {
|
|
|
348
315
|
// Soft-stale: serve the last good in-memory snapshot and log loudly on
|
|
349
316
|
// failure rather than dropping to empty (no resurrection of deleted tokens).
|
|
350
317
|
try {
|
|
351
|
-
const head = await Timing.time(c, 'verified_head', () => readHead(
|
|
318
|
+
const head = await Timing.time(c, 'verified_head', () => readHead(db, chainId));
|
|
352
319
|
// Unchanged version (or head not yet present): keep snapshot, bump checkedAt.
|
|
353
320
|
if (!head || head.version === cell.snapshot.version) {
|
|
354
321
|
cells.set(chainId, { checkedAt: Date.now(), snapshot: cell.snapshot });
|
|
355
322
|
return cell.snapshot;
|
|
356
323
|
}
|
|
357
|
-
// Version changed:
|
|
358
|
-
const snapshot = await Timing.time(c, 'verified_snapshot', () =>
|
|
324
|
+
// Version changed: reload the current list (kept on a racing delete).
|
|
325
|
+
const snapshot = (await Timing.time(c, 'verified_snapshot', () => read(db, chainId))) ?? cell.snapshot;
|
|
359
326
|
cells.set(chainId, { checkedAt: Date.now(), snapshot });
|
|
360
327
|
return snapshot;
|
|
361
328
|
}
|
|
@@ -369,30 +336,30 @@ async function refreshCell(c, store, chainId, cell) {
|
|
|
369
336
|
* Returns the compiled verified-token {@link Snapshot} for a chain.
|
|
370
337
|
*
|
|
371
338
|
* When the verified-tokens feature is unconfigured, serves an empty snapshot.
|
|
372
|
-
* When configured
|
|
373
|
-
* refreshed on a soft TTL: fresh lookups do zero
|
|
339
|
+
* When configured, serves a per-isolate snapshot backed by the app database,
|
|
340
|
+
* refreshed on a soft TTL: fresh lookups do zero database I/O; soft-stale
|
|
374
341
|
* lookups return the current snapshot immediately and refresh in the background
|
|
375
342
|
* (single-flight, head-only unless the version changed); a cold isolate loads
|
|
376
|
-
* from the
|
|
343
|
+
* from the database (an empty snapshot when no head exists).
|
|
377
344
|
*/
|
|
378
345
|
export async function snapshot(c, chainId) {
|
|
379
346
|
return Timing.time(c, 'verified_tokens', () => {
|
|
380
347
|
const config = c.get('verifiedTokens');
|
|
381
|
-
// Unconfigured: nothing is verified. No
|
|
348
|
+
// Unconfigured: nothing is verified. No reads, no cell.
|
|
382
349
|
if (!config)
|
|
383
350
|
return emptySnapshot(chainId);
|
|
384
351
|
const refreshMs = config.refreshMs ?? defaultRefreshMs;
|
|
385
352
|
const cell = cells.get(chainId);
|
|
386
|
-
// Fresh: serve the in-memory snapshot with zero
|
|
353
|
+
// Fresh: serve the in-memory snapshot with zero database I/O.
|
|
387
354
|
if (cell && Date.now() - cell.checkedAt < refreshMs)
|
|
388
355
|
return cell.snapshot;
|
|
389
356
|
// Soft-stale: serve immediately, refresh in the background. Never blocks.
|
|
390
357
|
if (cell) {
|
|
391
|
-
void refresh(c,
|
|
358
|
+
void refresh(c, Db.get(c.get('dbCached')), chainId, cell);
|
|
392
359
|
return cell.snapshot;
|
|
393
360
|
}
|
|
394
361
|
// Cold: must load before the first response.
|
|
395
|
-
return refresh(c,
|
|
362
|
+
return refresh(c, Db.get(c.get('dbCached')), chainId, undefined);
|
|
396
363
|
});
|
|
397
364
|
}
|
|
398
365
|
/**
|
|
@@ -402,17 +369,6 @@ export async function snapshot(c, chainId) {
|
|
|
402
369
|
* authoritative set is `Snapshot.currencies` from the live store.
|
|
403
370
|
*/
|
|
404
371
|
export const currencies = ['EUR', 'USD'];
|
|
405
|
-
/**
|
|
406
|
-
* Thrown when a chain's `head` points at a snapshot version whose blob is
|
|
407
|
-
* missing from the store. The write path always writes the blob before flipping
|
|
408
|
-
* the head, so this indicates a torn write or external tampering.
|
|
409
|
-
*/
|
|
410
|
-
export class TornStateError extends Error {
|
|
411
|
-
name = 'VerifiedTokens.TornStateError';
|
|
412
|
-
constructor(options) {
|
|
413
|
-
super(`verified-token head for chain ${options.chainId} points at missing snapshot version "${options.version}".`);
|
|
414
|
-
}
|
|
415
|
-
}
|
|
416
372
|
/** Thrown when a write would introduce a duplicate address on a chain. */
|
|
417
373
|
export class DuplicateAddressError extends Error {
|
|
418
374
|
name = 'VerifiedTokens.DuplicateAddressError';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VerifiedTokens.js","sourceRoot":"","sources":["../../src/internal/VerifiedTokens.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VerifiedTokens.js","sourceRoot":"","sources":["../../src/internal/VerifiedTokens.ts"],"names":[],"mappings":"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"}
|