<?php
declare(strict_types=1);
require_once \dirname(__DIR__).'/src/bootstrap.php';
/**
* This will nuke and reset the local update tree. Essentially,
* only use it if Keyggdrasil ends up in an invalid state (e.g.
* hard fork).
*/
$db = \Airship\get_database();
$db->beginTransaction();
$db->query('TRUNCATE TABLE airship_tree_updates;');
$query = $db->query(<<<EOSQL
INSERT INTO airship_tree_updates (channel, channelupdateid, data, merkleroot) VALUES
(
'paragonie',
1,
'{"action":"CREATE","date_generated":"2016-06-04T16:00:00","public_key":"1d9b44a5ec7be970dcb07efa81e661cb493f700953c0c26e5161b9cf0637e7f1","supplier":"pragonie","type":"master","master":null}',
'99b4556c9506fd1742ca837e534553c9dcff5cdfae3ef57c74eb6175c6c8ffb9da04102a6a83c5139efd83c5e6f52cabc557ed0726652e041e214b8a677247ea'
),
(
'paragonie',
2,
'{"action":"CREATE","date_generated":"2016-06-04T16:05:00","public_key":"6731558f53c6edf15c7cc1e439b15c18d6dfc1fd2c66f9fda8c56cfe7d37110b","supplier":"pragonie","type":"signing","master":"{\"public_key\":\"1d9b44a5ec7be970dcb07efa81e661cb493f700953c0c26e5161b9cf0637e7f1\",\"signature\":\"017bb2dbe6fa75d3240f330be532bf8d9aced0654f257b5670edbd44c52f892459b5b314f095cd1df65346035a4b927dd4edbcfee677d4ebd5f861d6789fc301\"}"}',
'940c0456c19d3606b27c89d15a82523f8fdb83928b4d27e027058a279665b124afc7af4188098704058bf067f0349b32c9a8c7f244499623d5d9f7b6e1fa986d'
);
EOSQL
);
// Reset the sequence value:
$db->query("SELECT setval('airship_tree_updates_treeupdateid_seq', 2);");
/* More generally:
SELECT setval(
'airship_tree_updates_treeupdateid_seq',
COALESCE(
(SELECT MAX(treeupdateid) FROM airship_tree_updates),
1
)
);
*/
if ($db->commit()) {
echo 'OK', PHP_EOL;
exit(0);
}
|