@hugomrdias/foxer 0.1.9 → 0.2.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.
Files changed (67) hide show
  1. package/.turbo/turbo-build.log +1 -0
  2. package/.turbo/turbo-check.log +2 -0
  3. package/CHANGELOG.md +30 -0
  4. package/README.md +71 -2
  5. package/dist/bin/create.d.ts.map +1 -1
  6. package/dist/bin/create.js +9 -1
  7. package/dist/bin/create.js.map +1 -1
  8. package/dist/bin/index.js +0 -0
  9. package/dist/config/env.d.ts +1 -1
  10. package/dist/config/env.d.ts.map +1 -1
  11. package/dist/config/env.js +2 -2
  12. package/dist/config/env.js.map +1 -1
  13. package/dist/db/actions/blocks.d.ts +9 -6
  14. package/dist/db/actions/blocks.d.ts.map +1 -1
  15. package/dist/db/actions/blocks.js +39 -43
  16. package/dist/db/actions/blocks.js.map +1 -1
  17. package/dist/db/client.d.ts +1 -1
  18. package/dist/db/client.d.ts.map +1 -1
  19. package/dist/db/client.js +5 -1
  20. package/dist/db/client.js.map +1 -1
  21. package/dist/db/column-types.d.ts +2 -2
  22. package/dist/db/column-types.d.ts.map +1 -1
  23. package/dist/db/column-types.js +11 -3
  24. package/dist/db/column-types.js.map +1 -1
  25. package/dist/db/schema/blocks.d.ts +16 -16
  26. package/dist/db/schema/index.d.ts +44 -44
  27. package/dist/db/schema/transactions.d.ts +6 -6
  28. package/dist/db/schema/transactions.d.ts.map +1 -1
  29. package/dist/db/schema/transactions.js +3 -1
  30. package/dist/db/schema/transactions.js.map +1 -1
  31. package/dist/hooks/registry.d.ts +3 -3
  32. package/dist/hooks/registry.d.ts.map +1 -1
  33. package/dist/indexer/backfill.d.ts.map +1 -1
  34. package/dist/indexer/backfill.js +19 -12
  35. package/dist/indexer/backfill.js.map +1 -1
  36. package/dist/indexer/process-block.d.ts +4 -4
  37. package/dist/indexer/process-block.d.ts.map +1 -1
  38. package/dist/indexer/process-block.js +4 -29
  39. package/dist/indexer/process-block.js.map +1 -1
  40. package/dist/indexer/queue-block.d.ts.map +1 -1
  41. package/dist/indexer/queue-block.js +19 -1
  42. package/dist/indexer/queue-block.js.map +1 -1
  43. package/dist/indexer/reorg.d.ts +2 -2
  44. package/dist/indexer/reorg.d.ts.map +1 -1
  45. package/dist/rpc/get-logs.js +1 -1
  46. package/dist/rpc/get-logs.js.map +1 -1
  47. package/dist/types.d.ts +2 -0
  48. package/dist/types.d.ts.map +1 -1
  49. package/package.json +16 -15
  50. package/src/bin/create.ts +16 -2
  51. package/src/config/env.ts +2 -2
  52. package/src/db/actions/blocks.ts +51 -51
  53. package/src/db/client.ts +5 -1
  54. package/src/db/column-types.ts +17 -6
  55. package/src/db/schema/transactions.ts +3 -1
  56. package/src/hooks/registry.ts +3 -3
  57. package/src/indexer/backfill.ts +28 -10
  58. package/src/indexer/process-block.ts +10 -39
  59. package/src/indexer/queue-block.ts +24 -1
  60. package/src/indexer/reorg.ts +2 -2
  61. package/src/rpc/get-logs.ts +1 -1
  62. package/src/types.ts +2 -0
  63. package/template/.gitignore.tpl +22 -0
  64. package/template/biome.json.tpl +87 -0
  65. package/template/package.json.tpl +5 -5
  66. package/template/tsconfig.json.tpl +25 -17
  67. package/template/turbo.json.tpl +1 -1
@@ -0,0 +1 @@
1
+ $ tsc -b
@@ -0,0 +1,2 @@
1
+ $ tsc --noEmit && biome check .
2
+ Checked 53 files in 81ms. No fixes applied.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,35 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.2.1](https://github.com/hugomrdias/foxer/compare/foxer-v0.2.0...foxer-v0.2.1) (2026-03-23)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * remove redundant flag from README.md example ([38dd2c3](https://github.com/hugomrdias/foxer/commit/38dd2c3b70f65b19e1083b7c30519f726cd5537d))
9
+
10
+ ## [0.2.0](https://github.com/hugomrdias/foxer/compare/foxer-v0.1.11...foxer-v0.2.0) (2026-03-23)
11
+
12
+
13
+ ### Features
14
+
15
+ * enhance project scaffolding with new templates ([24dd954](https://github.com/hugomrdias/foxer/commit/24dd954406bff7952779ab91669dedaa71e13ec4))
16
+
17
+ ## [0.1.11](https://github.com/hugomrdias/foxer/compare/foxer-v0.1.10...foxer-v0.1.11) (2026-03-23)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * update foxer configuration and environment handling ([64df052](https://github.com/hugomrdias/foxer/commit/64df052eace280a5074be4763f50871d74456e76))
23
+
24
+ ## [0.1.10](https://github.com/hugomrdias/foxer/compare/foxer-v0.1.9...foxer-v0.1.10) (2026-03-23)
25
+
26
+
27
+ ### Bug Fixes
28
+
29
+ * update block and transaction handling in the database actions ([8d7df5e](https://github.com/hugomrdias/foxer/commit/8d7df5e7babdb0277d74a19360a16e2158e6469c))
30
+ * update dependencies and configuration ([9335f07](https://github.com/hugomrdias/foxer/commit/9335f07ea4df9f8f378ceac4a2c4f9f4d6c530fe))
31
+ * update dependencies and improve bytea handling in database ([1bff003](https://github.com/hugomrdias/foxer/commit/1bff003c6f21ffc6a22ad79cd32df6113e11bce8))
32
+
3
33
  ## [0.1.9](https://github.com/hugomrdias/foxer/compare/foxer-v0.1.8...foxer-v0.1.9) (2026-03-16)
4
34
 
5
35
 
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: /* your viem chain */,
55
+ chain: calibration,
55
56
  },
56
57
  contracts: {
57
58
  // contract definitions keyed by name
@@ -86,12 +87,80 @@ Useful flags:
86
87
 
87
88
  ```bash
88
89
  foxer dev --port 4200
89
- foxer dev --root .
90
90
  foxer dev --config ./foxer.config.ts
91
91
  ```
92
92
 
93
93
  The dev server also looks for `.env.local` in the project root.
94
94
 
95
+ ## Postgres recommendations
96
+
97
+ Foxer supports both `pglite` and Postgres, but production deployments should use Postgres when you need higher write throughput, concurrent reads, or live SQL subscriptions.
98
+
99
+ Live SQL requires logical replication to be enabled because Foxer creates a publication and subscribes to table changes at runtime.
100
+
101
+ Recommended Postgres settings for a dedicated Foxer instance:
102
+
103
+ ```conf
104
+ wal_level = logical
105
+ max_wal_senders = 8
106
+ max_replication_slots = 8
107
+ wal_compression = on
108
+ checkpoint_timeout = 15min
109
+ checkpoint_completion_target = 0.9
110
+ max_wal_size = 8GB
111
+ min_wal_size = 1GB
112
+ random_page_cost = 1.1
113
+ effective_io_concurrency = 200
114
+ default_statistics_target = 200
115
+ ```
116
+
117
+ 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.
118
+
119
+ Memory settings depend on the machine. A good starting point is:
120
+
121
+ - `shared_buffers`: about 25% of RAM
122
+ - `effective_cache_size`: about 60-75% of RAM
123
+ - `work_mem`: `16MB`
124
+ - `maintenance_work_mem`: `512MB`
125
+
126
+ Foxer now defaults the Node Postgres pool to:
127
+
128
+ - `application_name: 'foxer'`
129
+ - `max: 10`
130
+ - `connectionTimeoutMillis: 5000`
131
+ - `idleTimeoutMillis: 30000`
132
+
133
+ You can still override those defaults with `database.options` in `foxer.config.ts`:
134
+
135
+ ```ts
136
+ import { createConfig } from '@hugomrdias/foxer'
137
+ import { http } from 'viem'
138
+
139
+ export const config = createConfig({
140
+ client: {
141
+ transport: http(process.env.RPC_URL),
142
+ realtimeTransport: http(process.env.RPC_LIVE_URL),
143
+ chain: /* your viem chain */,
144
+ },
145
+ database: {
146
+ driver: 'postgres',
147
+ url: process.env.DATABASE_URL,
148
+ options: {
149
+ max: 20,
150
+ idleTimeoutMillis: 60_000,
151
+ },
152
+ },
153
+ contracts: {},
154
+ hooks: ({ registry }) => {
155
+ // register event handlers
156
+ },
157
+ hono: ({ db, logger }) => {
158
+ // return your Hono app
159
+ },
160
+ schema: {},
161
+ })
162
+ ```
163
+
95
164
  ## Example
96
165
 
97
166
  ```ts
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/bin/create.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,OAAO,EAAW,MAAM,OAAO,CAAA;AAgG7C,eAAO,MAAM,MAAM,EAAE,OA0FpB,CAAA"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/bin/create.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,OAAO,EAAW,MAAM,OAAO,CAAA;AAgG7C,eAAO,MAAM,MAAM,EAAE,OAwGpB,CAAA"}
@@ -112,14 +112,22 @@ export const create = command({
112
112
  }
113
113
  mkdirSync(root, { recursive: true });
114
114
  p.log.step(`Scaffolding project in ${root}...`);
115
+ // copy package.json
115
116
  const pkg = JSON.parse(readFileSync(resolve(__dirname, `../../template/package.json.tpl`), 'utf-8'));
116
117
  pkg.name = packageName;
117
118
  writeFileSync(resolve(root, 'package.json'), `${JSON.stringify(pkg, null, 2)}\n`);
119
+ // copy pnpm-workspace.yaml
118
120
  if (pm === 'pnpm') {
119
121
  copy(resolve(__dirname, `../../template/pnpm-workspace.yaml.tpl`), resolve(root, 'pnpm-workspace.yaml'));
120
122
  }
121
- copy(resolve(__dirname, `../../template/turbo.json.tpl`), resolve(root, 'turbo.json'));
123
+ // copy .gitignore
124
+ copy(resolve(__dirname, `../../template/.gitignore.tpl`), resolve(root, '.gitignore'));
125
+ // copy biome.json
126
+ copy(resolve(__dirname, `../../template/biome.json.tpl`), resolve(root, 'biome.json'));
127
+ // copy tsconfig.json
122
128
  copy(resolve(__dirname, `../../template/tsconfig.json.tpl`), resolve(root, 'tsconfig.json'));
129
+ // copy turbo.json
130
+ copy(resolve(__dirname, `../../template/turbo.json.tpl`), resolve(root, 'turbo.json'));
123
131
  // copy apps/foc-api
124
132
  await downloadTemplate('hugomrdias/foxer/examples/api', {
125
133
  dir: resolve(root, 'apps/api'),
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/bin/create.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,UAAU,EACV,SAAS,EACT,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,aAAa,GACd,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAA;AACnC,OAAO,EAAgB,OAAO,EAAE,MAAM,OAAO,CAAA;AAE7C,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAEzD,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,KAAK,CAAU,CAAA;AAGjD,MAAM,QAAQ,GAAG,CAAC,QAAmB,EAAE,EAAE;IACvC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACb,sBAAsB,QAAQ,qBAAqB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACnF,CAAA;IACH,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAOD,SAAS,gBAAgB,CAAC,SAA6B;IACrD,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAA;IAChC,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACvC,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACrC,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;QACnB,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;KACvB,CAAA;AACH,CAAC;AAED,SAAS,eAAe,CAAC,SAAiB;IACxC,OAAO,SAAS;SACb,IAAI,EAAE;SACN,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;SAC3B,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;AACzB,CAAC;AAED,SAAS,OAAO,CAAC,IAAY;IAC3B,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;IAC/B,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAA;AAC1E,CAAC;AAED,SAAS,kBAAkB,CAAC,WAAmB;IAC7C,OAAO,4DAA4D,CAAC,IAAI,CACtE,WAAW,CACZ,CAAA;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,WAAmB;IAC7C,OAAO,WAAW;SACf,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;SACpB,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAA;AAClC,CAAC;AAED,SAAS,IAAI,CAAC,GAAW,EAAE,IAAY;IACrC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAA;IAC1B,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACpB,CAAC;SAAM,CAAC;QACN,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACzB,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,MAAc,EAAE,OAAe;IAC9C,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACvC,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QACrC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QACvC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IACzB,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACtC,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,CAAA;IAChB,CAAC;IACD,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;AAC3B,CAAC;AAED,SAAS,aAAa,CAAC,KAAa,EAAE,MAAc;IAClD,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,KAAK;YACR,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QACxB,KAAK,MAAM;YACT,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;QAChC;YACE,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IACjC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAY,OAAO,CACpC;IACE,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE,CAAC,QAAQ,CAAC;IACtB,KAAK,EAAE;QACL,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,oDAAoD;SAClE;KACF;IACD,IAAI,EAAE;QACJ,WAAW,EAAE,sBAAsB;QACnC,QAAQ,EAAE,CAAC,qBAAqB,CAAC;KAClC;CACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;IACb,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;IACnE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAA;IACzC,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IAC9C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IACzB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;IAEpC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAA;QACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,IAAI,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;IAC9C,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;QACrC,WAAW,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAA;IAC/C,CAAC;IAED,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAA;IAClC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAqB,CAAC,EAAE,CAAC;QACvD,QAAQ,GAAG,KAAK,CAAA;IAClB,CAAC;IAED,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACpC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,IAAI,KAAK,CAAC,CAAA;IAE/C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACpB,YAAY,CACV,OAAO,CAAC,SAAS,EAAE,iCAAiC,CAAC,EACrD,OAAO,CACR,CACF,CAAA;IAED,GAAG,CAAC,IAAI,GAAG,WAAW,CAAA;IAEtB,aAAa,CACX,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,EAC7B,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CACpC,CAAA;IAED,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;QAClB,IAAI,CACF,OAAO,CAAC,SAAS,EAAE,wCAAwC,CAAC,EAC5D,OAAO,CAAC,IAAI,EAAE,qBAAqB,CAAC,CACrC,CAAA;IACH,CAAC;IAED,IAAI,CACF,OAAO,CAAC,SAAS,EAAE,+BAA+B,CAAC,EACnD,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,CAC5B,CAAA;IACD,IAAI,CACF,OAAO,CAAC,SAAS,EAAE,kCAAkC,CAAC,EACtD,OAAO,CAAC,IAAI,EAAE,eAAe,CAAC,CAC/B,CAAA;IAED,oBAAoB;IACpB,MAAM,gBAAgB,CAAC,+BAA+B,EAAE;QACtD,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC;KAC/B,CAAC,CAAA;IAEF,MAAM,gBAAgB,CAAC,+BAA+B,EAAE;QACtD,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC;KAC/B,CAAC,CAAA;IAEF,IAAI,WAAW,GAAG,EAAE,CAAA;IACpB,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACzC,WAAW,IAAI,kBAAkB,CAAA;IACjC,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QACjB,WAAW,IAAI,UAAU,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE,CAAA;IAC/F,CAAC;IACD,WAAW,IAAI,OAAO,iBAAiB,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;IACvD,WAAW,IAAI,OAAO,aAAa,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;IAC1D,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;AACtB,CAAC,CACF,CAAA"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/bin/create.ts"],"names":[],"mappings":"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"}
package/dist/bin/index.js CHANGED
File without changes
@@ -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(logger: Logger): {
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;
@@ -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,MAAM,EAAE,MAAM;;;;EAUvC"}
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"}
@@ -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(logger) {
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
@@ -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,MAAc;IACtC,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,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,YAAY,CAAC,CAAA;IAChD,OAAO,MAAM,CAAC,IAAI,CAAA;AACpB,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 { FilteredContracts } from '../../config/config.ts';
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
- block: EncodedBlockWithTransactions;
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, contracts: FilteredContracts): Promise<Map<bigint, EncodedBlockWithTransactions>>;
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: EncodedBlockWithTransactions[];
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;AAExC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAG/D,OAAO,KAAK,EACV,4BAA4B,EAE7B,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,KAAK,EAAE,4BAA4B,CAAA;IACnC,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,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC,CA+EpD;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC/C,EAAE,EAAE,kBAAkB,CAAC,gBAAgB,EAAE,OAAO,MAAM,CAAC,CAAA;IACvD,MAAM,EAAE,4BAA4B,EAAE,CAAA;CACvC,GAAG,OAAO,CAAC,IAAI,CAAC,CAchB"}
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, block } = args;
45
+ const { db, blocks, transactions } = args;
46
46
  await db.transaction(async (tx) => {
47
47
  await insertBlocksInChunks({
48
48
  db: tx,
49
- blocks: [block],
49
+ blocks,
50
50
  });
51
51
  await insertTransactionsInChunks({
52
52
  db: tx,
53
- transactions: block.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, contracts) {
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 r = await db.query.blocks.findMany({
77
- with: {
78
- transactions: {
79
- where: {
80
- AND: [
81
- { blockNumber: { gte: firstBlockNumber } },
82
- { blockNumber: { lte: lastBlockNumber } },
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
- where: {
93
- AND: [
94
- { number: { gte: firstBlockNumber } },
95
- { number: { lte: lastBlockNumber } },
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 r) {
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
- newBlocks.push(block);
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 db.transaction(async (tx) => {
118
- await insertBlocksInChunks({
119
- db: tx,
120
- blocks: newBlocks,
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: blocksByNumber.size,
129
- missing: missingBlockNumbers.length,
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;AACjC,OAAO,EACL,cAAc,GAKf,MAAM,qBAAqB,CAAA;AAI5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAMrD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAkB,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAA;AAE9D;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,EAAY,EACZ,SAAiB;IAEjB,MAAM,aAAa,GAAG,8BAA8B,CAClD,EAAE,CAAC,CAAC,CAAC,UAAqC,CAC3C,CAAA;IAED,MAAM,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QAChC,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;YACnC,MAAM,EAAE;iBACL,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;iBACpB,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC,CAAA;QACpD,CAAC;QAED,8CAA8C;QAC9C,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA;IAC5E,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,8BAA8B,CAAC,UAAmC;IACzE,MAAM,OAAO,GAA2D,EAAE,CAAA;IAE1E,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,KAAgB,CAAA;QAChC,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;QACtC,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CACvD,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CACtD,CAAA;QACD,IAAI,CAAC,iBAAiB;YAAE,SAAQ;QAEhC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAA;IACrD,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,IAI/C;IACC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,CAAA;IAE1B,MAAM,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QAChC,MAAM,oBAAoB,CAAC;YACzB,EAAE,EAAE,EAAE;YACN,MAAM,EAAE,CAAC,KAAK,CAAC;SAChB,CAAC,CAAA;QACF,MAAM,0BAA0B,CAAC;YAC/B,EAAE,EAAE,EAAE;YACN,YAAY,EAAE,KAAK,CAAC,YAAY;SACjC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAc,EACd,EAA6C,EAC7C,YAAsB,EACtB,MAAoB,EACpB,SAA4B;IAE5B,MAAM,QAAQ,GAAG,UAAU,EAAE,CAAA;IAC7B,MAAM,gBAAgB,GAAG,YAAY,CAAC,CAAC,CAAE,CAAA;IACzC,MAAM,eAAe,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAE,CAAA;IAE9D,0DAA0D;IAC1D,sBAAsB;IACtB,qBAAqB;IACrB,4CAA4C;IAC5C,KAAK;IAEL,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;QACvC,IAAI,EAAE;YACJ,YAAY,EAAE;gBACZ,KAAK,EAAE;oBACL,GAAG,EAAE;wBACH,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,gBAAgB,EAAE,EAAE;wBAC1C,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,eAAe,EAAE,EAAE;wBACzC;4BACE,EAAE,EAAE;gCACF,EAAE,EAAE,SAAS,CAAC,SAAS;6BACxB;yBACF;qBACF;iBACF;aACF;SACF;QACD,KAAK,EAAE;YACL,GAAG,EAAE;gBACH,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,gBAAgB,EAAE,EAAE;gBACrC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,eAAe,EAAE,EAAE;aACrC;SACF;KACF,CAAC,CAAA;IAEF,MAAM,cAAc,GAAG,IAAI,GAAG,EAAwC,CAAA;IACtE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAA;IAErC,KAAK,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC;QACtB,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAC9B,CAAC;IAED,MAAM,mBAAmB,GAAG,CAAC,GAAG,OAAO,CAAC,CAAA;IACxC,MAAM,SAAS,GAAmC,EAAE,CAAA;IACpD,MAAM,eAAe,GAAyB,EAAE,CAAA;IAEhD,MAAM,OAAO,CAAC,GAAG,CACf,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;QAC5C,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAA;QAC7D,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAA;QACvC,cAAc,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;QACtC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACrB,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,eAAe,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAA;QACvC,CAAC;IACH,CAAC,CAAC,CACH,CAAA;IAED,MAAM,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QAChC,MAAM,oBAAoB,CAAC;YACzB,EAAE,EAAE,EAAE;YACN,MAAM,EAAE,SAAS;SAClB,CAAC,CAAA;QACF,MAAM,0BAA0B,CAAC;YAC/B,EAAE,EAAE,EAAE;YACN,YAAY,EAAE,eAAe;SAC9B,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,KAAK,CACV;QACE,MAAM,EAAE,cAAc,CAAC,IAAI;QAC3B,OAAO,EAAE,mBAAmB,CAAC,MAAM;QACnC,QAAQ,EAAE,QAAQ,EAAE;KACrB,EACD,YAAY,CACb,CAAA;IACD,OAAO,cAAc,CAAA;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAG1C;IACC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAC3B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IAE/B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IAC9E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAA;QAC5C,MAAM,EAAE;aACL,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;aACrB,MAAM,CAAC,KAAK,CAAC;aACb,mBAAmB,CAAC;YACnB,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;SAC/B,CAAC,CAAA;IACN,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../../src/db/actions/blocks.ts"],"names":[],"mappings":"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"}
@@ -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;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"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"}
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
- ...options,
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,
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"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"}
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: Buffer<ArrayBufferLike>;
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: Buffer<ArrayBufferLike>;
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":"AAGA,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;;;;;;;;;;;CAYhB,CAAA"}
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"}
@@ -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
- const hex = value.toString('hex');
82
- const _value = hex.startsWith('\\x') ? hex.slice(2) : hex;
83
- return `0x${_value}`;
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,CAAoC;IACjE,QAAQ;QACN,OAAO,OAAO,CAAA;IAChB,CAAC;IACD,QAAQ,CAAC,KAAa;QACpB,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IAC3C,CAAC;IACD,UAAU,CAAC,KAAa;QACtB,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACjC,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;QACzD,OAAO,KAAK,MAAM,EAAS,CAAA;IAC7B,CAAC;CACF,CAAC,CAAA"}
1
+ {"version":3,"file":"column-types.js","sourceRoot":"","sources":["../../src/db/column-types.ts"],"names":[],"mappings":"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"}