@mikeatlast/ponder 0.16.1-fork.1
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/CHANGELOG.md +3415 -0
- package/README.md +186 -0
- package/dist/esm/bin/commands/codegen.js +46 -0
- package/dist/esm/bin/commands/codegen.js.map +1 -0
- package/dist/esm/bin/commands/createViews.js +196 -0
- package/dist/esm/bin/commands/createViews.js.map +1 -0
- package/dist/esm/bin/commands/dev.js +430 -0
- package/dist/esm/bin/commands/dev.js.map +1 -0
- package/dist/esm/bin/commands/list.js +148 -0
- package/dist/esm/bin/commands/list.js.map +1 -0
- package/dist/esm/bin/commands/prune.js +223 -0
- package/dist/esm/bin/commands/prune.js.map +1 -0
- package/dist/esm/bin/commands/serve.js +198 -0
- package/dist/esm/bin/commands/serve.js.map +1 -0
- package/dist/esm/bin/commands/start.js +253 -0
- package/dist/esm/bin/commands/start.js.map +1 -0
- package/dist/esm/bin/isolatedController.js +200 -0
- package/dist/esm/bin/isolatedController.js.map +1 -0
- package/dist/esm/bin/isolatedWorker.js +146 -0
- package/dist/esm/bin/isolatedWorker.js.map +1 -0
- package/dist/esm/bin/ponder.js +137 -0
- package/dist/esm/bin/ponder.js.map +1 -0
- package/dist/esm/bin/utils/codegen.js +25 -0
- package/dist/esm/bin/utils/codegen.js.map +1 -0
- package/dist/esm/bin/utils/exit.js +100 -0
- package/dist/esm/bin/utils/exit.js.map +1 -0
- package/dist/esm/build/config.js +745 -0
- package/dist/esm/build/config.js.map +1 -0
- package/dist/esm/build/factory.js +82 -0
- package/dist/esm/build/factory.js.map +1 -0
- package/dist/esm/build/index.js +567 -0
- package/dist/esm/build/index.js.map +1 -0
- package/dist/esm/build/plugin.js +53 -0
- package/dist/esm/build/plugin.js.map +1 -0
- package/dist/esm/build/pre.js +83 -0
- package/dist/esm/build/pre.js.map +1 -0
- package/dist/esm/build/schema.js +202 -0
- package/dist/esm/build/schema.js.map +1 -0
- package/dist/esm/build/stacktrace.js +137 -0
- package/dist/esm/build/stacktrace.js.map +1 -0
- package/dist/esm/client/index.js +441 -0
- package/dist/esm/client/index.js.map +1 -0
- package/dist/esm/config/address.js +2 -0
- package/dist/esm/config/address.js.map +1 -0
- package/dist/esm/config/eventFilter.js +2 -0
- package/dist/esm/config/eventFilter.js.map +1 -0
- package/dist/esm/config/index.js +2 -0
- package/dist/esm/config/index.js.map +1 -0
- package/dist/esm/config/utilityTypes.js +2 -0
- package/dist/esm/config/utilityTypes.js.map +1 -0
- package/dist/esm/database/actions.js +445 -0
- package/dist/esm/database/actions.js.map +1 -0
- package/dist/esm/database/index.js +604 -0
- package/dist/esm/database/index.js.map +1 -0
- package/dist/esm/database/queryBuilder.js +314 -0
- package/dist/esm/database/queryBuilder.js.map +1 -0
- package/dist/esm/drizzle/bigint.js +38 -0
- package/dist/esm/drizzle/bigint.js.map +1 -0
- package/dist/esm/drizzle/bytes.js +47 -0
- package/dist/esm/drizzle/bytes.js.map +1 -0
- package/dist/esm/drizzle/hex.js +40 -0
- package/dist/esm/drizzle/hex.js.map +1 -0
- package/dist/esm/drizzle/index.js +28 -0
- package/dist/esm/drizzle/index.js.map +1 -0
- package/dist/esm/drizzle/json.js +123 -0
- package/dist/esm/drizzle/json.js.map +1 -0
- package/dist/esm/drizzle/kit/index.js +927 -0
- package/dist/esm/drizzle/kit/index.js.map +1 -0
- package/dist/esm/drizzle/onchain.js +184 -0
- package/dist/esm/drizzle/onchain.js.map +1 -0
- package/dist/esm/drizzle/text.js +61 -0
- package/dist/esm/drizzle/text.js.map +1 -0
- package/dist/esm/graphql/graphiql.html.js +59 -0
- package/dist/esm/graphql/graphiql.html.js.map +1 -0
- package/dist/esm/graphql/index.js +934 -0
- package/dist/esm/graphql/index.js.map +1 -0
- package/dist/esm/graphql/json.js +42 -0
- package/dist/esm/graphql/json.js.map +1 -0
- package/dist/esm/graphql/middleware.js +83 -0
- package/dist/esm/graphql/middleware.js.map +1 -0
- package/dist/esm/index.js +9 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/indexing/addStackTrace.js +54 -0
- package/dist/esm/indexing/addStackTrace.js.map +1 -0
- package/dist/esm/indexing/client.js +675 -0
- package/dist/esm/indexing/client.js.map +1 -0
- package/dist/esm/indexing/index.js +663 -0
- package/dist/esm/indexing/index.js.map +1 -0
- package/dist/esm/indexing/profile.js +584 -0
- package/dist/esm/indexing/profile.js.map +1 -0
- package/dist/esm/indexing-store/cache.js +666 -0
- package/dist/esm/indexing-store/cache.js.map +1 -0
- package/dist/esm/indexing-store/index.js +461 -0
- package/dist/esm/indexing-store/index.js.map +1 -0
- package/dist/esm/indexing-store/profile.js +428 -0
- package/dist/esm/indexing-store/profile.js.map +1 -0
- package/dist/esm/indexing-store/utils.js +111 -0
- package/dist/esm/indexing-store/utils.js.map +1 -0
- package/dist/esm/internal/common.js +2 -0
- package/dist/esm/internal/common.js.map +1 -0
- package/dist/esm/internal/errors.js +300 -0
- package/dist/esm/internal/errors.js.map +1 -0
- package/dist/esm/internal/logger.js +178 -0
- package/dist/esm/internal/logger.js.map +1 -0
- package/dist/esm/internal/metrics.js +1049 -0
- package/dist/esm/internal/metrics.js.map +1 -0
- package/dist/esm/internal/options.js +73 -0
- package/dist/esm/internal/options.js.map +1 -0
- package/dist/esm/internal/shutdown.js +24 -0
- package/dist/esm/internal/shutdown.js.map +1 -0
- package/dist/esm/internal/telemetry.js +200 -0
- package/dist/esm/internal/telemetry.js.map +1 -0
- package/dist/esm/internal/types.js +2 -0
- package/dist/esm/internal/types.js.map +1 -0
- package/dist/esm/rpc/actions.js +988 -0
- package/dist/esm/rpc/actions.js.map +1 -0
- package/dist/esm/rpc/http.js +130 -0
- package/dist/esm/rpc/http.js.map +1 -0
- package/dist/esm/rpc/index.js +749 -0
- package/dist/esm/rpc/index.js.map +1 -0
- package/dist/esm/runtime/events.js +664 -0
- package/dist/esm/runtime/events.js.map +1 -0
- package/dist/esm/runtime/filter.js +476 -0
- package/dist/esm/runtime/filter.js.map +1 -0
- package/dist/esm/runtime/fragments.js +478 -0
- package/dist/esm/runtime/fragments.js.map +1 -0
- package/dist/esm/runtime/historical.js +954 -0
- package/dist/esm/runtime/historical.js.map +1 -0
- package/dist/esm/runtime/index.js +316 -0
- package/dist/esm/runtime/index.js.map +1 -0
- package/dist/esm/runtime/init.js +12 -0
- package/dist/esm/runtime/init.js.map +1 -0
- package/dist/esm/runtime/isolated.js +464 -0
- package/dist/esm/runtime/isolated.js.map +1 -0
- package/dist/esm/runtime/multichain.js +511 -0
- package/dist/esm/runtime/multichain.js.map +1 -0
- package/dist/esm/runtime/omnichain.js +546 -0
- package/dist/esm/runtime/omnichain.js.map +1 -0
- package/dist/esm/runtime/realtime.js +722 -0
- package/dist/esm/runtime/realtime.js.map +1 -0
- package/dist/esm/server/error.js +56 -0
- package/dist/esm/server/error.js.map +1 -0
- package/dist/esm/server/index.js +121 -0
- package/dist/esm/server/index.js.map +1 -0
- package/dist/esm/sync-historical/index.js +703 -0
- package/dist/esm/sync-historical/index.js.map +1 -0
- package/dist/esm/sync-realtime/bloom.js +76 -0
- package/dist/esm/sync-realtime/bloom.js.map +1 -0
- package/dist/esm/sync-realtime/index.js +918 -0
- package/dist/esm/sync-realtime/index.js.map +1 -0
- package/dist/esm/sync-store/encode.js +105 -0
- package/dist/esm/sync-store/encode.js.map +1 -0
- package/dist/esm/sync-store/index.js +885 -0
- package/dist/esm/sync-store/index.js.map +1 -0
- package/dist/esm/sync-store/migrations.js +1595 -0
- package/dist/esm/sync-store/migrations.js.map +1 -0
- package/dist/esm/sync-store/schema.js +181 -0
- package/dist/esm/sync-store/schema.js.map +1 -0
- package/dist/esm/types/db.js +2 -0
- package/dist/esm/types/db.js.map +1 -0
- package/dist/esm/types/eth.js +2 -0
- package/dist/esm/types/eth.js.map +1 -0
- package/dist/esm/types/utils.js +2 -0
- package/dist/esm/types/utils.js.map +1 -0
- package/dist/esm/types/virtual.js +2 -0
- package/dist/esm/types/virtual.js.map +1 -0
- package/dist/esm/ui/app.js +157 -0
- package/dist/esm/ui/app.js.map +1 -0
- package/dist/esm/ui/index.js +29 -0
- package/dist/esm/ui/index.js.map +1 -0
- package/dist/esm/ui/patch.js +140 -0
- package/dist/esm/ui/patch.js.map +1 -0
- package/dist/esm/utils/abi.js +55 -0
- package/dist/esm/utils/abi.js.map +1 -0
- package/dist/esm/utils/bigint.js +37 -0
- package/dist/esm/utils/bigint.js.map +1 -0
- package/dist/esm/utils/chains.js +21 -0
- package/dist/esm/utils/chains.js.map +1 -0
- package/dist/esm/utils/checkpoint.js +139 -0
- package/dist/esm/utils/checkpoint.js.map +1 -0
- package/dist/esm/utils/chunk.js +8 -0
- package/dist/esm/utils/chunk.js.map +1 -0
- package/dist/esm/utils/copy.js +129 -0
- package/dist/esm/utils/copy.js.map +1 -0
- package/dist/esm/utils/date.js +27 -0
- package/dist/esm/utils/date.js.map +1 -0
- package/dist/esm/utils/debug.js +2 -0
- package/dist/esm/utils/debug.js.map +1 -0
- package/dist/esm/utils/decodeAbiParameters.js +290 -0
- package/dist/esm/utils/decodeAbiParameters.js.map +1 -0
- package/dist/esm/utils/decodeEventLog.js +75 -0
- package/dist/esm/utils/decodeEventLog.js.map +1 -0
- package/dist/esm/utils/dedupe.js +29 -0
- package/dist/esm/utils/dedupe.js.map +1 -0
- package/dist/esm/utils/duplicates.js +19 -0
- package/dist/esm/utils/duplicates.js.map +1 -0
- package/dist/esm/utils/estimate.js +6 -0
- package/dist/esm/utils/estimate.js.map +1 -0
- package/dist/esm/utils/finality.js +38 -0
- package/dist/esm/utils/finality.js.map +1 -0
- package/dist/esm/utils/format.js +20 -0
- package/dist/esm/utils/format.js.map +1 -0
- package/dist/esm/utils/generators.js +121 -0
- package/dist/esm/utils/generators.js.map +1 -0
- package/dist/esm/utils/hash.js +11 -0
- package/dist/esm/utils/hash.js.map +1 -0
- package/dist/esm/utils/interval.js +171 -0
- package/dist/esm/utils/interval.js.map +1 -0
- package/dist/esm/utils/lowercase.js +7 -0
- package/dist/esm/utils/lowercase.js.map +1 -0
- package/dist/esm/utils/mutex.js +26 -0
- package/dist/esm/utils/mutex.js.map +1 -0
- package/dist/esm/utils/never.js +4 -0
- package/dist/esm/utils/never.js.map +1 -0
- package/dist/esm/utils/offset.js +101 -0
- package/dist/esm/utils/offset.js.map +1 -0
- package/dist/esm/utils/order.js +18 -0
- package/dist/esm/utils/order.js.map +1 -0
- package/dist/esm/utils/partition.js +46 -0
- package/dist/esm/utils/partition.js.map +1 -0
- package/dist/esm/utils/pg.js +175 -0
- package/dist/esm/utils/pg.js.map +1 -0
- package/dist/esm/utils/pglite.js +80 -0
- package/dist/esm/utils/pglite.js.map +1 -0
- package/dist/esm/utils/port.js +30 -0
- package/dist/esm/utils/port.js.map +1 -0
- package/dist/esm/utils/print.js +23 -0
- package/dist/esm/utils/print.js.map +1 -0
- package/dist/esm/utils/promiseAllSettledWithThrow.js +19 -0
- package/dist/esm/utils/promiseAllSettledWithThrow.js.map +1 -0
- package/dist/esm/utils/promiseWithResolvers.js +13 -0
- package/dist/esm/utils/promiseWithResolvers.js.map +1 -0
- package/dist/esm/utils/queue.js +150 -0
- package/dist/esm/utils/queue.js.map +1 -0
- package/dist/esm/utils/range.js +8 -0
- package/dist/esm/utils/range.js.map +1 -0
- package/dist/esm/utils/result.js +10 -0
- package/dist/esm/utils/result.js.map +1 -0
- package/dist/esm/utils/sql-parse.js +1326 -0
- package/dist/esm/utils/sql-parse.js.map +1 -0
- package/dist/esm/utils/timer.js +9 -0
- package/dist/esm/utils/timer.js.map +1 -0
- package/dist/esm/utils/truncate.js +15 -0
- package/dist/esm/utils/truncate.js.map +1 -0
- package/dist/esm/utils/wait.js +10 -0
- package/dist/esm/utils/wait.js.map +1 -0
- package/dist/esm/utils/zipper.js +67 -0
- package/dist/esm/utils/zipper.js.map +1 -0
- package/dist/types/bin/commands/codegen.d.ts +5 -0
- package/dist/types/bin/commands/codegen.d.ts.map +1 -0
- package/dist/types/bin/commands/createViews.d.ts +8 -0
- package/dist/types/bin/commands/createViews.d.ts.map +1 -0
- package/dist/types/bin/commands/dev.d.ts +5 -0
- package/dist/types/bin/commands/dev.d.ts.map +1 -0
- package/dist/types/bin/commands/list.d.ts +5 -0
- package/dist/types/bin/commands/list.d.ts.map +1 -0
- package/dist/types/bin/commands/prune.d.ts +5 -0
- package/dist/types/bin/commands/prune.d.ts.map +1 -0
- package/dist/types/bin/commands/serve.d.ts +5 -0
- package/dist/types/bin/commands/serve.d.ts.map +1 -0
- package/dist/types/bin/commands/start.d.ts +19 -0
- package/dist/types/bin/commands/start.d.ts.map +1 -0
- package/dist/types/bin/isolatedController.d.ts +13 -0
- package/dist/types/bin/isolatedController.d.ts.map +1 -0
- package/dist/types/bin/isolatedWorker.d.ts +9 -0
- package/dist/types/bin/isolatedWorker.d.ts.map +1 -0
- package/dist/types/bin/ponder.d.ts +37 -0
- package/dist/types/bin/ponder.d.ts.map +1 -0
- package/dist/types/bin/utils/codegen.d.ts +6 -0
- package/dist/types/bin/utils/codegen.d.ts.map +1 -0
- package/dist/types/bin/utils/exit.d.ts +10 -0
- package/dist/types/bin/utils/exit.d.ts.map +1 -0
- package/dist/types/build/config.d.ts +97 -0
- package/dist/types/build/config.d.ts.map +1 -0
- package/dist/types/build/factory.d.ts +15 -0
- package/dist/types/build/factory.d.ts.map +1 -0
- package/dist/types/build/index.d.ts +84 -0
- package/dist/types/build/index.d.ts.map +1 -0
- package/dist/types/build/plugin.d.ts +4 -0
- package/dist/types/build/plugin.d.ts.map +1 -0
- package/dist/types/build/pre.d.ts +29 -0
- package/dist/types/build/pre.d.ts.map +1 -0
- package/dist/types/build/schema.d.ts +20 -0
- package/dist/types/build/schema.d.ts.map +1 -0
- package/dist/types/build/stacktrace.d.ts +13 -0
- package/dist/types/build/stacktrace.d.ts.map +1 -0
- package/dist/types/client/index.d.ts +27 -0
- package/dist/types/client/index.d.ts.map +1 -0
- package/dist/types/config/address.d.ts +34 -0
- package/dist/types/config/address.d.ts.map +1 -0
- package/dist/types/config/eventFilter.d.ts +18 -0
- package/dist/types/config/eventFilter.d.ts.map +1 -0
- package/dist/types/config/index.d.ts +144 -0
- package/dist/types/config/index.d.ts.map +1 -0
- package/dist/types/config/utilityTypes.d.ts +43 -0
- package/dist/types/config/utilityTypes.d.ts.map +1 -0
- package/dist/types/database/actions.d.ts +99 -0
- package/dist/types/database/actions.d.ts.map +1 -0
- package/dist/types/database/index.d.ts +493 -0
- package/dist/types/database/index.d.ts.map +1 -0
- package/dist/types/database/queryBuilder.d.ts +65 -0
- package/dist/types/database/queryBuilder.d.ts.map +1 -0
- package/dist/types/drizzle/bigint.d.ts +25 -0
- package/dist/types/drizzle/bigint.d.ts.map +1 -0
- package/dist/types/drizzle/bytes.d.ts +31 -0
- package/dist/types/drizzle/bytes.d.ts.map +1 -0
- package/dist/types/drizzle/hex.d.ts +25 -0
- package/dist/types/drizzle/hex.d.ts.map +1 -0
- package/dist/types/drizzle/index.d.ts +6 -0
- package/dist/types/drizzle/index.d.ts.map +1 -0
- package/dist/types/drizzle/json.d.ts +51 -0
- package/dist/types/drizzle/json.d.ts.map +1 -0
- package/dist/types/drizzle/kit/index.d.ts +187 -0
- package/dist/types/drizzle/kit/index.d.ts.map +1 -0
- package/dist/types/drizzle/onchain.d.ts +298 -0
- package/dist/types/drizzle/onchain.d.ts.map +1 -0
- package/dist/types/drizzle/text.d.ts +29 -0
- package/dist/types/drizzle/text.d.ts.map +1 -0
- package/dist/types/graphql/graphiql.html.d.ts +2 -0
- package/dist/types/graphql/graphiql.html.d.ts.map +1 -0
- package/dist/types/graphql/index.d.ts +12 -0
- package/dist/types/graphql/index.d.ts.map +1 -0
- package/dist/types/graphql/json.d.ts +3 -0
- package/dist/types/graphql/json.d.ts.map +1 -0
- package/dist/types/graphql/middleware.d.ts +29 -0
- package/dist/types/graphql/middleware.d.ts.map +1 -0
- package/dist/types/index.d.ts +23 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/indexing/addStackTrace.d.ts +3 -0
- package/dist/types/indexing/addStackTrace.d.ts.map +1 -0
- package/dist/types/indexing/client.d.ts +154 -0
- package/dist/types/indexing/client.d.ts.map +1 -0
- package/dist/types/indexing/index.d.ts +72 -0
- package/dist/types/indexing/index.d.ts.map +1 -0
- package/dist/types/indexing/profile.d.ts +16 -0
- package/dist/types/indexing/profile.d.ts.map +1 -0
- package/dist/types/indexing-store/cache.d.ts +115 -0
- package/dist/types/indexing-store/cache.d.ts.map +1 -0
- package/dist/types/indexing-store/index.d.ts +24 -0
- package/dist/types/indexing-store/index.d.ts.map +1 -0
- package/dist/types/indexing-store/profile.d.ts +7 -0
- package/dist/types/indexing-store/profile.d.ts.map +1 -0
- package/dist/types/indexing-store/utils.d.ts +19 -0
- package/dist/types/indexing-store/utils.d.ts.map +1 -0
- package/dist/types/internal/common.d.ts +15 -0
- package/dist/types/internal/common.d.ts.map +1 -0
- package/dist/types/internal/errors.d.ts +101 -0
- package/dist/types/internal/errors.d.ts.map +1 -0
- package/dist/types/internal/logger.d.ts +37 -0
- package/dist/types/internal/logger.d.ts.map +1 -0
- package/dist/types/internal/metrics.d.ts +120 -0
- package/dist/types/internal/metrics.d.ts.map +1 -0
- package/dist/types/internal/options.d.ts +62 -0
- package/dist/types/internal/options.d.ts.map +1 -0
- package/dist/types/internal/shutdown.d.ts +8 -0
- package/dist/types/internal/shutdown.d.ts.map +1 -0
- package/dist/types/internal/telemetry.d.ts +43 -0
- package/dist/types/internal/telemetry.d.ts.map +1 -0
- package/dist/types/internal/types.d.ts +443 -0
- package/dist/types/internal/types.d.ts.map +1 -0
- package/dist/types/rpc/actions.d.ts +360 -0
- package/dist/types/rpc/actions.d.ts.map +1 -0
- package/dist/types/rpc/http.d.ts +17 -0
- package/dist/types/rpc/http.d.ts.map +1 -0
- package/dist/types/rpc/index.d.ts +43 -0
- package/dist/types/rpc/index.d.ts.map +1 -0
- package/dist/types/runtime/events.d.ts +40 -0
- package/dist/types/runtime/events.d.ts.map +1 -0
- package/dist/types/runtime/filter.d.ts +96 -0
- package/dist/types/runtime/filter.d.ts.map +1 -0
- package/dist/types/runtime/fragments.d.ts +30 -0
- package/dist/types/runtime/fragments.d.ts.map +1 -0
- package/dist/types/runtime/historical.d.ts +123 -0
- package/dist/types/runtime/historical.d.ts.map +1 -0
- package/dist/types/runtime/index.d.ts +89 -0
- package/dist/types/runtime/index.d.ts.map +1 -0
- package/dist/types/runtime/init.d.ts +28 -0
- package/dist/types/runtime/init.d.ts.map +1 -0
- package/dist/types/runtime/isolated.d.ts +14 -0
- package/dist/types/runtime/isolated.d.ts.map +1 -0
- package/dist/types/runtime/multichain.d.ts +13 -0
- package/dist/types/runtime/multichain.d.ts.map +1 -0
- package/dist/types/runtime/omnichain.d.ts +23 -0
- package/dist/types/runtime/omnichain.d.ts.map +1 -0
- package/dist/types/runtime/realtime.d.ts +93 -0
- package/dist/types/runtime/realtime.d.ts.map +1 -0
- package/dist/types/server/error.d.ts +5 -0
- package/dist/types/server/error.d.ts.map +1 -0
- package/dist/types/server/index.d.ts +13 -0
- package/dist/types/server/index.d.ts.map +1 -0
- package/dist/types/sync-historical/index.d.ts +36 -0
- package/dist/types/sync-historical/index.d.ts.map +1 -0
- package/dist/types/sync-realtime/bloom.d.ts +18 -0
- package/dist/types/sync-realtime/bloom.d.ts.map +1 -0
- package/dist/types/sync-realtime/index.d.ts +48 -0
- package/dist/types/sync-realtime/index.d.ts.map +1 -0
- package/dist/types/sync-store/encode.d.ts +25 -0
- package/dist/types/sync-store/encode.d.ts.map +1 -0
- package/dist/types/sync-store/index.d.ts +135 -0
- package/dist/types/sync-store/index.d.ts.map +1 -0
- package/dist/types/sync-store/migrations.d.ts +8 -0
- package/dist/types/sync-store/migrations.d.ts.map +1 -0
- package/dist/types/sync-store/schema.d.ts +1828 -0
- package/dist/types/sync-store/schema.d.ts.map +1 -0
- package/dist/types/types/db.d.ts +213 -0
- package/dist/types/types/db.d.ts.map +1 -0
- package/dist/types/types/eth.d.ts +196 -0
- package/dist/types/types/eth.d.ts.map +1 -0
- package/dist/types/types/utils.d.ts +38 -0
- package/dist/types/types/utils.d.ts.map +1 -0
- package/dist/types/types/virtual.d.ts +99 -0
- package/dist/types/types/virtual.d.ts.map +1 -0
- package/dist/types/ui/app.d.ts +22 -0
- package/dist/types/ui/app.d.ts.map +1 -0
- package/dist/types/ui/index.d.ts +5 -0
- package/dist/types/ui/index.d.ts.map +1 -0
- package/dist/types/ui/patch.d.ts +7 -0
- package/dist/types/ui/patch.d.ts.map +1 -0
- package/dist/types/utils/abi.d.ts +23 -0
- package/dist/types/utils/abi.d.ts.map +1 -0
- package/dist/types/utils/bigint.d.ts +15 -0
- package/dist/types/utils/bigint.d.ts.map +1 -0
- package/dist/types/utils/chains.d.ts +42 -0
- package/dist/types/utils/chains.d.ts.map +1 -0
- package/dist/types/utils/checkpoint.d.ts +52 -0
- package/dist/types/utils/checkpoint.d.ts.map +1 -0
- package/dist/types/utils/chunk.d.ts +2 -0
- package/dist/types/utils/chunk.d.ts.map +1 -0
- package/dist/types/utils/copy.d.ts +16 -0
- package/dist/types/utils/copy.d.ts.map +1 -0
- package/dist/types/utils/date.d.ts +7 -0
- package/dist/types/utils/date.d.ts.map +1 -0
- package/dist/types/utils/debug.d.ts +105 -0
- package/dist/types/utils/debug.d.ts.map +1 -0
- package/dist/types/utils/decodeAbiParameters.d.ts +28 -0
- package/dist/types/utils/decodeAbiParameters.d.ts.map +1 -0
- package/dist/types/utils/decodeEventLog.d.ts +12 -0
- package/dist/types/utils/decodeEventLog.d.ts.map +1 -0
- package/dist/types/utils/dedupe.d.ts +20 -0
- package/dist/types/utils/dedupe.d.ts.map +1 -0
- package/dist/types/utils/duplicates.d.ts +7 -0
- package/dist/types/utils/duplicates.d.ts.map +1 -0
- package/dist/types/utils/estimate.d.ts +11 -0
- package/dist/types/utils/estimate.d.ts.map +1 -0
- package/dist/types/utils/finality.d.ts +12 -0
- package/dist/types/utils/finality.d.ts.map +1 -0
- package/dist/types/utils/format.d.ts +3 -0
- package/dist/types/utils/format.d.ts.map +1 -0
- package/dist/types/utils/generators.d.ts +42 -0
- package/dist/types/utils/generators.d.ts.map +1 -0
- package/dist/types/utils/hash.d.ts +11 -0
- package/dist/types/utils/hash.d.ts.map +1 -0
- package/dist/types/utils/interval.d.ts +53 -0
- package/dist/types/utils/interval.d.ts.map +1 -0
- package/dist/types/utils/lowercase.d.ts +5 -0
- package/dist/types/utils/lowercase.d.ts.map +1 -0
- package/dist/types/utils/mutex.d.ts +5 -0
- package/dist/types/utils/mutex.d.ts.map +1 -0
- package/dist/types/utils/never.d.ts +2 -0
- package/dist/types/utils/never.d.ts.map +1 -0
- package/dist/types/utils/offset.d.ts +8 -0
- package/dist/types/utils/offset.d.ts.map +1 -0
- package/dist/types/utils/order.d.ts +2 -0
- package/dist/types/utils/order.d.ts.map +1 -0
- package/dist/types/utils/partition.d.ts +22 -0
- package/dist/types/utils/partition.d.ts.map +1 -0
- package/dist/types/utils/pg.d.ts +8 -0
- package/dist/types/utils/pg.d.ts.map +1 -0
- package/dist/types/utils/pglite.d.ts +25 -0
- package/dist/types/utils/pglite.d.ts.map +1 -0
- package/dist/types/utils/port.d.ts +5 -0
- package/dist/types/utils/port.d.ts.map +1 -0
- package/dist/types/utils/print.d.ts +2 -0
- package/dist/types/utils/print.d.ts.map +1 -0
- package/dist/types/utils/promiseAllSettledWithThrow.d.ts +8 -0
- package/dist/types/utils/promiseAllSettledWithThrow.d.ts.map +1 -0
- package/dist/types/utils/promiseWithResolvers.d.ts +10 -0
- package/dist/types/utils/promiseWithResolvers.d.ts.map +1 -0
- package/dist/types/utils/queue.d.ts +33 -0
- package/dist/types/utils/queue.d.ts.map +1 -0
- package/dist/types/utils/range.d.ts +8 -0
- package/dist/types/utils/range.d.ts.map +1 -0
- package/dist/types/utils/result.d.ts +17 -0
- package/dist/types/utils/result.d.ts.map +1 -0
- package/dist/types/utils/sql-parse.d.ts +21 -0
- package/dist/types/utils/sql-parse.d.ts.map +1 -0
- package/dist/types/utils/timer.d.ts +6 -0
- package/dist/types/utils/timer.d.ts.map +1 -0
- package/dist/types/utils/truncate.d.ts +9 -0
- package/dist/types/utils/truncate.d.ts.map +1 -0
- package/dist/types/utils/wait.d.ts +6 -0
- package/dist/types/utils/wait.d.ts.map +1 -0
- package/dist/types/utils/zipper.d.ts +36 -0
- package/dist/types/utils/zipper.d.ts.map +1 -0
- package/package.json +114 -0
- package/src/bin/commands/codegen.ts +56 -0
- package/src/bin/commands/createViews.ts +318 -0
- package/src/bin/commands/dev.ts +490 -0
- package/src/bin/commands/list.ts +208 -0
- package/src/bin/commands/prune.ts +322 -0
- package/src/bin/commands/serve.ts +236 -0
- package/src/bin/commands/start.ts +319 -0
- package/src/bin/isolatedController.ts +300 -0
- package/src/bin/isolatedWorker.ts +192 -0
- package/src/bin/ponder.ts +208 -0
- package/src/bin/utils/codegen.ts +32 -0
- package/src/bin/utils/exit.ts +112 -0
- package/src/build/config.ts +1141 -0
- package/src/build/factory.ts +147 -0
- package/src/build/index.ts +790 -0
- package/src/build/plugin.ts +58 -0
- package/src/build/pre.ts +114 -0
- package/src/build/schema.ts +358 -0
- package/src/build/stacktrace.ts +137 -0
- package/src/client/index.ts +551 -0
- package/src/config/address.ts +45 -0
- package/src/config/eventFilter.ts +33 -0
- package/src/config/index.ts +240 -0
- package/src/config/utilityTypes.ts +152 -0
- package/src/database/actions.ts +873 -0
- package/src/database/index.ts +1029 -0
- package/src/database/queryBuilder.ts +537 -0
- package/src/drizzle/bigint.ts +57 -0
- package/src/drizzle/bytes.ts +68 -0
- package/src/drizzle/hex.ts +58 -0
- package/src/drizzle/index.ts +40 -0
- package/src/drizzle/json.ts +159 -0
- package/src/drizzle/kit/index.ts +1348 -0
- package/src/drizzle/onchain.ts +476 -0
- package/src/drizzle/text.ts +77 -0
- package/src/graphql/graphiql.html.ts +59 -0
- package/src/graphql/index.ts +1351 -0
- package/src/graphql/json.ts +62 -0
- package/src/graphql/middleware.ts +115 -0
- package/src/index.ts +139 -0
- package/src/indexing/addStackTrace.ts +69 -0
- package/src/indexing/client.ts +1184 -0
- package/src/indexing/index.ts +976 -0
- package/src/indexing/profile.ts +771 -0
- package/src/indexing-store/cache.ts +1057 -0
- package/src/indexing-store/index.ts +628 -0
- package/src/indexing-store/profile.ts +557 -0
- package/src/indexing-store/utils.ts +162 -0
- package/src/internal/common.ts +15 -0
- package/src/internal/errors.ts +228 -0
- package/src/internal/logger.ts +252 -0
- package/src/internal/metrics.ts +1030 -0
- package/src/internal/options.ts +130 -0
- package/src/internal/shutdown.ts +32 -0
- package/src/internal/telemetry.ts +303 -0
- package/src/internal/types.ts +611 -0
- package/src/rpc/actions.ts +1344 -0
- package/src/rpc/http.ts +164 -0
- package/src/rpc/index.ts +959 -0
- package/src/runtime/events.ts +875 -0
- package/src/runtime/filter.ts +705 -0
- package/src/runtime/fragments.ts +674 -0
- package/src/runtime/historical.ts +1522 -0
- package/src/runtime/index.ts +569 -0
- package/src/runtime/init.ts +49 -0
- package/src/runtime/isolated.ts +775 -0
- package/src/runtime/multichain.ts +860 -0
- package/src/runtime/omnichain.ts +920 -0
- package/src/runtime/realtime.ts +1164 -0
- package/src/server/error.ts +68 -0
- package/src/server/index.ts +173 -0
- package/src/sync-historical/index.ts +1065 -0
- package/src/sync-realtime/bloom.ts +102 -0
- package/src/sync-realtime/index.ts +1304 -0
- package/src/sync-store/encode.ts +153 -0
- package/src/sync-store/index.ts +1633 -0
- package/src/sync-store/migrations.ts +1801 -0
- package/src/sync-store/schema.ts +248 -0
- package/src/types/db.ts +292 -0
- package/src/types/eth.ts +216 -0
- package/src/types/utils.ts +47 -0
- package/src/types/virtual.ts +244 -0
- package/src/types.d.ts +38 -0
- package/src/ui/app.ts +207 -0
- package/src/ui/index.ts +37 -0
- package/src/ui/patch.ts +204 -0
- package/src/utils/abi.ts +103 -0
- package/src/utils/bigint.ts +41 -0
- package/src/utils/chains.ts +22 -0
- package/src/utils/checkpoint.ts +203 -0
- package/src/utils/chunk.ts +7 -0
- package/src/utils/copy.ts +151 -0
- package/src/utils/date.ts +26 -0
- package/src/utils/debug.ts +110 -0
- package/src/utils/decodeAbiParameters.ts +428 -0
- package/src/utils/decodeEventLog.ts +100 -0
- package/src/utils/dedupe.ts +32 -0
- package/src/utils/duplicates.ts +19 -0
- package/src/utils/estimate.ts +27 -0
- package/src/utils/finality.ts +40 -0
- package/src/utils/format.ts +22 -0
- package/src/utils/generators.ts +157 -0
- package/src/utils/hash.ts +22 -0
- package/src/utils/interval.ts +212 -0
- package/src/utils/lowercase.ts +6 -0
- package/src/utils/mutex.ts +33 -0
- package/src/utils/never.ts +3 -0
- package/src/utils/offset.ts +133 -0
- package/src/utils/order.ts +16 -0
- package/src/utils/partition.ts +53 -0
- package/src/utils/pg.ts +230 -0
- package/src/utils/pglite.ts +97 -0
- package/src/utils/port.ts +34 -0
- package/src/utils/print.ts +31 -0
- package/src/utils/promiseAllSettledWithThrow.ts +27 -0
- package/src/utils/promiseWithResolvers.ts +20 -0
- package/src/utils/queue.ts +258 -0
- package/src/utils/range.ts +8 -0
- package/src/utils/result.ts +26 -0
- package/src/utils/sql-parse.ts +1477 -0
- package/src/utils/timer.ts +8 -0
- package/src/utils/truncate.ts +15 -0
- package/src/utils/wait.ts +8 -0
- package/src/utils/zipper.ts +80 -0
package/src/types/eth.ts
ADDED
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
import type { AccessList, Address, Hash, Hex, TransactionType } from "viem";
|
|
2
|
+
import type { Prettify } from "./utils.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* A confirmed Ethereum block.
|
|
6
|
+
*
|
|
7
|
+
* @link https://docs.soliditylang.org/en/v0.8.20/introduction-to-smart-contracts.html#blocks
|
|
8
|
+
*/
|
|
9
|
+
export type Block = {
|
|
10
|
+
/** Base fee per gas */
|
|
11
|
+
baseFeePerGas: bigint | null;
|
|
12
|
+
/** Difficulty for this block */
|
|
13
|
+
difficulty: bigint;
|
|
14
|
+
/** "Extra data" field of this block */
|
|
15
|
+
extraData: Hex;
|
|
16
|
+
/** Maximum gas allowed in this block */
|
|
17
|
+
gasLimit: bigint;
|
|
18
|
+
/** Total used gas by all transactions in this block */
|
|
19
|
+
gasUsed: bigint;
|
|
20
|
+
/** Block hash */
|
|
21
|
+
hash: Hash;
|
|
22
|
+
/** Logs bloom filter */
|
|
23
|
+
logsBloom: Hex;
|
|
24
|
+
/** Address that received this block’s mining rewards */
|
|
25
|
+
miner: Address;
|
|
26
|
+
/** Unique identifier for the block. */
|
|
27
|
+
mixHash: Hash | null;
|
|
28
|
+
/** Proof-of-work hash */
|
|
29
|
+
nonce: Hex | null;
|
|
30
|
+
/** Block number */
|
|
31
|
+
number: bigint;
|
|
32
|
+
/** Parent block hash */
|
|
33
|
+
parentHash: Hash;
|
|
34
|
+
/** Root of the this block’s receipts trie */
|
|
35
|
+
receiptsRoot: Hex;
|
|
36
|
+
/** SHA3 of the uncles data in this block */
|
|
37
|
+
sha3Uncles: Hash | null;
|
|
38
|
+
/** Size of this block in bytes */
|
|
39
|
+
size: bigint;
|
|
40
|
+
/** Root of this block’s final state trie */
|
|
41
|
+
stateRoot: Hash;
|
|
42
|
+
/** Unix timestamp of when this block was collated */
|
|
43
|
+
timestamp: bigint;
|
|
44
|
+
/** Total difficulty of the chain until this block */
|
|
45
|
+
totalDifficulty: bigint | null;
|
|
46
|
+
/** Root of this block’s transaction trie */
|
|
47
|
+
transactionsRoot: Hash;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* A confirmed Ethereum transaction. Contains `legacy`, `EIP-1559`, or `EIP-2930` fee values depending on the transaction `type`.
|
|
52
|
+
*
|
|
53
|
+
* @link https://docs.soliditylang.org/en/v0.8.20/introduction-to-smart-contracts.html#transactions
|
|
54
|
+
*/
|
|
55
|
+
export type Transaction = Prettify<
|
|
56
|
+
{
|
|
57
|
+
/** Transaction sender */
|
|
58
|
+
from: Address;
|
|
59
|
+
/** Gas provided for transaction execution */
|
|
60
|
+
gas: bigint;
|
|
61
|
+
/** Hash of this transaction */
|
|
62
|
+
hash: Hash;
|
|
63
|
+
/** Contract code or a hashed method call */
|
|
64
|
+
input: Hex;
|
|
65
|
+
/** Unique number identifying this transaction */
|
|
66
|
+
nonce: number;
|
|
67
|
+
/** ECDSA signature r */
|
|
68
|
+
r: Hex | null;
|
|
69
|
+
/** ECDSA signature s */
|
|
70
|
+
s: Hex | null;
|
|
71
|
+
/** Transaction recipient or `null` if deploying a contract */
|
|
72
|
+
to: Address | null;
|
|
73
|
+
/** Index of this transaction in the block */
|
|
74
|
+
transactionIndex: number;
|
|
75
|
+
/** ECDSA recovery ID */
|
|
76
|
+
v: bigint | null;
|
|
77
|
+
/** Value in wei sent with this transaction */
|
|
78
|
+
value: bigint;
|
|
79
|
+
} & (
|
|
80
|
+
| {
|
|
81
|
+
/** Transaction type. */
|
|
82
|
+
type: "legacy";
|
|
83
|
+
accessList?: never;
|
|
84
|
+
/** Base fee per gas. Only present in legacy and EIP-2930 transactions. */
|
|
85
|
+
gasPrice: bigint;
|
|
86
|
+
maxFeePerGas?: never;
|
|
87
|
+
maxPriorityFeePerGas?: never;
|
|
88
|
+
}
|
|
89
|
+
| {
|
|
90
|
+
/** Transaction type. */
|
|
91
|
+
type: "eip2930";
|
|
92
|
+
/** List of addresses and storage keys the transaction will access. */
|
|
93
|
+
accessList: AccessList;
|
|
94
|
+
/** Base fee per gas. Only present in legacy and EIP-2930 transactions. */
|
|
95
|
+
gasPrice: bigint;
|
|
96
|
+
maxFeePerGas?: never;
|
|
97
|
+
maxPriorityFeePerGas?: never;
|
|
98
|
+
}
|
|
99
|
+
| {
|
|
100
|
+
/** Transaction type. */
|
|
101
|
+
type: "eip1559";
|
|
102
|
+
accessList?: never;
|
|
103
|
+
gasPrice?: never;
|
|
104
|
+
/** Total fee per gas in wei (gasPrice/baseFeePerGas + maxPriorityFeePerGas). Only present in EIP-1559 transactions. */
|
|
105
|
+
maxFeePerGas: bigint;
|
|
106
|
+
/** Max priority fee per gas (in wei). Only present in EIP-1559 transactions. */
|
|
107
|
+
maxPriorityFeePerGas: bigint;
|
|
108
|
+
}
|
|
109
|
+
| {
|
|
110
|
+
/** Transaction type. */
|
|
111
|
+
type: "deposit";
|
|
112
|
+
accessList?: never;
|
|
113
|
+
gasPrice?: never;
|
|
114
|
+
/** Total fee per gas in wei (gasPrice/baseFeePerGas + maxPriorityFeePerGas). Only present in EIP-1559 transactions. */
|
|
115
|
+
maxFeePerGas?: bigint;
|
|
116
|
+
/** Max priority fee per gas (in wei). Only present in EIP-1559 transactions. */
|
|
117
|
+
maxPriorityFeePerGas?: bigint;
|
|
118
|
+
}
|
|
119
|
+
| {
|
|
120
|
+
/** Transaction type. */
|
|
121
|
+
type: Hex;
|
|
122
|
+
gasPrice?: never;
|
|
123
|
+
accessList?: never;
|
|
124
|
+
maxFeePerGas?: never;
|
|
125
|
+
maxPriorityFeePerGas?: never;
|
|
126
|
+
}
|
|
127
|
+
)
|
|
128
|
+
>;
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* A confirmed Ethereum log.
|
|
132
|
+
*
|
|
133
|
+
* @link https://docs.soliditylang.org/en/v0.8.20/abi-spec.html#events
|
|
134
|
+
*/
|
|
135
|
+
export type Log = {
|
|
136
|
+
/** The address from which this log originated */
|
|
137
|
+
address: Address;
|
|
138
|
+
/** Contains the non-indexed arguments of the log */
|
|
139
|
+
data: Hex;
|
|
140
|
+
/** Index of this log within its block */
|
|
141
|
+
logIndex: number;
|
|
142
|
+
/**
|
|
143
|
+
* Indicates if this log was removed in a chain reorganization.
|
|
144
|
+
*
|
|
145
|
+
* Ponder automatically handles reorgs, so this will always be `false`.
|
|
146
|
+
*/
|
|
147
|
+
removed: boolean;
|
|
148
|
+
/** List of order-dependent topics */
|
|
149
|
+
topics: [Hex, ...Hex[]] | [];
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
/** A confirmed Ethereum transaction receipt. */
|
|
153
|
+
export type TransactionReceipt = {
|
|
154
|
+
/** Address of new contract or `null` if no contract was created */
|
|
155
|
+
contractAddress: Address | null;
|
|
156
|
+
/** Gas used by this and all preceding transactions in this block */
|
|
157
|
+
cumulativeGasUsed: bigint;
|
|
158
|
+
/** Pre-London, it is equal to the transaction's gasPrice. Post-London, it is equal to the actual gas price paid for inclusion. */
|
|
159
|
+
effectiveGasPrice: bigint;
|
|
160
|
+
/** Transaction sender */
|
|
161
|
+
from: Address;
|
|
162
|
+
/** Gas used by this transaction */
|
|
163
|
+
gasUsed: bigint;
|
|
164
|
+
/** Logs bloom filter */
|
|
165
|
+
logsBloom: Hex;
|
|
166
|
+
/** `success` if this transaction was successful or `reverted` if it failed */
|
|
167
|
+
status: "success" | "reverted";
|
|
168
|
+
/** Transaction recipient or `null` if deploying a contract */
|
|
169
|
+
to: Address | null;
|
|
170
|
+
/** Transaction type */
|
|
171
|
+
type: TransactionType;
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
export type Trace = {
|
|
175
|
+
/** The type of the call. */
|
|
176
|
+
type:
|
|
177
|
+
| "CALL"
|
|
178
|
+
| "CALLCODE"
|
|
179
|
+
| "DELEGATECALL"
|
|
180
|
+
| "STATICCALL"
|
|
181
|
+
| "CREATE"
|
|
182
|
+
| "CREATE2"
|
|
183
|
+
| "SELFDESTRUCT";
|
|
184
|
+
/** The address of that initiated the call. */
|
|
185
|
+
from: Address;
|
|
186
|
+
/** The address of the contract that was called. */
|
|
187
|
+
to: Address | null;
|
|
188
|
+
/** How much gas was left before the call. */
|
|
189
|
+
gas: bigint;
|
|
190
|
+
/** How much gas was used by the call. */
|
|
191
|
+
gasUsed: bigint;
|
|
192
|
+
/** Calldata input. */
|
|
193
|
+
input: Hex;
|
|
194
|
+
/** Output of the call, if any. */
|
|
195
|
+
output?: Hex;
|
|
196
|
+
/** Error message, if any. */
|
|
197
|
+
error?: string;
|
|
198
|
+
/** Why this call reverted, if it reverted. */
|
|
199
|
+
revertReason?: string;
|
|
200
|
+
/** Value transferred. */
|
|
201
|
+
value: bigint | null;
|
|
202
|
+
/** Index of this trace in the transaction. */
|
|
203
|
+
traceIndex: number;
|
|
204
|
+
/** Number of subcalls. */
|
|
205
|
+
subcalls: number;
|
|
206
|
+
};
|
|
207
|
+
|
|
208
|
+
/** A native token transfer. */
|
|
209
|
+
export type Transfer = {
|
|
210
|
+
/** The address that sent the transfer */
|
|
211
|
+
from: Address;
|
|
212
|
+
/** The address that received the transfer */
|
|
213
|
+
to: Address;
|
|
214
|
+
/** The amount of tokens transferred */
|
|
215
|
+
value: bigint;
|
|
216
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Combines members of an intersection into a readable type.
|
|
3
|
+
*
|
|
4
|
+
* @link https://twitter.com/mattpocockuk/status/1622730173446557697?s=20&t=NdpAcmEFXY01xkqU3KO0Mg
|
|
5
|
+
* @example
|
|
6
|
+
* Prettify<{ a: string } | { b: string } | { c: number, d: bigint }>
|
|
7
|
+
* => { a: string, b: string, c: number, d: bigint }
|
|
8
|
+
*/
|
|
9
|
+
export type Prettify<T> = {
|
|
10
|
+
[K in keyof T]: T[K];
|
|
11
|
+
} & {};
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @description Creates a type with all keys K from T as non-null.
|
|
15
|
+
*/
|
|
16
|
+
export type NonNull<T> = {
|
|
17
|
+
[P in keyof T]-?: NonNullable<T[P]>;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export type PonderTypeError<error extends string> = error;
|
|
21
|
+
|
|
22
|
+
export type DeepPartial<T> = {
|
|
23
|
+
[P in keyof T]?: T[P] extends (infer U)[]
|
|
24
|
+
? DeepPartial<U>[]
|
|
25
|
+
: T[P] extends object
|
|
26
|
+
? DeepPartial<T[P]>
|
|
27
|
+
: T[P];
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* @description Creates a partial type with the selected keys required.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* type t = PartialExcept<{ a: string, b: boolean }, "a">
|
|
35
|
+
* // ^? t: { a: string, b?: boolean }
|
|
36
|
+
*/
|
|
37
|
+
export type PartialExcept<T, K extends keyof T> = {
|
|
38
|
+
[P in K]: T[P];
|
|
39
|
+
} & {
|
|
40
|
+
[P in keyof Omit<T, K>]?: T[P];
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* @description Marks a property of an object as optional.
|
|
45
|
+
*/
|
|
46
|
+
export type MakeOptional<T, K extends keyof T> = Omit<T, K> &
|
|
47
|
+
Partial<Pick<T, K>>;
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
import type { Config } from "@/config/index.js";
|
|
2
|
+
import type {
|
|
3
|
+
FormatEventArgs,
|
|
4
|
+
FormatFunctionArgs,
|
|
5
|
+
FormatFunctionResult,
|
|
6
|
+
SafeEventNames,
|
|
7
|
+
SafeFunctionNames,
|
|
8
|
+
} from "@/config/utilityTypes.js";
|
|
9
|
+
import type { ReadonlyClient } from "@/indexing/client.js";
|
|
10
|
+
import type { Schema } from "@/internal/types.js";
|
|
11
|
+
import type {
|
|
12
|
+
Block,
|
|
13
|
+
Log,
|
|
14
|
+
Trace,
|
|
15
|
+
Transaction,
|
|
16
|
+
TransactionReceipt,
|
|
17
|
+
Transfer,
|
|
18
|
+
} from "@/types/eth.js";
|
|
19
|
+
import type { Db } from "./db.js";
|
|
20
|
+
import type { Prettify } from "./utils.js";
|
|
21
|
+
|
|
22
|
+
export namespace Virtual {
|
|
23
|
+
type Setup = "setup";
|
|
24
|
+
|
|
25
|
+
type _FormatEventNames<
|
|
26
|
+
contract extends Config["contracts"][string],
|
|
27
|
+
///
|
|
28
|
+
safeEventNames = SafeEventNames<contract["abi"]>,
|
|
29
|
+
> = string extends safeEventNames ? never : safeEventNames;
|
|
30
|
+
|
|
31
|
+
type _FormatFunctionNames<
|
|
32
|
+
contract extends Config["contracts"][string],
|
|
33
|
+
///
|
|
34
|
+
safeFunctionNames = SafeFunctionNames<contract["abi"]>,
|
|
35
|
+
> = string extends safeFunctionNames ? never : safeFunctionNames;
|
|
36
|
+
|
|
37
|
+
/** "{ContractName}:{EventName}" | "{ContractName}.{FunctionName}()" | "{SourceName}:block" | "{SourceName}:transaction:from" . */
|
|
38
|
+
export type FormatEventNames<
|
|
39
|
+
contracts extends Config["contracts"],
|
|
40
|
+
accounts extends Config["accounts"],
|
|
41
|
+
blocks extends Config["blocks"],
|
|
42
|
+
> =
|
|
43
|
+
| {
|
|
44
|
+
[name in keyof contracts]: `${name & string}:${_FormatEventNames<contracts[name]> | Setup}`;
|
|
45
|
+
}[keyof contracts]
|
|
46
|
+
| {
|
|
47
|
+
[name in keyof accounts]: `${name & string}:${"transaction" | "transfer"}:${"from" | "to"}`;
|
|
48
|
+
}[keyof accounts]
|
|
49
|
+
| {
|
|
50
|
+
[name in keyof blocks]: `${name & string}:block`;
|
|
51
|
+
}[keyof blocks]
|
|
52
|
+
| {
|
|
53
|
+
[name in keyof contracts]: true extends ExtractOverridenProperty<
|
|
54
|
+
contracts[name],
|
|
55
|
+
"includeCallTraces"
|
|
56
|
+
>
|
|
57
|
+
? `${name & string}.${_FormatFunctionNames<contracts[name]>}`
|
|
58
|
+
: never;
|
|
59
|
+
}[keyof contracts];
|
|
60
|
+
|
|
61
|
+
type FormatTransactionReceipts<
|
|
62
|
+
source extends Config["contracts" | "accounts"][string],
|
|
63
|
+
///
|
|
64
|
+
includeTxr = ExtractOverridenProperty<source, "includeTransactionReceipts">,
|
|
65
|
+
> = includeTxr extends includeTxr
|
|
66
|
+
? includeTxr extends true
|
|
67
|
+
? {
|
|
68
|
+
transactionReceipt: Prettify<TransactionReceipt>;
|
|
69
|
+
}
|
|
70
|
+
: {
|
|
71
|
+
transactionReceipt?: never;
|
|
72
|
+
}
|
|
73
|
+
: never;
|
|
74
|
+
|
|
75
|
+
export type ExtractEventName<name extends string> =
|
|
76
|
+
name extends `${string}:${infer EventName extends string}`
|
|
77
|
+
? EventName
|
|
78
|
+
: name extends `${string}.${infer EventName extends string}`
|
|
79
|
+
? EventName
|
|
80
|
+
: never;
|
|
81
|
+
|
|
82
|
+
export type ExtractSourceName<name extends string> =
|
|
83
|
+
name extends `${infer SourceName extends string}:${string}`
|
|
84
|
+
? SourceName
|
|
85
|
+
: name extends `${infer SourceName extends string}.${string}`
|
|
86
|
+
? SourceName
|
|
87
|
+
: never;
|
|
88
|
+
|
|
89
|
+
export type EventNames<config extends Config> = FormatEventNames<
|
|
90
|
+
config["contracts"],
|
|
91
|
+
config["accounts"],
|
|
92
|
+
config["blocks"]
|
|
93
|
+
>;
|
|
94
|
+
|
|
95
|
+
export type Event<
|
|
96
|
+
config extends Config,
|
|
97
|
+
name extends EventNames<config>,
|
|
98
|
+
///
|
|
99
|
+
sourceName extends ExtractSourceName<name> = ExtractSourceName<name>,
|
|
100
|
+
eventName extends ExtractEventName<name> = ExtractEventName<name>,
|
|
101
|
+
> = name extends `${string}:block`
|
|
102
|
+
? // 1. block event
|
|
103
|
+
{
|
|
104
|
+
id: string;
|
|
105
|
+
block: Prettify<Block>;
|
|
106
|
+
}
|
|
107
|
+
: name extends `${string}:transaction:${"from" | "to"}`
|
|
108
|
+
? // 2. transaction event
|
|
109
|
+
{
|
|
110
|
+
id: string;
|
|
111
|
+
block: Prettify<Block>;
|
|
112
|
+
transaction: Prettify<Transaction>;
|
|
113
|
+
transactionReceipt: Prettify<TransactionReceipt>;
|
|
114
|
+
}
|
|
115
|
+
: name extends `${string}:transfer:${"from" | "to"}`
|
|
116
|
+
? // 3. transfer event
|
|
117
|
+
{
|
|
118
|
+
id: string;
|
|
119
|
+
transfer: Prettify<Transfer>;
|
|
120
|
+
block: Prettify<Block>;
|
|
121
|
+
transaction: Prettify<Transaction>;
|
|
122
|
+
trace: Prettify<Trace>;
|
|
123
|
+
} & FormatTransactionReceipts<config["accounts"][sourceName]>
|
|
124
|
+
: name extends `${string}.${string}`
|
|
125
|
+
? // 4. call trace event
|
|
126
|
+
Prettify<
|
|
127
|
+
{
|
|
128
|
+
id: string;
|
|
129
|
+
args: FormatFunctionArgs<
|
|
130
|
+
config["contracts"][sourceName]["abi"],
|
|
131
|
+
eventName
|
|
132
|
+
>;
|
|
133
|
+
result: FormatFunctionResult<
|
|
134
|
+
config["contracts"][sourceName]["abi"],
|
|
135
|
+
eventName
|
|
136
|
+
>;
|
|
137
|
+
trace: Prettify<Trace>;
|
|
138
|
+
block: Prettify<Block>;
|
|
139
|
+
transaction: Prettify<Transaction>;
|
|
140
|
+
} & FormatTransactionReceipts<config["contracts"][sourceName]>
|
|
141
|
+
>
|
|
142
|
+
: eventName extends Setup
|
|
143
|
+
? // 5. setup event
|
|
144
|
+
never
|
|
145
|
+
: // 6. log event
|
|
146
|
+
Prettify<
|
|
147
|
+
{
|
|
148
|
+
id: string;
|
|
149
|
+
args: FormatEventArgs<
|
|
150
|
+
config["contracts"][sourceName]["abi"],
|
|
151
|
+
eventName
|
|
152
|
+
>;
|
|
153
|
+
log: Prettify<Log>;
|
|
154
|
+
block: Prettify<Block>;
|
|
155
|
+
transaction: Prettify<Transaction>;
|
|
156
|
+
} & FormatTransactionReceipts<config["contracts"][sourceName]>
|
|
157
|
+
>;
|
|
158
|
+
|
|
159
|
+
type ContextContractProperty = Exclude<
|
|
160
|
+
keyof Config["contracts"][string],
|
|
161
|
+
"abi" | "chain" | "filter" | "factory"
|
|
162
|
+
>;
|
|
163
|
+
|
|
164
|
+
type ExtractOverridenProperty<
|
|
165
|
+
contract extends Config["contracts" | "accounts"][string],
|
|
166
|
+
property extends ContextContractProperty,
|
|
167
|
+
///
|
|
168
|
+
base = Extract<contract, { [p in property]: unknown }>[property],
|
|
169
|
+
override = Extract<
|
|
170
|
+
contract["chain"][keyof contract["chain"]],
|
|
171
|
+
{ [p in property]: unknown }
|
|
172
|
+
>[property],
|
|
173
|
+
> = ([base] extends [never] ? undefined : base) | override;
|
|
174
|
+
|
|
175
|
+
export type Context<
|
|
176
|
+
config extends Config,
|
|
177
|
+
schema extends Schema,
|
|
178
|
+
name extends EventNames<config>,
|
|
179
|
+
///
|
|
180
|
+
sourceName extends ExtractSourceName<name> = ExtractSourceName<name>,
|
|
181
|
+
sourceChain = sourceName extends sourceName
|
|
182
|
+
?
|
|
183
|
+
| (unknown extends config["contracts"][sourceName]["chain"]
|
|
184
|
+
? never
|
|
185
|
+
: config["contracts"][sourceName]["chain"])
|
|
186
|
+
| (unknown extends config["blocks"][sourceName]["chain"]
|
|
187
|
+
? never
|
|
188
|
+
: config["blocks"][sourceName]["chain"])
|
|
189
|
+
: never,
|
|
190
|
+
> = {
|
|
191
|
+
contracts: {
|
|
192
|
+
[_contractName in keyof config["contracts"]]: {
|
|
193
|
+
abi: config["contracts"][_contractName]["abi"];
|
|
194
|
+
address: ExtractOverridenProperty<
|
|
195
|
+
config["contracts"][_contractName],
|
|
196
|
+
"address"
|
|
197
|
+
>;
|
|
198
|
+
startBlock: ExtractOverridenProperty<
|
|
199
|
+
config["contracts"][_contractName],
|
|
200
|
+
"startBlock"
|
|
201
|
+
>;
|
|
202
|
+
endBlock: ExtractOverridenProperty<
|
|
203
|
+
config["contracts"][_contractName],
|
|
204
|
+
"endBlock"
|
|
205
|
+
>;
|
|
206
|
+
};
|
|
207
|
+
};
|
|
208
|
+
chain: sourceChain extends string
|
|
209
|
+
? // 1. No chain overriding
|
|
210
|
+
{
|
|
211
|
+
name: sourceChain;
|
|
212
|
+
id: config["chains"][sourceChain]["id"];
|
|
213
|
+
}
|
|
214
|
+
: // 2. Chain overrides
|
|
215
|
+
{
|
|
216
|
+
[key in keyof sourceChain]: {
|
|
217
|
+
name: key;
|
|
218
|
+
id: config["chains"][key & keyof config["chains"]]["id"];
|
|
219
|
+
};
|
|
220
|
+
}[keyof sourceChain];
|
|
221
|
+
client: Prettify<ReadonlyClient>;
|
|
222
|
+
db: Db<schema>;
|
|
223
|
+
};
|
|
224
|
+
|
|
225
|
+
export type IndexingFunctionArgs<
|
|
226
|
+
config extends Config,
|
|
227
|
+
schema extends Schema,
|
|
228
|
+
name extends EventNames<config>,
|
|
229
|
+
> = {
|
|
230
|
+
event: Event<config, name>;
|
|
231
|
+
context: Context<config, schema, name>;
|
|
232
|
+
};
|
|
233
|
+
|
|
234
|
+
export type Registry<config extends Config, schema extends Schema> = {
|
|
235
|
+
on: <name extends EventNames<config>>(
|
|
236
|
+
_name: name,
|
|
237
|
+
indexingFunction: (
|
|
238
|
+
args: { event: Event<config, name> } & {
|
|
239
|
+
context: Prettify<Context<config, schema, name>>;
|
|
240
|
+
},
|
|
241
|
+
) => Promise<void> | void,
|
|
242
|
+
) => void;
|
|
243
|
+
};
|
|
244
|
+
}
|
package/src/types.d.ts
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
declare module "ponder:registry" {
|
|
2
|
+
import type { Virtual } from "ponder";
|
|
3
|
+
type config = typeof import("ponder:internal").config;
|
|
4
|
+
type schema = typeof import("ponder:internal").schema;
|
|
5
|
+
|
|
6
|
+
export const ponder: Virtual.Registry<config["default"], schema>;
|
|
7
|
+
|
|
8
|
+
export type EventNames = Virtual.EventNames<config["default"]>;
|
|
9
|
+
export type Event<name extends EventNames = EventNames> = Virtual.Event<
|
|
10
|
+
config["default"],
|
|
11
|
+
name
|
|
12
|
+
>;
|
|
13
|
+
export type Context<name extends EventNames = EventNames> = Virtual.Context<
|
|
14
|
+
config["default"],
|
|
15
|
+
schema,
|
|
16
|
+
name
|
|
17
|
+
>;
|
|
18
|
+
export type IndexingFunctionArgs<name extends EventNames = EventNames> =
|
|
19
|
+
Virtual.IndexingFunctionArgs<config["default"], schema, name>;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
declare module "ponder:schema" {
|
|
23
|
+
const schema: typeof import("ponder:internal").schema;
|
|
24
|
+
export { schema as default };
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
declare module "ponder:api" {
|
|
28
|
+
import type { ReadonlyDrizzle } from "ponder";
|
|
29
|
+
import type { PublicClient } from "viem";
|
|
30
|
+
|
|
31
|
+
type schema = typeof import("ponder:internal").schema;
|
|
32
|
+
type config = typeof import("ponder:internal").config;
|
|
33
|
+
|
|
34
|
+
export const db: ReadonlyDrizzle<schema>;
|
|
35
|
+
export const publicClients: {
|
|
36
|
+
[chainName in keyof config["default"]["chains"]]: PublicClient;
|
|
37
|
+
};
|
|
38
|
+
}
|