ponder-with-flashblocks 0.16.3
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 +3427 -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 +746 -0
- package/dist/esm/build/config.js.map +1 -0
- package/dist/esm/build/factory.js +76 -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 +751 -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 +443 -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 +950 -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/isolated.js +463 -0
- package/dist/esm/runtime/isolated.js.map +1 -0
- package/dist/esm/runtime/multichain.js +510 -0
- package/dist/esm/runtime/multichain.js.map +1 -0
- package/dist/esm/runtime/omnichain.js +545 -0
- package/dist/esm/runtime/omnichain.js.map +1 -0
- package/dist/esm/runtime/realtime.js +724 -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 +711 -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 +928 -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 +13 -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 +24 -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 +150 -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 +434 -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 +87 -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/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 +47 -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 +1142 -0
- package/src/build/factory.ts +122 -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 +32 -0
- package/src/config/eventFilter.ts +33 -0
- package/src/config/index.ts +246 -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 +597 -0
- package/src/rpc/actions.ts +1344 -0
- package/src/rpc/http.ts +164 -0
- package/src/rpc/index.ts +961 -0
- package/src/runtime/events.ts +875 -0
- package/src/runtime/filter.ts +664 -0
- package/src/runtime/fragments.ts +674 -0
- package/src/runtime/historical.ts +1509 -0
- package/src/runtime/index.ts +569 -0
- package/src/runtime/isolated.ts +778 -0
- package/src/runtime/multichain.ts +860 -0
- package/src/runtime/omnichain.ts +920 -0
- package/src/runtime/realtime.ts +1166 -0
- package/src/server/error.ts +68 -0
- package/src/server/index.ts +173 -0
- package/src/sync-historical/index.ts +1072 -0
- package/src/sync-realtime/bloom.ts +102 -0
- package/src/sync-realtime/index.ts +1312 -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
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import type { ConnectionOptions } from "node:tls";
|
|
2
|
+
import type { Prettify } from "@/types/utils.js";
|
|
3
|
+
import type { Abi } from "abitype";
|
|
4
|
+
import type { PoolConfig } from "pg";
|
|
5
|
+
import type { Narrow, Transport } from "viem";
|
|
6
|
+
import type { AddressConfig } from "./address.js";
|
|
7
|
+
import type { GetEventFilter } from "./eventFilter.js";
|
|
8
|
+
|
|
9
|
+
export type Config = {
|
|
10
|
+
database?: DatabaseConfig;
|
|
11
|
+
ordering?: "omnichain" | "multichain" | "experimental_isolated";
|
|
12
|
+
chains: { [chainName: string]: ChainConfig<unknown> };
|
|
13
|
+
contracts: { [contractName: string]: GetContract };
|
|
14
|
+
accounts: { [accountName: string]: AccountConfig<unknown> };
|
|
15
|
+
blocks: {
|
|
16
|
+
[sourceName: string]: GetBlockFilter<unknown>;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export type CreateConfigReturnType<chains, contracts, accounts, blocks> = {
|
|
21
|
+
database?: DatabaseConfig;
|
|
22
|
+
ordering?: "omnichain" | "multichain" | "experimental_isolated";
|
|
23
|
+
chains: chains;
|
|
24
|
+
contracts: contracts;
|
|
25
|
+
accounts: accounts;
|
|
26
|
+
blocks: blocks;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export const createConfig = <
|
|
30
|
+
const chains,
|
|
31
|
+
const contracts = {},
|
|
32
|
+
const accounts = {},
|
|
33
|
+
const blocks = {},
|
|
34
|
+
>(config: {
|
|
35
|
+
database?: DatabaseConfig;
|
|
36
|
+
ordering?: "omnichain" | "multichain" | "experimental_isolated";
|
|
37
|
+
// TODO: add jsdoc to these properties.
|
|
38
|
+
chains: ChainsConfig<Narrow<chains>>;
|
|
39
|
+
contracts?: ContractsConfig<chains, Narrow<contracts>>;
|
|
40
|
+
accounts?: AccountsConfig<chains, Narrow<accounts>>;
|
|
41
|
+
blocks?: BlockFiltersConfig<chains, blocks>;
|
|
42
|
+
}): CreateConfigReturnType<chains, contracts, accounts, blocks> =>
|
|
43
|
+
config as Prettify<
|
|
44
|
+
CreateConfigReturnType<chains, contracts, accounts, blocks>
|
|
45
|
+
>;
|
|
46
|
+
|
|
47
|
+
// database
|
|
48
|
+
|
|
49
|
+
type DatabaseConfig =
|
|
50
|
+
| {
|
|
51
|
+
kind: "pglite";
|
|
52
|
+
/** Directory path to use for PGlite database files. Default: `".ponder/pglite"`. */
|
|
53
|
+
directory?: string;
|
|
54
|
+
}
|
|
55
|
+
| {
|
|
56
|
+
kind: "postgres";
|
|
57
|
+
/** Postgres database connection string. Default: `DATABASE_PRIVATE_URL` > `DATABASE_URL` environment variable. */
|
|
58
|
+
connectionString?: string;
|
|
59
|
+
/** Postgres pool configuration passed to `node-postgres`. */
|
|
60
|
+
poolConfig?: {
|
|
61
|
+
/** Maximum number of clients in the pool. Default: `30`. */
|
|
62
|
+
max?: number;
|
|
63
|
+
/** Enable SSL, or provide a custom SSL configuration. Default: `undefined`. */
|
|
64
|
+
ssl?: boolean | Prettify<ConnectionOptions>;
|
|
65
|
+
} & Omit<PoolConfig, "max" | "ssl" | "connectionString">;
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
// base
|
|
69
|
+
|
|
70
|
+
type BlockConfig = {
|
|
71
|
+
/** Block number at which to start indexing events (inclusive). If `undefined`, events will be processed from block 0. Default: `undefined`. */
|
|
72
|
+
startBlock?: number | "latest";
|
|
73
|
+
/** Block number at which to stop indexing events (inclusive). If `undefined`, events will be processed in real-time. Default: `undefined`. */
|
|
74
|
+
endBlock?: number | "latest";
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
type TransactionReceiptConfig = {
|
|
78
|
+
includeTransactionReceipts?: boolean;
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
type FunctionCallConfig = {
|
|
82
|
+
/*
|
|
83
|
+
* Enable call trace indexing for this contract.
|
|
84
|
+
*
|
|
85
|
+
* - Docs: https://ponder.sh/docs/guides/call-traces
|
|
86
|
+
*/
|
|
87
|
+
includeCallTraces?: boolean;
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
// chain
|
|
91
|
+
|
|
92
|
+
type ChainConfig<chain> = {
|
|
93
|
+
/** Chain ID of the chain. */
|
|
94
|
+
id: chain extends { id: infer id extends number } ? id | number : number;
|
|
95
|
+
/** RPC url. */
|
|
96
|
+
rpc: string | string[] | Transport | undefined;
|
|
97
|
+
ws?: string;
|
|
98
|
+
/** Polling interval (in ms). Default: `1_000`. */
|
|
99
|
+
pollingInterval?: number;
|
|
100
|
+
/**
|
|
101
|
+
* Maximum number of RPC requests per second.
|
|
102
|
+
* @deprecated Handled automatically instead.
|
|
103
|
+
*/
|
|
104
|
+
maxRequestsPerSecond?: number;
|
|
105
|
+
/** Disable RPC request caching. Default: `false`. */
|
|
106
|
+
disableCache?: boolean;
|
|
107
|
+
/**
|
|
108
|
+
* Maximum block range for eth_getLogs. If undefined, Ponder will
|
|
109
|
+
* attempt to determine the block range automatically based on error messages.
|
|
110
|
+
*/
|
|
111
|
+
ethGetLogsBlockRange?: number;
|
|
112
|
+
/**
|
|
113
|
+
* Use "pending" block tag instead of "latest" when polling for new blocks.
|
|
114
|
+
* Enables reading pre-confirmation data such as Base flashblocks.
|
|
115
|
+
* Default: `false`.
|
|
116
|
+
*/
|
|
117
|
+
readPending?: boolean;
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
type ChainsConfig<chains> = {} extends chains
|
|
121
|
+
? {}
|
|
122
|
+
: {
|
|
123
|
+
[chainName in keyof chains]: ChainConfig<chains[chainName]>;
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
// contracts
|
|
127
|
+
|
|
128
|
+
type AbiConfig<abi extends Abi | readonly unknown[]> = {
|
|
129
|
+
/** Contract application byte interface. */
|
|
130
|
+
abi: abi;
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
type GetContractChain<
|
|
134
|
+
chains,
|
|
135
|
+
abi extends Abi,
|
|
136
|
+
///
|
|
137
|
+
allChainNames extends string = [keyof chains] extends [never]
|
|
138
|
+
? string
|
|
139
|
+
: keyof chains & string,
|
|
140
|
+
> = {
|
|
141
|
+
/**
|
|
142
|
+
* Chain that this contract is deployed to. Must match a chain name in `chains`.
|
|
143
|
+
* Any filter information overrides the values in the higher level "contracts" property.
|
|
144
|
+
*/
|
|
145
|
+
chain:
|
|
146
|
+
| allChainNames
|
|
147
|
+
| {
|
|
148
|
+
[name in allChainNames]?: Prettify<
|
|
149
|
+
AddressConfig &
|
|
150
|
+
GetEventFilter<abi> &
|
|
151
|
+
TransactionReceiptConfig &
|
|
152
|
+
FunctionCallConfig &
|
|
153
|
+
BlockConfig
|
|
154
|
+
>;
|
|
155
|
+
};
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
type ContractConfig<chains, abi extends Abi> = Prettify<
|
|
159
|
+
AbiConfig<abi> &
|
|
160
|
+
GetContractChain<chains, abi> &
|
|
161
|
+
AddressConfig &
|
|
162
|
+
GetEventFilter<abi> &
|
|
163
|
+
TransactionReceiptConfig &
|
|
164
|
+
FunctionCallConfig &
|
|
165
|
+
BlockConfig
|
|
166
|
+
>;
|
|
167
|
+
|
|
168
|
+
type GetContract<chains = unknown, contract = unknown> = contract extends {
|
|
169
|
+
abi: infer abi extends Abi;
|
|
170
|
+
}
|
|
171
|
+
? // 1. Contract has a valid abi
|
|
172
|
+
ContractConfig<chains, abi>
|
|
173
|
+
: // 2. Contract has an invalid abi
|
|
174
|
+
ContractConfig<chains, Abi>;
|
|
175
|
+
|
|
176
|
+
type ContractsConfig<chains, contracts> = {} extends contracts
|
|
177
|
+
? // contracts empty, return empty
|
|
178
|
+
{}
|
|
179
|
+
: {
|
|
180
|
+
[name in keyof contracts]: GetContract<chains, contracts[name]>;
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
// accounts
|
|
184
|
+
|
|
185
|
+
type GetAccountChain<
|
|
186
|
+
chains,
|
|
187
|
+
///
|
|
188
|
+
allChainNames extends string = [keyof chains] extends [never]
|
|
189
|
+
? string
|
|
190
|
+
: keyof chains & string,
|
|
191
|
+
> = {
|
|
192
|
+
/**
|
|
193
|
+
* Chain that this account is deployed to. Must match a chain name in `chains`.
|
|
194
|
+
* Any filter information overrides the values in the higher level "accounts" property.
|
|
195
|
+
*/
|
|
196
|
+
chain:
|
|
197
|
+
| allChainNames
|
|
198
|
+
| {
|
|
199
|
+
[name in allChainNames]?: Prettify<
|
|
200
|
+
AddressConfig & TransactionReceiptConfig & BlockConfig
|
|
201
|
+
>;
|
|
202
|
+
};
|
|
203
|
+
};
|
|
204
|
+
|
|
205
|
+
type AccountConfig<chains> = Prettify<
|
|
206
|
+
GetAccountChain<chains> &
|
|
207
|
+
Required<AddressConfig> &
|
|
208
|
+
TransactionReceiptConfig &
|
|
209
|
+
BlockConfig
|
|
210
|
+
>;
|
|
211
|
+
|
|
212
|
+
type AccountsConfig<chains, accounts> = {} extends accounts
|
|
213
|
+
? {}
|
|
214
|
+
: {
|
|
215
|
+
[name in keyof accounts]: AccountConfig<chains>;
|
|
216
|
+
};
|
|
217
|
+
|
|
218
|
+
// blocks
|
|
219
|
+
|
|
220
|
+
type BlockFilterConfig = {
|
|
221
|
+
/** Block number at which to start indexing events (inclusive). If `undefined`, events will be processed from block 0. Default: `undefined`. */
|
|
222
|
+
startBlock?: number | "latest";
|
|
223
|
+
/** Block number at which to stop indexing events (inclusive). If `undefined`, events will be processed in real-time. Default: `undefined`. */
|
|
224
|
+
endBlock?: number | "latest";
|
|
225
|
+
interval?: number;
|
|
226
|
+
};
|
|
227
|
+
|
|
228
|
+
type GetBlockFilter<
|
|
229
|
+
chains,
|
|
230
|
+
///
|
|
231
|
+
allChainNames extends string = [keyof chains] extends [never]
|
|
232
|
+
? string
|
|
233
|
+
: keyof chains & string,
|
|
234
|
+
> = BlockFilterConfig & {
|
|
235
|
+
chain:
|
|
236
|
+
| allChainNames
|
|
237
|
+
| {
|
|
238
|
+
[name in allChainNames]?: BlockFilterConfig;
|
|
239
|
+
};
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
type BlockFiltersConfig<chains = unknown, blocks = unknown> = {} extends blocks
|
|
243
|
+
? {}
|
|
244
|
+
: {
|
|
245
|
+
[name in keyof blocks]: GetBlockFilter<chains>;
|
|
246
|
+
};
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
Abi,
|
|
3
|
+
AbiEvent,
|
|
4
|
+
AbiFunction,
|
|
5
|
+
AbiParametersToPrimitiveTypes,
|
|
6
|
+
FormatAbiItem,
|
|
7
|
+
} from "abitype";
|
|
8
|
+
import type { GetEventArgs, ParseAbiItem } from "viem";
|
|
9
|
+
|
|
10
|
+
export type NonStrictPick<T, K> = {
|
|
11
|
+
[P in Extract<keyof T, K>]: T[P];
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export type ExtractAbiEvents<
|
|
15
|
+
abi extends Abi,
|
|
16
|
+
events = Extract<abi[number], { type: "event" }>,
|
|
17
|
+
> = [events] extends [never] ? AbiEvent : events;
|
|
18
|
+
|
|
19
|
+
export type ExtractAbiFunctions<
|
|
20
|
+
abi extends Abi,
|
|
21
|
+
functions = Extract<abi[number], { type: "function" }>,
|
|
22
|
+
> = [functions] extends [never] ? AbiFunction : functions;
|
|
23
|
+
|
|
24
|
+
/** Return the abi event given the abi and compact signature. */
|
|
25
|
+
export type ParseAbiEvent<
|
|
26
|
+
abi extends Abi,
|
|
27
|
+
signature extends string,
|
|
28
|
+
///
|
|
29
|
+
abiEvents extends AbiEvent = ExtractAbiEvents<abi>,
|
|
30
|
+
noOverloadEvent = Extract<abiEvents, { name: signature }>,
|
|
31
|
+
overloadEvent = Extract<abiEvents, ParseAbiItem<`event ${signature}`>>,
|
|
32
|
+
> = [noOverloadEvent] extends [never]
|
|
33
|
+
? [overloadEvent] extends [never]
|
|
34
|
+
? AbiEvent
|
|
35
|
+
: overloadEvent
|
|
36
|
+
: noOverloadEvent;
|
|
37
|
+
|
|
38
|
+
/** Return the abi function given the abi and compact signature. */
|
|
39
|
+
export type ParseAbiFunction<
|
|
40
|
+
abi extends Abi,
|
|
41
|
+
signature extends string,
|
|
42
|
+
///
|
|
43
|
+
abiFunctions extends AbiFunction = ExtractAbiFunctions<abi>,
|
|
44
|
+
noOverloadFunction = Extract<
|
|
45
|
+
abiFunctions,
|
|
46
|
+
{ name: signature extends `${infer _signature}()` ? _signature : never }
|
|
47
|
+
>,
|
|
48
|
+
overloadFunction = Extract<
|
|
49
|
+
abiFunctions,
|
|
50
|
+
ParseAbiItem<`function ${signature}`>
|
|
51
|
+
>,
|
|
52
|
+
> = [overloadFunction] extends [never]
|
|
53
|
+
? [noOverloadFunction] extends [never]
|
|
54
|
+
? AbiFunction
|
|
55
|
+
: noOverloadFunction
|
|
56
|
+
: overloadFunction;
|
|
57
|
+
|
|
58
|
+
/** Return the compact signature given the abi and abi event. */
|
|
59
|
+
export type FormatAbiEvent<
|
|
60
|
+
abi extends Abi,
|
|
61
|
+
event extends AbiEvent,
|
|
62
|
+
///
|
|
63
|
+
abiEvents extends AbiEvent = ExtractAbiEvents<abi>,
|
|
64
|
+
matchingNameEvents extends AbiEvent = Extract<
|
|
65
|
+
abiEvents,
|
|
66
|
+
{ name: event["name"] }
|
|
67
|
+
>,
|
|
68
|
+
> = [matchingNameEvents] extends [never]
|
|
69
|
+
? Abi extends abi
|
|
70
|
+
? event["name"]
|
|
71
|
+
: never
|
|
72
|
+
: [Exclude<matchingNameEvents, event>] extends [never]
|
|
73
|
+
? event["name"]
|
|
74
|
+
: FormatAbiItem<event> extends `event ${infer signature}`
|
|
75
|
+
? signature
|
|
76
|
+
: never;
|
|
77
|
+
|
|
78
|
+
/** Return the compact signature given the abi and abi function. */
|
|
79
|
+
export type FormatAbiFunction<
|
|
80
|
+
abi extends Abi,
|
|
81
|
+
_function extends AbiFunction,
|
|
82
|
+
///
|
|
83
|
+
abiFunctions extends AbiFunction = ExtractAbiFunctions<abi>,
|
|
84
|
+
matchingNameFunctions extends AbiFunction = Extract<
|
|
85
|
+
abiFunctions,
|
|
86
|
+
{ name: _function["name"] }
|
|
87
|
+
>,
|
|
88
|
+
> = [matchingNameFunctions] extends [never]
|
|
89
|
+
? Abi extends abi
|
|
90
|
+
? `${_function["name"]}()`
|
|
91
|
+
: never
|
|
92
|
+
: [Exclude<matchingNameFunctions, _function>] extends [never]
|
|
93
|
+
? `${_function["name"]}()`
|
|
94
|
+
: FormatAbiItem<_function> extends `function ${infer signature}`
|
|
95
|
+
? signature
|
|
96
|
+
: never;
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Return an union of safe event names that handle event overriding.
|
|
100
|
+
*/
|
|
101
|
+
export type SafeEventNames<
|
|
102
|
+
abi extends Abi,
|
|
103
|
+
///
|
|
104
|
+
abiEvents extends AbiEvent = ExtractAbiEvents<abi>,
|
|
105
|
+
> = abiEvents extends abiEvents ? FormatAbiEvent<abi, abiEvents> : never;
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Return an union of safe function names that handle function overriding.
|
|
109
|
+
*/
|
|
110
|
+
export type SafeFunctionNames<
|
|
111
|
+
abi extends Abi,
|
|
112
|
+
///
|
|
113
|
+
abiFunctions extends AbiFunction = ExtractAbiFunctions<abi>,
|
|
114
|
+
> = abiFunctions extends abiFunctions
|
|
115
|
+
? FormatAbiFunction<abi, abiFunctions>
|
|
116
|
+
: never;
|
|
117
|
+
|
|
118
|
+
export type FormatEventArgs<
|
|
119
|
+
abi extends Abi,
|
|
120
|
+
signature extends string,
|
|
121
|
+
> = GetEventArgs<
|
|
122
|
+
Abi,
|
|
123
|
+
string,
|
|
124
|
+
{
|
|
125
|
+
EnableUnion: false;
|
|
126
|
+
IndexedOnly: false;
|
|
127
|
+
Required: true;
|
|
128
|
+
},
|
|
129
|
+
ParseAbiEvent<abi, signature>
|
|
130
|
+
>;
|
|
131
|
+
|
|
132
|
+
export type FormatFunctionArgs<
|
|
133
|
+
abi extends Abi,
|
|
134
|
+
signature extends string,
|
|
135
|
+
///
|
|
136
|
+
args = AbiParametersToPrimitiveTypes<
|
|
137
|
+
ParseAbiFunction<abi, signature>["inputs"]
|
|
138
|
+
>,
|
|
139
|
+
> = readonly [] extends args ? never : args;
|
|
140
|
+
|
|
141
|
+
export type FormatFunctionResult<
|
|
142
|
+
abi extends Abi,
|
|
143
|
+
signature extends string,
|
|
144
|
+
///
|
|
145
|
+
result = AbiParametersToPrimitiveTypes<
|
|
146
|
+
ParseAbiFunction<abi, signature>["outputs"]
|
|
147
|
+
>,
|
|
148
|
+
> = readonly [] extends result
|
|
149
|
+
? never
|
|
150
|
+
: result extends readonly [unknown]
|
|
151
|
+
? result[0]
|
|
152
|
+
: result;
|