Просмотр исходного кода

fix(fortuna): migrate timestamp columns to bigint (#2938)

* fix(fortuna): migrate timestamp columns integer -> bigint

* fix(fortuna): migrate timestamp columns integer -> bigint

* bump ver

* fix(fortuna): add Bytes utoipa schema
Tejas Badadare 3 месяцев назад
Родитель
Сommit
8d8e8094d7

+ 1 - 1
Cargo.lock

@@ -3071,7 +3071,7 @@ dependencies = [
 
 [[package]]
 name = "fortuna"
-version = "9.1.1"
+version = "9.2.0"
 dependencies = [
  "anyhow",
  "axum 0.6.20",

+ 1 - 1
apps/fortuna/Cargo.toml

@@ -1,6 +1,6 @@
 [package]
 name = "fortuna"
-version = "9.1.2"
+version = "9.2.0"
 edition = "2021"
 
 [lib]

+ 0 - 4
apps/fortuna/migrations/20250801232728_add_callback_fields.down.sql

@@ -1,4 +0,0 @@
--- Remove callback_failed, callback_return_value, and callback_gas_used from the requests table.
-ALTER TABLE request DROP COLUMN callback_failed;
-ALTER TABLE request DROP COLUMN callback_return_value;
-ALTER TABLE request DROP COLUMN callback_gas_used;

+ 0 - 4
apps/fortuna/migrations/20250801232728_add_callback_fields.up.sql

@@ -1,4 +0,0 @@
--- Add callback_failed, callback_return_value, and callback_gas_used to the requests table.
-ALTER TABLE request ADD COLUMN callback_failed INTEGER;
-ALTER TABLE request ADD COLUMN callback_return_value VARCHAR;
-ALTER TABLE request ADD COLUMN callback_gas_used VARCHAR(100);

+ 0 - 0
apps/fortuna/migrations/20250707000000_init.down.sql → apps/fortuna/migrations/20250807000000_init.down.sql


+ 9 - 6
apps/fortuna/migrations/20250707000000_init.up.sql → apps/fortuna/migrations/20250807000000_init.up.sql

@@ -3,8 +3,8 @@ CREATE TABLE request(
     network_id INTEGER NOT NULL,
     provider VARCHAR(40) NOT NULL,
     sequence INTEGER NOT NULL,
-    created_at INTEGER NOT NULL,
-    last_updated_at INTEGER NOT NULL,
+    created_at BIGINT NOT NULL,
+    last_updated_at BIGINT NOT NULL,
     state VARCHAR(10) NOT NULL,
     request_block_number INTEGER NOT NULL,
     request_tx_hash VARCHAR(64) NOT NULL,
@@ -16,9 +16,11 @@ CREATE TABLE request(
     info TEXT,
     gas_used VARCHAR(100),
     gas_limit VARCHAR(100) NOT NULL,
+    callback_failed INTEGER,
+    callback_return_value VARCHAR,
+    callback_gas_used VARCHAR(100),
     PRIMARY KEY (network_id, sequence, provider, request_tx_hash)
 );
-
 CREATE INDEX request__network_id__state__created_at ON request(network_id, state, created_at);
 CREATE INDEX request__network_id__created_at ON request(network_id, created_at);
 CREATE INDEX request__sender__network_id__state__created_at ON request(sender, network_id, state, created_at);
@@ -31,6 +33,7 @@ CREATE INDEX request__sequence__state__created_at ON request(sequence, state, cr
 CREATE INDEX request__sequence__created_at ON request(sequence, created_at);
 CREATE INDEX request__state__created_at ON request(state, created_at);
 CREATE INDEX request__created_at ON request(created_at);
-
-CREATE INDEX request__request_tx_hash ON request (request_tx_hash) WHERE request_tx_hash IS NOT NULL;
-CREATE INDEX request__reveal_tx_hash ON request (reveal_tx_hash) WHERE reveal_tx_hash IS NOT NULL;
+CREATE INDEX request__request_tx_hash ON request (request_tx_hash)
+WHERE request_tx_hash IS NOT NULL;
+CREATE INDEX request__reveal_tx_hash ON request (reveal_tx_hash)
+WHERE reveal_tx_hash IS NOT NULL;

+ 1 - 0
apps/fortuna/src/history.rs

@@ -51,6 +51,7 @@ pub enum RequestEntryState {
         /// the error code and any additional returned data. Note that "" often indicates an out-of-gas error.
         /// If the callback returns more than 256 bytes, only the first 256 bytes of the callback return value are included.
         /// NOTE: This field is the raw bytes returned from the callback, not hex-decoded. The client should decode it as needed.
+        #[schema(example = "0x4e487b710000000000000000000000000000000000000000000000000000000000000011", value_type = String)]
         callback_return_value: Bytes,
         /// How much gas the callback used.
         #[schema(example = "567890", value_type = String)]