@@ -146,6 +146,48 @@ create table open_message (
146
146
foreign key (epoch_setting_id) references epoch_setting (epoch_setting_id),
147
147
foreign key (signed_entity_type_id) references signed_entity_type (signed_entity_type_id)
148
148
);
149
+ "# ,
150
+ ) ,
151
+ // Migration 6
152
+ // Add the `signer_registration` table and migration data from the previous
153
+ // `verification_key` JSON format.
154
+ SqlMigration :: new(
155
+ 6 ,
156
+ r#"
157
+ create table signer_registration (
158
+ signer_id text not null,
159
+ epoch_setting_id integer not null,
160
+ verification_key text not null,
161
+ verification_key_signature text,
162
+ operational_certificate text,
163
+ kes_period integer,
164
+ stake integer,
165
+ created_at text not null default current_timestamp,
166
+ primary key (epoch_setting_id, signer_id)
167
+ -- TODO: activate FK w/ signer table exists
168
+ -- foreign key (signer_id) references signer(signer_id)
169
+ foreign key (epoch_setting_id) references epoch_settings(epoch_setting_id)
170
+ );
171
+ create table if not exists verification_key (key_hash text primary key, key json not null, value json not null);
172
+ insert into signer_registration (signer_id,
173
+ epoch_setting_id,
174
+ verification_key,
175
+ verification_key_signature,
176
+ operational_certificate,
177
+ kes_period,
178
+ stake)
179
+ select
180
+ verification_key_signer.key as signer_id,
181
+ verification_key.key as epoch_setting_id,
182
+ json_extract(verification_key_signer.value, '$.verification_key') as verification_key,
183
+ json_extract(verification_key_signer.value, '$.verification_key_signature') as verification_key_signature,
184
+ json_extract(verification_key_signer.value, '$.operational_certificate') as operational_certificate,
185
+ json_extract(verification_key_signer.value, '$.kes_period') as kes_period,
186
+ stake_pool.stake as stake
187
+ from verification_key, json_each(verification_key.value) as verification_key_signer
188
+ left join stake_pool on stake_pool.stake_pool_id = verification_key_signer.key and stake_pool.epoch = verification_key.key
189
+ order by verification_key.key, verification_key_signer.key asc;
190
+ drop table verification_key;
149
191
"# ,
150
192
) ,
151
193
]
0 commit comments