exchange

Base system with REST service to issue digital coins, run by the payment service provider
Log | Files | Refs | Submodules | README | LICENSE

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;