auditor-triggers-0001.sql (15311B)
1 -- 2 -- This file is part of TALER 3 -- Copyright (C) 2024 Taler Systems SA 4 -- 5 -- TALER is free software; you can redistribute it and/or modify it under the 6 -- terms of the GNU General Public License as published by the Free Software 7 -- Foundation; either version 3, or (at your option) any later version. 8 -- 9 -- TALER is distributed in the hope that it will be useful, but WITHOUT ANY 10 -- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 11 -- A PARTICULAR PURPOSE. See the GNU General Public License for more details. 12 -- 13 -- You should have received a copy of the GNU General Public License along with 14 -- TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/> 15 -- 16 17 -- Everything in one big transaction 18 BEGIN; 19 20 SELECT _v.register_patch('auditor-triggers-0001'); 21 22 /* 23 CREATE OR REPLACE FUNCTION auditor_new_deposits_trigger() 24 RETURNS trigger 25 LANGUAGE plpgsql 26 AS $$ 27 BEGIN 28 NOTIFY XFIXME; 29 RETURN NEW; 30 END $$; 31 COMMENT ON FUNCTION auditor_new_deposits_trigger() 32 IS 'Call XXX on new entry'; 33 34 CREATE TRIGGER auditor_notify_helper_insert_deposits 35 AFTER INSERT 36 ON exchange.batch_deposits 37 EXECUTE PROCEDURE auditor_new_deposits_trigger(); 38 */ 39 40 41 -- make 6 of these functions, one for each helper 42 43 -- the coins helper listens to this trigger 44 CREATE OR REPLACE FUNCTION auditor_wake_coins_helper_trigger() 45 RETURNS trigger 46 LANGUAGE plpgsql 47 AS $$ 48 BEGIN 49 NOTIFY X5V5R0DDFMXS0R3W058R3W4RPDVMK35YZCS0S5VZS583J0NR0PE2G; 50 RETURN NEW; 51 END $$; 52 COMMENT ON FUNCTION auditor_wake_coins_helper_trigger() 53 IS 'Call auditor_call_db_notify on new entry'; 54 55 56 -- the purses helper listens to this trigger 57 CREATE OR REPLACE FUNCTION auditor_wake_purses_helper_trigger() 58 RETURNS trigger 59 LANGUAGE plpgsql 60 AS $$ 61 BEGIN 62 NOTIFY X908G8PNPMJYA59YGGTJND1TKTBFNG8C7TREHG3X5SJ9EQAJY4Z00; 63 RETURN NEW; 64 END $$; 65 COMMENT ON FUNCTION auditor_wake_purses_helper_trigger() 66 IS 'Call auditor_call_db_notify on new entry'; 67 68 69 -- the deposits helper listens to this trigger 70 CREATE OR REPLACE FUNCTION auditor_wake_deposits_helper_trigger() 71 RETURNS trigger 72 LANGUAGE plpgsql 73 AS $$ 74 BEGIN 75 NOTIFY XZD0FASMJD3XCY3Z0CGXNJQ8CMWSCW80JN6796098N71CXPH70TQ0; 76 RETURN NEW; 77 END $$; 78 COMMENT ON FUNCTION auditor_wake_deposits_helper_trigger() 79 IS 'Call auditor_call_db_notify on new entry'; 80 81 -- the reserves helper listens to this trigger 82 CREATE OR REPLACE FUNCTION auditor_wake_reserves_helper_trigger() 83 RETURNS trigger 84 LANGUAGE plpgsql 85 AS $$ 86 BEGIN 87 NOTIFY XMF69RJQB7EN06KGSQ02VFD3723CE86VXA5GRE8H7XNNS6BDYF0G0; 88 RETURN NEW; 89 END $$; 90 COMMENT ON FUNCTION auditor_wake_reserves_helper_trigger() 91 IS 'Call auditor_call_db_notify on new entry'; 92 93 -- the wire helper listens to this trigger 94 CREATE OR REPLACE FUNCTION auditor_wake_wire_helper_trigger() 95 RETURNS trigger 96 LANGUAGE plpgsql 97 AS $$ 98 BEGIN 99 NOTIFY X1RYYSTS139MBHVEXJ6CZZTY76MAMEEF87SRRWC8WM00HCCW6D12G; 100 RETURN NEW; 101 END $$; 102 COMMENT ON FUNCTION auditor_wake_wire_helper_trigger() 103 IS 'Call auditor_call_db_notify on new entry'; 104 105 -- the wire aggregation listens to this trigger 106 CREATE OR REPLACE FUNCTION auditor_wake_aggregation_helper_trigger() 107 RETURNS trigger 108 LANGUAGE plpgsql 109 AS $$ 110 BEGIN 111 NOTIFY XWRPZ889FPA6TMGJ15JVTCMKEFVJEWCEKF1TEZHTDQHBYSV49M31G; 112 RETURN NEW; 113 END $$; 114 COMMENT ON FUNCTION auditor_wake_aggregation_helper_trigger() 115 IS 'Call auditor_call_db_notify on new entry'; 116 117 118 -- call the functions in each table to call all relevant helpers 119 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_aggregation0 120 AFTER INSERT ON exchange.batch_deposits 121 EXECUTE FUNCTION auditor_wake_aggregation_helper_trigger(); 122 123 124 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_aggregation1 125 AFTER INSERT ON exchange.partners 126 EXECUTE FUNCTION auditor_wake_aggregation_helper_trigger(); 127 128 129 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_aggregation2 130 AFTER INSERT ON exchange.wire_targets 131 EXECUTE FUNCTION auditor_wake_aggregation_helper_trigger(); 132 133 134 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_aggregation3 135 AFTER INSERT ON exchange.reserves_open_deposits 136 EXECUTE FUNCTION auditor_wake_aggregation_helper_trigger(); 137 138 139 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_aggregation4 140 AFTER INSERT ON exchange.aggregation_tracking 141 EXECUTE FUNCTION auditor_wake_aggregation_helper_trigger(); 142 143 144 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_aggregation5 145 AFTER INSERT ON exchange.purse_requests 146 EXECUTE FUNCTION auditor_wake_aggregation_helper_trigger(); 147 148 149 -- FIXME: #9900 150 --CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_aggregation6 151 -- AFTER INSERT ON exchange.refresh_revealed_coins 152 --EXECUTE FUNCTION auditor_wake_aggregation_helper_trigger(); 153 154 155 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_aggregation7 156 AFTER INSERT ON exchange.reserves 157 EXECUTE FUNCTION auditor_wake_aggregation_helper_trigger(); 158 159 160 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_aggregation8 161 AFTER INSERT ON exchange.purse_deposits 162 EXECUTE FUNCTION auditor_wake_aggregation_helper_trigger(); 163 164 165 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_aggregation9 166 AFTER INSERT ON exchange.withdraw 167 EXECUTE FUNCTION auditor_wake_aggregation_helper_trigger(); 168 169 170 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_aggregation10 171 AFTER INSERT ON exchange.recoup 172 EXECUTE FUNCTION auditor_wake_aggregation_helper_trigger(); 173 174 175 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_aggregation11 176 AFTER INSERT ON exchange.coin_history 177 EXECUTE FUNCTION auditor_wake_aggregation_helper_trigger(); 178 179 180 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_aggregation12 181 AFTER INSERT ON exchange.coin_deposits 182 EXECUTE FUNCTION auditor_wake_aggregation_helper_trigger(); 183 184 185 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_aggregation13 186 AFTER INSERT ON exchange.wire_out 187 EXECUTE FUNCTION auditor_wake_aggregation_helper_trigger(); 188 189 190 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_aggregation14 191 AFTER INSERT ON exchange.refunds 192 EXECUTE FUNCTION auditor_wake_aggregation_helper_trigger(); 193 194 -- FIXME: #9900 195 --CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_aggregation15 196 -- AFTER INSERT ON exchange.refresh_commitments 197 --EXECUTE FUNCTION auditor_wake_aggregation_helper_trigger(); 198 199 200 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_aggregation16 201 AFTER INSERT ON exchange.purse_decision 202 EXECUTE FUNCTION auditor_wake_aggregation_helper_trigger(); 203 204 205 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_aggregation17 206 AFTER INSERT ON exchange.known_coins 207 EXECUTE FUNCTION auditor_wake_aggregation_helper_trigger(); 208 209 210 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_aggregation18 211 AFTER INSERT ON exchange.recoup_refresh 212 EXECUTE FUNCTION auditor_wake_aggregation_helper_trigger(); 213 214 215 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_coins0 216 AFTER INSERT ON exchange.purse_merges 217 EXECUTE FUNCTION auditor_wake_coins_helper_trigger(); 218 219 220 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_coins1 221 AFTER INSERT ON exchange.batch_deposits 222 EXECUTE FUNCTION auditor_wake_coins_helper_trigger(); 223 224 225 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_coins2 226 AFTER INSERT ON exchange.partners 227 EXECUTE FUNCTION auditor_wake_coins_helper_trigger(); 228 229 230 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_coins3 231 AFTER INSERT ON exchange.denomination_revocations 232 EXECUTE FUNCTION auditor_wake_coins_helper_trigger(); 233 234 235 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_coins4 236 AFTER INSERT ON exchange.wire_targets 237 EXECUTE FUNCTION auditor_wake_coins_helper_trigger(); 238 239 240 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_coins5 241 AFTER INSERT ON exchange.auditors 242 EXECUTE FUNCTION auditor_wake_coins_helper_trigger(); 243 244 245 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_coins6 246 AFTER INSERT ON exchange.purse_requests 247 EXECUTE FUNCTION auditor_wake_coins_helper_trigger(); 248 249 250 -- FIXME: #9900 251 --CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_coins7 252 -- AFTER INSERT ON exchange.refresh_revealed_coins 253 --EXECUTE FUNCTION auditor_wake_coins_helper_trigger(); 254 255 256 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_coins8 257 AFTER INSERT ON exchange.reserves 258 EXECUTE FUNCTION auditor_wake_coins_helper_trigger(); 259 260 261 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_coins9 262 AFTER INSERT ON exchange.purse_deposits 263 EXECUTE FUNCTION auditor_wake_coins_helper_trigger(); 264 265 266 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_coins10 267 AFTER INSERT ON exchange.withdraw 268 EXECUTE FUNCTION auditor_wake_coins_helper_trigger(); 269 270 271 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_coins11 272 AFTER INSERT ON exchange.recoup 273 EXECUTE FUNCTION auditor_wake_coins_helper_trigger(); 274 275 276 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_coins12 277 AFTER INSERT ON exchange.auditor_denom_sigs 278 EXECUTE FUNCTION auditor_wake_coins_helper_trigger(); 279 280 281 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_coins13 282 AFTER INSERT ON exchange.coin_deposits 283 EXECUTE FUNCTION auditor_wake_coins_helper_trigger(); 284 285 286 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_coins14 287 AFTER INSERT ON exchange.refunds 288 EXECUTE FUNCTION auditor_wake_coins_helper_trigger(); 289 290 291 -- FIXME: #9900 292 --CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_coins15 293 -- AFTER INSERT ON exchange.refresh_commitments 294 --EXECUTE FUNCTION auditor_wake_coins_helper_trigger(); 295 296 297 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_coins16 298 AFTER INSERT ON exchange.purse_decision 299 EXECUTE FUNCTION auditor_wake_coins_helper_trigger(); 300 301 302 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_coins17 303 AFTER INSERT ON exchange.known_coins 304 EXECUTE FUNCTION auditor_wake_coins_helper_trigger(); 305 306 307 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_coins18 308 AFTER INSERT ON exchange.recoup_refresh 309 EXECUTE FUNCTION auditor_wake_coins_helper_trigger(); 310 311 312 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_purses0 313 AFTER INSERT ON exchange.purse_merges 314 EXECUTE FUNCTION auditor_wake_purses_helper_trigger(); 315 316 317 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_purses1 318 AFTER INSERT ON exchange.account_merges 319 EXECUTE FUNCTION auditor_wake_purses_helper_trigger(); 320 321 322 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_purses2 323 AFTER INSERT ON exchange.purse_deposits 324 EXECUTE FUNCTION auditor_wake_purses_helper_trigger(); 325 326 327 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_purses3 328 AFTER INSERT ON exchange.global_fee 329 EXECUTE FUNCTION auditor_wake_purses_helper_trigger(); 330 331 332 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_purses4 333 AFTER INSERT ON exchange.purse_requests 334 EXECUTE FUNCTION auditor_wake_purses_helper_trigger(); 335 336 337 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_purses5 338 AFTER INSERT ON exchange.partners 339 EXECUTE FUNCTION auditor_wake_purses_helper_trigger(); 340 341 342 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_purses6 343 AFTER INSERT ON exchange.purse_decision 344 EXECUTE FUNCTION auditor_wake_purses_helper_trigger(); 345 346 347 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_purses7 348 AFTER INSERT ON exchange.known_coins 349 EXECUTE FUNCTION auditor_wake_purses_helper_trigger(); 350 351 352 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_deposits0 353 AFTER INSERT ON exchange.wire_targets 354 EXECUTE FUNCTION auditor_wake_deposits_helper_trigger(); 355 356 357 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_deposits1 358 AFTER INSERT ON exchange.batch_deposits 359 EXECUTE FUNCTION auditor_wake_deposits_helper_trigger(); 360 361 362 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_deposits2 363 AFTER INSERT ON exchange.known_coins 364 EXECUTE FUNCTION auditor_wake_deposits_helper_trigger(); 365 366 367 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_deposits3 368 AFTER INSERT ON exchange.coin_deposits 369 EXECUTE FUNCTION auditor_wake_deposits_helper_trigger(); 370 371 372 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_reserves0 373 AFTER INSERT ON exchange.wire_fee 374 EXECUTE FUNCTION auditor_wake_reserves_helper_trigger(); 375 376 377 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_reserves1 378 AFTER INSERT ON exchange.reserves 379 EXECUTE FUNCTION auditor_wake_reserves_helper_trigger(); 380 381 382 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_reserves2 383 AFTER INSERT ON exchange.reserves_close 384 EXECUTE FUNCTION auditor_wake_reserves_helper_trigger(); 385 386 387 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_reserves3 388 AFTER INSERT ON exchange.purse_merges 389 EXECUTE FUNCTION auditor_wake_reserves_helper_trigger(); 390 391 392 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_reserves4 393 AFTER INSERT ON exchange.wire_targets 394 EXECUTE FUNCTION auditor_wake_reserves_helper_trigger(); 395 396 397 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_reserves5 398 AFTER INSERT ON exchange.withdraw 399 EXECUTE FUNCTION auditor_wake_reserves_helper_trigger(); 400 401 402 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_reserves6 403 AFTER INSERT ON exchange.recoup 404 EXECUTE FUNCTION auditor_wake_reserves_helper_trigger(); 405 406 407 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_reserves7 408 AFTER INSERT ON exchange.purse_requests 409 EXECUTE FUNCTION auditor_wake_reserves_helper_trigger(); 410 411 412 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_reserves8 413 AFTER INSERT ON exchange.reserves_open_requests 414 EXECUTE FUNCTION auditor_wake_reserves_helper_trigger(); 415 416 417 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_reserves9 418 AFTER INSERT ON exchange.denomination_revocations 419 EXECUTE FUNCTION auditor_wake_reserves_helper_trigger(); 420 421 422 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_reserves10 423 AFTER INSERT ON exchange.purse_decision 424 EXECUTE FUNCTION auditor_wake_reserves_helper_trigger(); 425 426 427 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_reserves11 428 AFTER INSERT ON exchange.known_coins 429 EXECUTE FUNCTION auditor_wake_reserves_helper_trigger(); 430 431 432 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_reserves12 433 AFTER INSERT ON exchange.reserves_in 434 EXECUTE FUNCTION auditor_wake_reserves_helper_trigger(); 435 436 437 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_wire0 438 AFTER INSERT ON exchange.reserves 439 EXECUTE FUNCTION auditor_wake_wire_helper_trigger(); 440 441 442 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_wire1 443 AFTER INSERT ON exchange.wire_targets 444 EXECUTE FUNCTION auditor_wake_wire_helper_trigger(); 445 446 447 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_wire2 448 AFTER INSERT ON exchange.aggregation_tracking 449 EXECUTE FUNCTION auditor_wake_wire_helper_trigger(); 450 451 452 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_wire3 453 AFTER INSERT ON exchange.wire_out 454 EXECUTE FUNCTION auditor_wake_wire_helper_trigger(); 455 456 457 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_wire4 458 AFTER INSERT ON exchange.reserves_close 459 EXECUTE FUNCTION auditor_wake_wire_helper_trigger(); 460 461 462 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_wire5 463 AFTER INSERT ON exchange.profit_drains 464 EXECUTE FUNCTION auditor_wake_wire_helper_trigger(); 465 466 467 CREATE OR REPLACE TRIGGER auditor_exchange_notify_helper_wire6 468 AFTER INSERT ON exchange.reserves_in 469 EXECUTE FUNCTION auditor_wake_wire_helper_trigger(); 470 471 COMMIT;