From ad10de83ecb1eaa17e12b435535585cfdc45eeb2 Mon Sep 17 00:00:00 2001 From: Gheorghe Pinzaru Date: Tue, 3 Dec 2024 18:15:03 +0700 Subject: [PATCH] Change primary key for contracts abi cache --- .changeset/flat-pots-check.md | 5 +++++ packages/transaction-decoder/src/sql/abi-store.ts | 12 +++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 .changeset/flat-pots-check.md diff --git a/.changeset/flat-pots-check.md b/.changeset/flat-pots-check.md new file mode 100644 index 00000000..fb12d6ee --- /dev/null +++ b/.changeset/flat-pots-check.md @@ -0,0 +1,5 @@ +--- +'@3loop/transaction-decoder': patch +--- + +Change primary key for sql cache table diff --git a/packages/transaction-decoder/src/sql/abi-store.ts b/packages/transaction-decoder/src/sql/abi-store.ts index 87241bbc..7617010e 100644 --- a/packages/transaction-decoder/src/sql/abi-store.ts +++ b/packages/transaction-decoder/src/sql/abi-store.ts @@ -8,11 +8,18 @@ export const make = (strategies: AbiStore['strategies']) => Effect.gen(function* () { const sql = yield* SqlClient.SqlClient - const table = sql('_loop_decoder_contract_abi_') + const table = sql('_loop_decoder_contract_abi_v2') + const id = sql.onDialectOrElse({ + sqlite: () => sql`id INTEGER PRIMARY KEY AUTOINCREMENT,`, + pg: () => sql`id SERIAL PRIMARY KEY,`, + mysql: () => sql`id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id),`, + orElse: () => sql``, + }) // TODO; add timestamp to the table yield* sql` CREATE TABLE IF NOT EXISTS ${table} ( + ${id} type TEXT NOT NULL, address TEXT, event TEXT, @@ -20,8 +27,7 @@ export const make = (strategies: AbiStore['strategies']) => chain INTEGER, abi TEXT, status TEXT NOT NULL, - timestamp TEXT DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY (address, chain) + timestamp TEXT DEFAULT CURRENT_TIMESTAMP ) `.pipe( Effect.tapError(Effect.logError),