@hugomrdias/foxer 0.1.9 → 0.1.11
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 +16 -0
- package/README.md +71 -1
- package/dist/config/env.d.ts +1 -1
- package/dist/config/env.d.ts.map +1 -1
- package/dist/config/env.js +2 -2
- package/dist/config/env.js.map +1 -1
- package/dist/db/actions/blocks.d.ts +9 -6
- package/dist/db/actions/blocks.d.ts.map +1 -1
- package/dist/db/actions/blocks.js +39 -43
- package/dist/db/actions/blocks.js.map +1 -1
- package/dist/db/client.d.ts +1 -1
- package/dist/db/client.d.ts.map +1 -1
- package/dist/db/client.js +5 -1
- package/dist/db/client.js.map +1 -1
- package/dist/db/column-types.d.ts +2 -2
- package/dist/db/column-types.d.ts.map +1 -1
- package/dist/db/column-types.js +11 -3
- package/dist/db/column-types.js.map +1 -1
- package/dist/db/schema/blocks.d.ts +16 -16
- package/dist/db/schema/index.d.ts +44 -44
- package/dist/db/schema/transactions.d.ts +6 -6
- package/dist/db/schema/transactions.d.ts.map +1 -1
- package/dist/db/schema/transactions.js +3 -1
- package/dist/db/schema/transactions.js.map +1 -1
- package/dist/hooks/registry.d.ts +3 -3
- package/dist/hooks/registry.d.ts.map +1 -1
- package/dist/indexer/backfill.d.ts.map +1 -1
- package/dist/indexer/backfill.js +19 -12
- package/dist/indexer/backfill.js.map +1 -1
- package/dist/indexer/process-block.d.ts +4 -4
- package/dist/indexer/process-block.d.ts.map +1 -1
- package/dist/indexer/process-block.js +4 -29
- package/dist/indexer/process-block.js.map +1 -1
- package/dist/indexer/queue-block.d.ts.map +1 -1
- package/dist/indexer/queue-block.js +19 -1
- package/dist/indexer/queue-block.js.map +1 -1
- package/dist/indexer/reorg.d.ts +2 -2
- package/dist/indexer/reorg.d.ts.map +1 -1
- package/dist/rpc/get-logs.js +1 -1
- package/dist/rpc/get-logs.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +11 -9
- package/src/config/env.ts +2 -2
- package/src/db/actions/blocks.ts +51 -51
- package/src/db/client.ts +5 -1
- package/src/db/column-types.ts +17 -6
- package/src/db/schema/transactions.ts +3 -1
- package/src/hooks/registry.ts +3 -3
- package/src/indexer/backfill.ts +28 -10
- package/src/indexer/process-block.ts +10 -39
- package/src/indexer/queue-block.ts +24 -1
- package/src/indexer/reorg.ts +2 -2
- package/src/rpc/get-logs.ts +1 -1
- package/src/types.ts +2 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.1.11](https://github.com/hugomrdias/foxer/compare/foxer-v0.1.10...foxer-v0.1.11) (2026-03-23)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* update foxer configuration and environment handling ([64df052](https://github.com/hugomrdias/foxer/commit/64df052eace280a5074be4763f50871d74456e76))
|
|
9
|
+
|
|
10
|
+
## [0.1.10](https://github.com/hugomrdias/foxer/compare/foxer-v0.1.9...foxer-v0.1.10) (2026-03-23)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* update block and transaction handling in the database actions ([8d7df5e](https://github.com/hugomrdias/foxer/commit/8d7df5e7babdb0277d74a19360a16e2158e6469c))
|
|
16
|
+
* update dependencies and configuration ([9335f07](https://github.com/hugomrdias/foxer/commit/9335f07ea4df9f8f378ceac4a2c4f9f4d6c530fe))
|
|
17
|
+
* update dependencies and improve bytea handling in database ([1bff003](https://github.com/hugomrdias/foxer/commit/1bff003c6f21ffc6a22ad79cd32df6113e11bce8))
|
|
18
|
+
|
|
3
19
|
## [0.1.9](https://github.com/hugomrdias/foxer/compare/foxer-v0.1.8...foxer-v0.1.9) (2026-03-16)
|
|
4
20
|
|
|
5
21
|
|
package/README.md
CHANGED
|
@@ -44,6 +44,7 @@ npx @hugomrdias/foxer create my-foxer-app --template app
|
|
|
44
44
|
Create a `foxer.config.ts` file in your project root:
|
|
45
45
|
|
|
46
46
|
```ts
|
|
47
|
+
import { calibration } from '@filoz/synapse-core/chains'
|
|
47
48
|
import { createConfig } from '@hugomrdias/foxer'
|
|
48
49
|
import { http } from 'viem'
|
|
49
50
|
|
|
@@ -51,7 +52,7 @@ export const config = createConfig({
|
|
|
51
52
|
client: {
|
|
52
53
|
transport: http(process.env.RPC_URL),
|
|
53
54
|
realtimeTransport: http(process.env.RPC_LIVE_URL),
|
|
54
|
-
chain:
|
|
55
|
+
chain: calibration,
|
|
55
56
|
},
|
|
56
57
|
contracts: {
|
|
57
58
|
// contract definitions keyed by name
|
|
@@ -92,6 +93,75 @@ foxer dev --config ./foxer.config.ts
|
|
|
92
93
|
|
|
93
94
|
The dev server also looks for `.env.local` in the project root.
|
|
94
95
|
|
|
96
|
+
## Postgres recommendations
|
|
97
|
+
|
|
98
|
+
Foxer supports both `pglite` and Postgres, but production deployments should use Postgres when you need higher write throughput, concurrent reads, or live SQL subscriptions.
|
|
99
|
+
|
|
100
|
+
Live SQL requires logical replication to be enabled because Foxer creates a publication and subscribes to table changes at runtime.
|
|
101
|
+
|
|
102
|
+
Recommended Postgres settings for a dedicated Foxer instance:
|
|
103
|
+
|
|
104
|
+
```conf
|
|
105
|
+
wal_level = logical
|
|
106
|
+
max_wal_senders = 8
|
|
107
|
+
max_replication_slots = 8
|
|
108
|
+
wal_compression = on
|
|
109
|
+
checkpoint_timeout = 15min
|
|
110
|
+
checkpoint_completion_target = 0.9
|
|
111
|
+
max_wal_size = 8GB
|
|
112
|
+
min_wal_size = 1GB
|
|
113
|
+
random_page_cost = 1.1
|
|
114
|
+
effective_io_concurrency = 200
|
|
115
|
+
default_statistics_target = 200
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
If you treat the chain as the source of truth and can tolerate replaying the most recent blocks after a crash, `synchronous_commit = off` is a valid ingest-speed optimization.
|
|
119
|
+
|
|
120
|
+
Memory settings depend on the machine. A good starting point is:
|
|
121
|
+
|
|
122
|
+
- `shared_buffers`: about 25% of RAM
|
|
123
|
+
- `effective_cache_size`: about 60-75% of RAM
|
|
124
|
+
- `work_mem`: `16MB`
|
|
125
|
+
- `maintenance_work_mem`: `512MB`
|
|
126
|
+
|
|
127
|
+
Foxer now defaults the Node Postgres pool to:
|
|
128
|
+
|
|
129
|
+
- `application_name: 'foxer'`
|
|
130
|
+
- `max: 10`
|
|
131
|
+
- `connectionTimeoutMillis: 5000`
|
|
132
|
+
- `idleTimeoutMillis: 30000`
|
|
133
|
+
|
|
134
|
+
You can still override those defaults with `database.options` in `foxer.config.ts`:
|
|
135
|
+
|
|
136
|
+
```ts
|
|
137
|
+
import { createConfig } from '@hugomrdias/foxer'
|
|
138
|
+
import { http } from 'viem'
|
|
139
|
+
|
|
140
|
+
export const config = createConfig({
|
|
141
|
+
client: {
|
|
142
|
+
transport: http(process.env.RPC_URL),
|
|
143
|
+
realtimeTransport: http(process.env.RPC_LIVE_URL),
|
|
144
|
+
chain: /* your viem chain */,
|
|
145
|
+
},
|
|
146
|
+
database: {
|
|
147
|
+
driver: 'postgres',
|
|
148
|
+
url: process.env.DATABASE_URL,
|
|
149
|
+
options: {
|
|
150
|
+
max: 20,
|
|
151
|
+
idleTimeoutMillis: 60_000,
|
|
152
|
+
},
|
|
153
|
+
},
|
|
154
|
+
contracts: {},
|
|
155
|
+
hooks: ({ registry }) => {
|
|
156
|
+
// register event handlers
|
|
157
|
+
},
|
|
158
|
+
hono: ({ db, logger }) => {
|
|
159
|
+
// return your Hono app
|
|
160
|
+
},
|
|
161
|
+
schema: {},
|
|
162
|
+
})
|
|
163
|
+
```
|
|
164
|
+
|
|
95
165
|
## Example
|
|
96
166
|
|
|
97
167
|
```ts
|
package/dist/config/env.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ declare const envSchema: z.ZodObject<{
|
|
|
16
16
|
json: "json";
|
|
17
17
|
}>>;
|
|
18
18
|
}, z.core.$strip>;
|
|
19
|
-
export declare function createEnv(
|
|
19
|
+
export declare function createEnv(_logger: Logger): {
|
|
20
20
|
LOG_LEVEL: "fatal" | "error" | "warn" | "info" | "debug" | "trace";
|
|
21
21
|
LOG_MODE: "pretty" | "json";
|
|
22
22
|
DATABASE_URL?: string | undefined;
|
package/dist/config/env.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAO7C,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAA;AAC3C,QAAA,MAAM,SAAS;;;;;;;;;;;;;;iBAMb,CAAA;AAEF,wBAAgB,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAO7C,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAA;AAC3C,QAAA,MAAM,SAAS;;;;;;;;;;;;;;iBAMb,CAAA;AAEF,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM;;;;EAUxC"}
|
package/dist/config/env.js
CHANGED
|
@@ -11,12 +11,12 @@ const envSchema = z.object({
|
|
|
11
11
|
.default('info'),
|
|
12
12
|
LOG_MODE: z.enum(['pretty', 'json']).default('pretty'),
|
|
13
13
|
});
|
|
14
|
-
export function createEnv(
|
|
14
|
+
export function createEnv(_logger) {
|
|
15
15
|
const parsed = envSchema.safeParse(process.env);
|
|
16
16
|
if (!parsed.success) {
|
|
17
17
|
throw new Error(`Failed to parse environment variables: \n ${z.prettifyError(parsed.error)}`);
|
|
18
18
|
}
|
|
19
|
-
logger.debug({ env: parsed.data }, 'env parsed')
|
|
19
|
+
// logger.debug({ env: parsed.data }, 'env parsed')
|
|
20
20
|
return parsed.data;
|
|
21
21
|
}
|
|
22
22
|
//# sourceMappingURL=env.js.map
|
package/dist/config/env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,MAAM,CAAC,MAAM,CAAC;IACZ,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,IAAI;CACZ,CAAC,CAAA;AAGF,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IACzB,YAAY,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,CAAC;SACT,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SAC1D,OAAO,CAAC,MAAM,CAAC;IAClB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;CACvD,CAAC,CAAA;AAEF,MAAM,UAAU,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,MAAM,CAAC,MAAM,CAAC;IACZ,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,IAAI;CACZ,CAAC,CAAA;AAGF,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IACzB,YAAY,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,CAAC;SACT,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SAC1D,OAAO,CAAC,MAAM,CAAC;IAClB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;CACvD,CAAC,CAAA;AAEF,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAE/C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,6CAA6C,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC7E,CAAA;IACH,CAAC;IACD,mDAAmD;IACnD,OAAO,MAAM,CAAC,IAAI,CAAA;AACpB,CAAC"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/** biome-ignore-all lint/style/noNonNullAssertion: its ok */
|
|
2
2
|
import { type PgAsyncTransaction, type PgQueryResultHKT } from 'drizzle-orm/pg-core';
|
|
3
|
-
import type { PublicClient } from 'viem';
|
|
4
|
-
import type {
|
|
5
|
-
import type { EncodedBlockWithTransactions } from '../../types.ts';
|
|
3
|
+
import type { Hash, PublicClient } from 'viem';
|
|
4
|
+
import type { BlocksMap, EncodedBlock, EncodedTransaction, TransactionsMap } from '../../types.ts';
|
|
6
5
|
import type { Logger } from '../../utils/logger.ts';
|
|
7
6
|
import type { Database } from '../client.ts';
|
|
8
7
|
import { type relations, schema } from '../schema/index.ts';
|
|
@@ -20,7 +19,8 @@ export declare function deleteBlocksFrom(db: Database, fromBlock: bigint): Promi
|
|
|
20
19
|
*/
|
|
21
20
|
export declare function cacheBlockAndTransactions(args: {
|
|
22
21
|
db: Database<typeof schema, typeof relations>;
|
|
23
|
-
|
|
22
|
+
blocks: EncodedBlock[];
|
|
23
|
+
transactions: EncodedTransaction[];
|
|
24
24
|
logger: Logger;
|
|
25
25
|
}): Promise<void>;
|
|
26
26
|
/**
|
|
@@ -33,12 +33,15 @@ export declare function cacheBlockAndTransactions(args: {
|
|
|
33
33
|
* @param args.client - The client instance
|
|
34
34
|
* @returns The blocks and their transactions
|
|
35
35
|
*/
|
|
36
|
-
export declare function getBlocksInRange(logger: Logger, db: Database<typeof schema, typeof relations>, blockNumbers: bigint[], client: PublicClient,
|
|
36
|
+
export declare function getBlocksInRange(logger: Logger, db: Database<typeof schema, typeof relations>, blockNumbers: bigint[], client: PublicClient, logsTxs: Hash[]): Promise<{
|
|
37
|
+
blocks: BlocksMap;
|
|
38
|
+
transactions: TransactionsMap;
|
|
39
|
+
}>;
|
|
37
40
|
/**
|
|
38
41
|
* Inserts blocks in chunks to avoid query parameter limit.
|
|
39
42
|
*/
|
|
40
43
|
export declare function insertBlocksInChunks(args: {
|
|
41
44
|
db: PgAsyncTransaction<PgQueryResultHKT, typeof schema>;
|
|
42
|
-
blocks:
|
|
45
|
+
blocks: EncodedBlock[];
|
|
43
46
|
}): Promise<void>;
|
|
44
47
|
//# sourceMappingURL=blocks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../../src/db/actions/blocks.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAG7D,OAAO,EAEL,KAAK,kBAAkB,EAEvB,KAAK,gBAAgB,EAEtB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../../src/db/actions/blocks.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAG7D,OAAO,EAEL,KAAK,kBAAkB,EAEvB,KAAK,gBAAgB,EAEtB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAI9C,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EACZ,kBAAkB,EAClB,eAAe,EAChB,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAEnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAG3D;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAef;AAmBD;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAAC,IAAI,EAAE;IACpD,EAAE,EAAE,QAAQ,CAAC,OAAO,MAAM,EAAE,OAAO,SAAS,CAAC,CAAA;IAC7C,MAAM,EAAE,YAAY,EAAE,CAAA;IACtB,YAAY,EAAE,kBAAkB,EAAE,CAAA;IAClC,MAAM,EAAE,MAAM,CAAA;CACf,GAAG,OAAO,CAAC,IAAI,CAAC,CAahB;AAED;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,QAAQ,CAAC,OAAO,MAAM,EAAE,OAAO,SAAS,CAAC,EAC7C,YAAY,EAAE,MAAM,EAAE,EACtB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,IAAI,EAAE,GACd,OAAO,CAAC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,YAAY,EAAE,eAAe,CAAA;CAAE,CAAC,CA6E/D;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC/C,EAAE,EAAE,kBAAkB,CAAC,gBAAgB,EAAE,OAAO,MAAM,CAAC,CAAA;IACvD,MAAM,EAAE,YAAY,EAAE,CAAA;CACvB,GAAG,OAAO,CAAC,IAAI,CAAC,CAchB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** biome-ignore-all lint/style/noNonNullAssertion: its ok */
|
|
2
|
-
import { gte } from 'drizzle-orm';
|
|
2
|
+
import { and, gte, inArray } from 'drizzle-orm';
|
|
3
3
|
import { getTableConfig, } from 'drizzle-orm/pg-core';
|
|
4
4
|
import { MAX_QUERY_PARAMS } from "../../contants.js";
|
|
5
5
|
import { safeGetBlock } from "../../rpc/get-block.js";
|
|
@@ -42,15 +42,15 @@ function getTablesWithBlockNumberColumn(fullSchema) {
|
|
|
42
42
|
* @returns The cached block and transactions
|
|
43
43
|
*/
|
|
44
44
|
export async function cacheBlockAndTransactions(args) {
|
|
45
|
-
const { db,
|
|
45
|
+
const { db, blocks, transactions } = args;
|
|
46
46
|
await db.transaction(async (tx) => {
|
|
47
47
|
await insertBlocksInChunks({
|
|
48
48
|
db: tx,
|
|
49
|
-
blocks
|
|
49
|
+
blocks,
|
|
50
50
|
});
|
|
51
51
|
await insertTransactionsInChunks({
|
|
52
52
|
db: tx,
|
|
53
|
-
transactions
|
|
53
|
+
transactions,
|
|
54
54
|
});
|
|
55
55
|
});
|
|
56
56
|
}
|
|
@@ -64,7 +64,7 @@ export async function cacheBlockAndTransactions(args) {
|
|
|
64
64
|
* @param args.client - The client instance
|
|
65
65
|
* @returns The blocks and their transactions
|
|
66
66
|
*/
|
|
67
|
-
export async function getBlocksInRange(logger, db, blockNumbers, client,
|
|
67
|
+
export async function getBlocksInRange(logger, db, blockNumbers, client, logsTxs) {
|
|
68
68
|
const endClock = startClock();
|
|
69
69
|
const firstBlockNumber = blockNumbers[0];
|
|
70
70
|
const lastBlockNumber = blockNumbers[blockNumbers.length - 1];
|
|
@@ -73,32 +73,27 @@ export async function getBlocksInRange(logger, db, blockNumbers, client, contrac
|
|
|
73
73
|
// lastBlockNumber,
|
|
74
74
|
// contractAddresses: contracts.addresses,
|
|
75
75
|
// })
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
{
|
|
84
|
-
to: {
|
|
85
|
-
in: contracts.addresses,
|
|
86
|
-
},
|
|
87
|
-
},
|
|
88
|
-
],
|
|
89
|
-
},
|
|
76
|
+
const [blocks, txs] = await Promise.all([
|
|
77
|
+
db.query.blocks.findMany({
|
|
78
|
+
where: {
|
|
79
|
+
AND: [
|
|
80
|
+
{ number: { gte: firstBlockNumber } },
|
|
81
|
+
{ number: { lte: lastBlockNumber } },
|
|
82
|
+
],
|
|
90
83
|
},
|
|
91
|
-
},
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
84
|
+
}),
|
|
85
|
+
db
|
|
86
|
+
.select()
|
|
87
|
+
.from(schema.transactions)
|
|
88
|
+
.where(and(inArray(schema.transactions.hash, logsTxs))),
|
|
89
|
+
]);
|
|
90
|
+
const transactionByHash = new Map();
|
|
91
|
+
for (const tx of txs) {
|
|
92
|
+
transactionByHash.set(tx.hash, tx);
|
|
93
|
+
}
|
|
99
94
|
const blocksByNumber = new Map();
|
|
100
95
|
const missing = new Set(blockNumbers);
|
|
101
|
-
for (const block of
|
|
96
|
+
for (const block of blocks) {
|
|
102
97
|
blocksByNumber.set(block.number, block);
|
|
103
98
|
missing.delete(block.number);
|
|
104
99
|
}
|
|
@@ -107,29 +102,30 @@ export async function getBlocksInRange(logger, db, blockNumbers, client, contrac
|
|
|
107
102
|
const newTransactions = [];
|
|
108
103
|
await Promise.all(missingBlockNumbers.map(async (blockNumber) => {
|
|
109
104
|
const block = await safeGetBlock({ client, blockNumber, db });
|
|
110
|
-
const transactions = block.transactions;
|
|
111
105
|
blocksByNumber.set(blockNumber, block);
|
|
112
|
-
|
|
106
|
+
const { transactions, ..._block } = block;
|
|
107
|
+
newBlocks.push(_block);
|
|
113
108
|
if (transactions.length > 0) {
|
|
114
109
|
newTransactions.push(...transactions);
|
|
115
110
|
}
|
|
111
|
+
for (const tx of transactions) {
|
|
112
|
+
transactionByHash.set(tx.hash, tx);
|
|
113
|
+
}
|
|
116
114
|
}));
|
|
117
|
-
await
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
await insertTransactionsInChunks({
|
|
123
|
-
db: tx,
|
|
124
|
-
transactions: newTransactions,
|
|
125
|
-
});
|
|
115
|
+
await cacheBlockAndTransactions({
|
|
116
|
+
db,
|
|
117
|
+
blocks: newBlocks,
|
|
118
|
+
transactions: newTransactions,
|
|
119
|
+
logger,
|
|
126
120
|
});
|
|
127
121
|
logger.trace({
|
|
128
|
-
blocks:
|
|
129
|
-
|
|
122
|
+
blocks: blocks.length,
|
|
123
|
+
txs: txs.length,
|
|
124
|
+
newBlocks: newBlocks.length,
|
|
125
|
+
newTxs: newTransactions.length,
|
|
130
126
|
duration: endClock(),
|
|
131
|
-
}, 'get blocks');
|
|
132
|
-
return blocksByNumber;
|
|
127
|
+
}, 'get blocks and txs');
|
|
128
|
+
return { blocks: blocksByNumber, transactions: transactionByHash };
|
|
133
129
|
}
|
|
134
130
|
/**
|
|
135
131
|
* Inserts blocks in chunks to avoid query parameter limit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../../src/db/actions/blocks.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAE7D,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../../src/db/actions/blocks.ts"],"names":[],"mappings":"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"}
|
package/dist/db/client.d.ts
CHANGED
|
@@ -304,7 +304,6 @@ declare function generatePrepared(db: Omit<Database<typeof schema, typeof relati
|
|
|
304
304
|
extraData: `0x${string}`;
|
|
305
305
|
transactions: {
|
|
306
306
|
input: `0x${string}`;
|
|
307
|
-
s: `0x${string}`;
|
|
308
307
|
hash: `0x${string}`;
|
|
309
308
|
nonce: number;
|
|
310
309
|
blockNumber: bigint;
|
|
@@ -314,6 +313,7 @@ declare function generatePrepared(db: Omit<Database<typeof schema, typeof relati
|
|
|
314
313
|
to: `0x${string}` | null;
|
|
315
314
|
value: bigint;
|
|
316
315
|
r: `0x${string}`;
|
|
316
|
+
s: `0x${string}`;
|
|
317
317
|
v: bigint;
|
|
318
318
|
type: "legacy" | "eip1559" | "eip2930" | "eip4844" | "eip7702";
|
|
319
319
|
gas: bigint;
|
package/dist/db/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAE7C,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACzE,OAAO,EAAE,IAAI,EAAmB,MAAM,IAAI,CAAA;AAE1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1D,MAAM,MAAM,QAAQ,CAClB,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjE,UAAU,SAAS,YAAY,GAAG,cAAc,IAE9C,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG;IACrC,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAA;CAC/C,CAAC,GACF,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG;IACrC,OAAO,EAAE,IAAI,CAAA;IACb,SAAS,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAA;CAC/C,CAAC,CAAA;AAEN,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAA;AAE5C,MAAM,MAAM,eAAe,CACzB,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjE,UAAU,SAAS,YAAY,GAAG,cAAc,IAE9C;IACE,EAAE,EAAE,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG;QACxC,OAAO,EAAE,IAAI,CAAA;QACb,SAAS,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAA;KAC/C,CAAA;IACD,MAAM,EAAE,UAAU,CAAA;IAClB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1B,GACD;IACE,EAAE,EAAE,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG;QACxC,OAAO,EAAE,MAAM,CAAA;QACf,SAAS,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAA;KAC/C,CAAA;IACD,MAAM,EAAE,QAAQ,CAAA;IAChB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1B,CAAA;AAEL;;GAEG;AACH,wBAAgB,cAAc,CAC5B,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjE,UAAU,SAAS,YAAY,GAAG,cAAc,EAChD,EACA,GAAG,EACH,MAAM,EACN,MAAM,EACN,SAAS,GACV,EAAE;IACD,GAAG,EAAE,GAAG,CAAA;IACR,MAAM,CAAC,EAAE,cAAc,CAAA;IACvB,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,UAAU,CAAA;CACtB,GAAG,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAE7C,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACzE,OAAO,EAAE,IAAI,EAAmB,MAAM,IAAI,CAAA;AAE1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1D,MAAM,MAAM,QAAQ,CAClB,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjE,UAAU,SAAS,YAAY,GAAG,cAAc,IAE9C,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG;IACrC,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAA;CAC/C,CAAC,GACF,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG;IACrC,OAAO,EAAE,IAAI,CAAA;IACb,SAAS,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAA;CAC/C,CAAC,CAAA;AAEN,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAA;AAE5C,MAAM,MAAM,eAAe,CACzB,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjE,UAAU,SAAS,YAAY,GAAG,cAAc,IAE9C;IACE,EAAE,EAAE,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG;QACxC,OAAO,EAAE,IAAI,CAAA;QACb,SAAS,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAA;KAC/C,CAAA;IACD,MAAM,EAAE,UAAU,CAAA;IAClB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1B,GACD;IACE,EAAE,EAAE,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG;QACxC,OAAO,EAAE,MAAM,CAAA;QACf,SAAS,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAA;KAC/C,CAAA;IACD,MAAM,EAAE,QAAQ,CAAA;IAChB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1B,CAAA;AAEL;;GAEG;AACH,wBAAgB,cAAc,CAC5B,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjE,UAAU,SAAS,YAAY,GAAG,cAAc,EAChD,EACA,GAAG,EACH,MAAM,EACN,MAAM,EACN,SAAS,GACV,EAAE;IACD,GAAG,EAAE,GAAG,CAAA;IACR,MAAM,CAAC,EAAE,cAAc,CAAA;IACvB,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,UAAU,CAAA;CACtB,GAAG,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC,CAwEvC;AAED,iBAAS,gBAAgB,CACvB,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,MAAM,EAAE,OAAO,SAAS,CAAC,EAAE,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgDjE"}
|
package/dist/db/client.js
CHANGED
|
@@ -23,8 +23,12 @@ export function createDatabase({ env, config, schema, relations, }) {
|
|
|
23
23
|
// Postgres
|
|
24
24
|
if (driver === 'postgres' && url) {
|
|
25
25
|
const pool = new Pool({
|
|
26
|
-
|
|
26
|
+
application_name: 'foxer',
|
|
27
|
+
connectionTimeoutMillis: 5_000,
|
|
28
|
+
idleTimeoutMillis: 30_000,
|
|
29
|
+
max: 10,
|
|
27
30
|
connectionString: url,
|
|
31
|
+
...options,
|
|
28
32
|
});
|
|
29
33
|
const db = drizzleNodePostgres({
|
|
30
34
|
client: pool,
|
package/dist/db/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EACL,OAAO,IAAI,mBAAmB,GAE/B,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,OAAO,IAAI,aAAa,GAEzB,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,IAAI,EAAmB,MAAM,IAAI,CAAA;AAI1C,OAAO,EAAkB,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAsC1D;;GAEG;AACH,MAAM,UAAU,cAAc,CAG5B,EACA,GAAG,EACH,MAAM,EACN,MAAM,EACN,SAAS,GAMV;IACC,IAAI,MAAM,GAAW,QAAQ,CAAA;IAC7B,IAAI,GAAuB,CAAA;IAC3B,IAAI,OAA+B,CAAA;IAEnC,IAAI,GAAG,CAAC,YAAY,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;QAC7D,MAAM,GAAG,UAAU,CAAA;QACnB,GAAG,GAAG,GAAG,CAAC,YAAY,CAAA;IACxB,CAAC;SAAM,IAAI,MAAM,EAAE,MAAM,KAAK,UAAU,EAAE,CAAC;QACzC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;QACtB,GAAG,GAAG,MAAM,CAAC,GAAG,CAAA;QAChB,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;IAC1B,CAAC;IAED,WAAW;IACX,IAAI,MAAM,KAAK,UAAU,IAAI,GAAG,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC;YACpB,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -121,12 +121,12 @@ export declare const bytea: {
|
|
|
121
121
|
<TConfig extends Record<string, any>>(fieldConfig?: TConfig | undefined): import("drizzle-orm/pg-core").PgCustomColumnBuilder<{
|
|
122
122
|
dataType: "custom";
|
|
123
123
|
data: `0x${string}`;
|
|
124
|
-
driverParam:
|
|
124
|
+
driverParam: Uint8Array<ArrayBufferLike>;
|
|
125
125
|
}>;
|
|
126
126
|
(dbName: string, fieldConfig?: unknown): import("drizzle-orm/pg-core").PgCustomColumnBuilder<{
|
|
127
127
|
dataType: "custom";
|
|
128
128
|
data: `0x${string}`;
|
|
129
|
-
driverParam:
|
|
129
|
+
driverParam: Uint8Array<ArrayBufferLike>;
|
|
130
130
|
}>;
|
|
131
131
|
};
|
|
132
132
|
//# sourceMappingURL=column-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column-types.d.ts","sourceRoot":"","sources":["../../src/db/column-types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"column-types.d.ts","sourceRoot":"","sources":["../../src/db/column-types.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,SAAS;;;;;;;;;;;CAOpB,CAAA;AAEF,eAAO,MAAM,GAAG;;gBAGK,MAAM,GAAG,SAAS;;;;;;;gBAAlB,MAAM,GAAG,SAAS;;;;;;CAWrC,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,IAAI;;gBAGI,MAAM,GAAG,SAAS;;;;;;;gBAAlB,MAAM,GAAG,SAAS;;;;;;CAWrC,CAAA;AAEF,eAAO,MAAM,OAAO;;gBAGC,MAAM,GAAG,SAAS;;;;;;;gBAAlB,MAAM,GAAG,SAAS;;;;;;CAWrC,CAAA;AAEF;;;;GAIG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;CAOjB,CAAA;AAEF,eAAO,MAAM,OAAO;;;;;;;;;;;CAAY,CAAA;AAChC,eAAO,MAAM,MAAM;;;;;;;;;;;CAAY,CAAA;AAE/B,eAAO,MAAM,KAAK;;;;;;;;;;;CAOhB,CAAA;AAEF,eAAO,MAAM,KAAK;;;;;;;;;;;CAsBhB,CAAA"}
|
package/dist/db/column-types.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { customType } from 'drizzle-orm/pg-core';
|
|
2
|
+
import { hex as hexCodec } from 'iso-base/rfc4648';
|
|
2
3
|
import { stringify } from 'viem';
|
|
3
4
|
export const numeric78 = customType({
|
|
4
5
|
dataType() {
|
|
@@ -78,9 +79,16 @@ export const bytea = customType({
|
|
|
78
79
|
return Buffer.from(value.slice(2), 'hex');
|
|
79
80
|
},
|
|
80
81
|
fromDriver(value) {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
82
|
+
if (typeof value === 'string') {
|
|
83
|
+
return `0x${value.slice(2)}`;
|
|
84
|
+
}
|
|
85
|
+
if (value instanceof Buffer) {
|
|
86
|
+
return `0x${value.toString('hex')}`;
|
|
87
|
+
}
|
|
88
|
+
if (value instanceof Uint8Array) {
|
|
89
|
+
return `0x${hexCodec.encode(value)}`;
|
|
90
|
+
}
|
|
91
|
+
throw new Error('Invalid value');
|
|
84
92
|
},
|
|
85
93
|
});
|
|
86
94
|
//# sourceMappingURL=column-types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column-types.js","sourceRoot":"","sources":["../../src/db/column-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAqC,SAAS,EAAE,MAAM,MAAM,CAAA;AAEnE,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAuC;IACxE,QAAQ;QACN,OAAO,eAAe,CAAA;IACxB,CAAC;IACD,UAAU,CAAC,KAAa;QACtB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG,UAAU,CAI1B;IACD,QAAQ,CAAC,MAAM;QACb,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;YACnB,OAAO,WAAW,MAAM,CAAC,MAAM,GAAG,CAAA;QACpC,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,UAAU,CAAC,KAAa;QACtB,OAAO,KAAY,CAAA;IACrB,CAAC;CACF,CAAC,CAAA;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,UAAU,CAI3B;IACD,QAAQ,CAAC,MAAM;QACb,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;YACnB,OAAO,WAAW,MAAM,CAAC,MAAM,GAAG,CAAA;QACpC,CAAC;QACD,OAAO,aAAa,CAAA;IACtB,CAAC;IACD,UAAU,CAAC,KAAa;QACtB,OAAO,KAAa,CAAA;IACtB,CAAC;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,UAAU,CAI9B;IACD,QAAQ,CAAC,MAAM;QACb,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;YACnB,OAAO,WAAW,MAAM,CAAC,MAAM,GAAG,CAAA;QACpC,CAAC;QACD,OAAO,aAAa,CAAA;IACtB,CAAC;IACD,UAAU,CAAC,KAAa;QACtB,OAAO,KAAgB,CAAA;IACzB,CAAC;CACF,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAAuC;IACrE,QAAQ;QACN,OAAO,QAAQ,CAAA;IACjB,CAAC;IACD,UAAU,CAAC,KAAa;QACtB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAA;AAChC,MAAM,CAAC,MAAM,MAAM,GAAG,SAAS,CAAA;AAE/B,MAAM,CAAC,MAAM,KAAK,GAAG,UAAU,CAAwC;IACrE,QAAQ;QACN,OAAO,OAAO,CAAA;IAChB,CAAC;IACD,QAAQ,CAAC,KAAc;QACrB,OAAO,SAAS,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"column-types.js","sourceRoot":"","sources":["../../src/db/column-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -81,13 +81,13 @@ export declare const blocks: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
|
81
81
|
logsBloom: import("drizzle-orm/pg-core").PgBuildColumn<"blocks", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgCustomColumnBuilder<{
|
|
82
82
|
dataType: "custom";
|
|
83
83
|
data: `0x${string}`;
|
|
84
|
-
driverParam:
|
|
84
|
+
driverParam: Uint8Array<ArrayBufferLike>;
|
|
85
85
|
}>>, {
|
|
86
86
|
name: string;
|
|
87
87
|
tableName: "blocks";
|
|
88
88
|
dataType: "custom";
|
|
89
89
|
data: `0x${string}`;
|
|
90
|
-
driverParam:
|
|
90
|
+
driverParam: Uint8Array<ArrayBufferLike>;
|
|
91
91
|
notNull: true;
|
|
92
92
|
hasDefault: false;
|
|
93
93
|
isPrimaryKey: false;
|
|
@@ -176,13 +176,13 @@ export declare const blocks: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
|
176
176
|
nonce: import("drizzle-orm/pg-core").PgBuildColumn<"blocks", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgCustomColumnBuilder<{
|
|
177
177
|
dataType: "custom";
|
|
178
178
|
data: `0x${string}`;
|
|
179
|
-
driverParam:
|
|
179
|
+
driverParam: Uint8Array<ArrayBufferLike>;
|
|
180
180
|
}>>, {
|
|
181
181
|
name: string;
|
|
182
182
|
tableName: "blocks";
|
|
183
183
|
dataType: "custom";
|
|
184
184
|
data: `0x${string}`;
|
|
185
|
-
driverParam:
|
|
185
|
+
driverParam: Uint8Array<ArrayBufferLike>;
|
|
186
186
|
notNull: true;
|
|
187
187
|
hasDefault: false;
|
|
188
188
|
isPrimaryKey: false;
|
|
@@ -195,13 +195,13 @@ export declare const blocks: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
|
195
195
|
mixHash: import("drizzle-orm/pg-core").PgBuildColumn<"blocks", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgCustomColumnBuilder<{
|
|
196
196
|
dataType: "custom";
|
|
197
197
|
data: `0x${string}`;
|
|
198
|
-
driverParam:
|
|
198
|
+
driverParam: Uint8Array<ArrayBufferLike>;
|
|
199
199
|
}>>, {
|
|
200
200
|
name: string;
|
|
201
201
|
tableName: "blocks";
|
|
202
202
|
dataType: "custom";
|
|
203
203
|
data: `0x${string}`;
|
|
204
|
-
driverParam:
|
|
204
|
+
driverParam: Uint8Array<ArrayBufferLike>;
|
|
205
205
|
notNull: true;
|
|
206
206
|
hasDefault: false;
|
|
207
207
|
isPrimaryKey: false;
|
|
@@ -214,13 +214,13 @@ export declare const blocks: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
|
214
214
|
stateRoot: import("drizzle-orm/pg-core").PgBuildColumn<"blocks", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgCustomColumnBuilder<{
|
|
215
215
|
dataType: "custom";
|
|
216
216
|
data: `0x${string}`;
|
|
217
|
-
driverParam:
|
|
217
|
+
driverParam: Uint8Array<ArrayBufferLike>;
|
|
218
218
|
}>>, {
|
|
219
219
|
name: string;
|
|
220
220
|
tableName: "blocks";
|
|
221
221
|
dataType: "custom";
|
|
222
222
|
data: `0x${string}`;
|
|
223
|
-
driverParam:
|
|
223
|
+
driverParam: Uint8Array<ArrayBufferLike>;
|
|
224
224
|
notNull: true;
|
|
225
225
|
hasDefault: false;
|
|
226
226
|
isPrimaryKey: false;
|
|
@@ -233,13 +233,13 @@ export declare const blocks: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
|
233
233
|
receiptsRoot: import("drizzle-orm/pg-core").PgBuildColumn<"blocks", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgCustomColumnBuilder<{
|
|
234
234
|
dataType: "custom";
|
|
235
235
|
data: `0x${string}`;
|
|
236
|
-
driverParam:
|
|
236
|
+
driverParam: Uint8Array<ArrayBufferLike>;
|
|
237
237
|
}>>, {
|
|
238
238
|
name: string;
|
|
239
239
|
tableName: "blocks";
|
|
240
240
|
dataType: "custom";
|
|
241
241
|
data: `0x${string}`;
|
|
242
|
-
driverParam:
|
|
242
|
+
driverParam: Uint8Array<ArrayBufferLike>;
|
|
243
243
|
notNull: true;
|
|
244
244
|
hasDefault: false;
|
|
245
245
|
isPrimaryKey: false;
|
|
@@ -252,13 +252,13 @@ export declare const blocks: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
|
252
252
|
transactionsRoot: import("drizzle-orm/pg-core").PgBuildColumn<"blocks", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgCustomColumnBuilder<{
|
|
253
253
|
dataType: "custom";
|
|
254
254
|
data: `0x${string}`;
|
|
255
|
-
driverParam:
|
|
255
|
+
driverParam: Uint8Array<ArrayBufferLike>;
|
|
256
256
|
}>>, {
|
|
257
257
|
name: string;
|
|
258
258
|
tableName: "blocks";
|
|
259
259
|
dataType: "custom";
|
|
260
260
|
data: `0x${string}`;
|
|
261
|
-
driverParam:
|
|
261
|
+
driverParam: Uint8Array<ArrayBufferLike>;
|
|
262
262
|
notNull: true;
|
|
263
263
|
hasDefault: false;
|
|
264
264
|
isPrimaryKey: false;
|
|
@@ -271,13 +271,13 @@ export declare const blocks: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
|
271
271
|
sha3Uncles: import("drizzle-orm/pg-core").PgBuildColumn<"blocks", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgCustomColumnBuilder<{
|
|
272
272
|
dataType: "custom";
|
|
273
273
|
data: `0x${string}`;
|
|
274
|
-
driverParam:
|
|
274
|
+
driverParam: Uint8Array<ArrayBufferLike>;
|
|
275
275
|
}>>, {
|
|
276
276
|
name: string;
|
|
277
277
|
tableName: "blocks";
|
|
278
278
|
dataType: "custom";
|
|
279
279
|
data: `0x${string}`;
|
|
280
|
-
driverParam:
|
|
280
|
+
driverParam: Uint8Array<ArrayBufferLike>;
|
|
281
281
|
notNull: true;
|
|
282
282
|
hasDefault: false;
|
|
283
283
|
isPrimaryKey: false;
|
|
@@ -347,13 +347,13 @@ export declare const blocks: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
|
347
347
|
extraData: import("drizzle-orm/pg-core").PgBuildColumn<"blocks", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgCustomColumnBuilder<{
|
|
348
348
|
dataType: "custom";
|
|
349
349
|
data: `0x${string}`;
|
|
350
|
-
driverParam:
|
|
350
|
+
driverParam: Uint8Array<ArrayBufferLike>;
|
|
351
351
|
}>>, {
|
|
352
352
|
name: string;
|
|
353
353
|
tableName: "blocks";
|
|
354
354
|
dataType: "custom";
|
|
355
355
|
data: `0x${string}`;
|
|
356
|
-
driverParam:
|
|
356
|
+
driverParam: Uint8Array<ArrayBufferLike>;
|
|
357
357
|
notNull: true;
|
|
358
358
|
hasDefault: false;
|
|
359
359
|
isPrimaryKey: false;
|