exchange

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

meson.build (10247B)


      1 # This build file is in the public domain
      2 
      3 pkgcfgadir = get_option('datadir') / 'taler-auditor' / 'config.d'
      4 pkgcfgedir = get_option('datadir') / 'taler-exchange' / 'config.d'
      5 
      6 # Auditor also needs to access the exchange DB, so we install
      7 # the exchange configuration for it here as well!
      8 install_data(
      9     'exchangedb.conf',
     10     'exchangedb-postgres.conf',
     11     install_dir: pkgcfgadir,
     12 )
     13 
     14 install_data(
     15     'exchangedb.conf',
     16     'exchangedb-postgres.conf',
     17     install_dir: pkgcfgedir,
     18 )
     19 
     20 configure_file(
     21     input: 'test-exchange-db-postgres.conf',
     22     output: 'test-exchange-db-postgres.conf',
     23     copy: true,
     24 )
     25 
     26 subdir('sql-schema')
     27 
     28 test_idem = configure_file(
     29     input: 'test_idempotency.sh',
     30     output: 'test_idempotency.sh',
     31     copy: true,
     32 )
     33 
     34 test(
     35     'test_idempotency.sh',
     36     test_idem,
     37     workdir: meson.current_build_dir(),
     38     suite: ['exchangedb', 'installcheck'],
     39     is_parallel: false,
     40 )
     41 
     42 
     43 libtalerexchangedb = library(
     44     'talerexchangedb',
     45     [
     46         'account_history.c',
     47         'bench_db.c',
     48         'exchangedb_accounts.c',
     49         'exchangedb_transactions.c',
     50         'free_coin_transaction_list.c',
     51         'free_reserve_history.c',
     52         'persist_aml_program_result.c',
     53         'abort_shard.c',
     54         'activate_signing_key.c',
     55         'add_denomination_key.c',
     56         'add_policy_fulfillment_proof.c',
     57         'aggregate.c',
     58         'batch_ensure_coin_known.c',
     59         'begin_revolving_shard.c',
     60         'begin_shard.c',
     61         'pg.c',
     62         'clear_aml_lock.c',
     63         'commit.c',
     64         'complete_shard.c',
     65         'compute_shard.c',
     66         'count_known_coins.c',
     67         'create_aggregation_transient.c',
     68         'create_tables.c',
     69         'delete_aggregation_transient.c',
     70         'delete_shard_locks.c',
     71         'disable_rules.c',
     72         'do_check_deposit_idempotent.c',
     73         'do_deposit.c',
     74         'do_purse_delete.c',
     75         'do_purse_deposit.c',
     76         'do_purse_merge.c',
     77         'do_recoup.c',
     78         'do_recoup_refresh.c',
     79         'do_refresh.c',
     80         'do_refund.c',
     81         'do_reserve_open.c',
     82         'do_reserve_purse.c',
     83         'do_withdraw.c',
     84         'drain_kyc_alert.c',
     85         'drop_tables.c',
     86         'enable_rules.c',
     87         'ensure_coin_known.c',
     88         'event_listen.c',
     89         'event_listen_cancel.c',
     90         'event_notify.c',
     91         'expire_purse.c',
     92         'find_aggregation_transient.c',
     93         'gc.c',
     94         'get_coin_denomination.c',
     95         'get_coin_transactions.c',
     96         'get_denomination_by_serial.c',
     97         'get_denomination_info.c',
     98         'get_denomination_revocation.c',
     99         'get_drain_profit.c',
    100         'get_expired_reserves.c',
    101         'get_extension_manifest.c',
    102         'get_global_fee.c',
    103         'get_global_fees.c',
    104         'get_known_coin.c',
    105         'get_kyc_rules.c',
    106         'get_old_coin_by_h_blind.c',
    107         'get_pending_kyc_requirement_process.c',
    108         'get_policy_details.c',
    109         'get_purse_deposit.c',
    110         'get_purse_request.c',
    111         'get_ready_deposit.c',
    112         'get_refresh.c',
    113         'get_reserve_balance.c',
    114         'get_reserve_by_h_planchets.c',
    115         'get_reserve_history.c',
    116         'get_signature_for_known_coin.c',
    117         'get_unfinished_close_requests.c',
    118         'get_wire_accounts.c',
    119         'get_wire_fee.c',
    120         'get_wire_fees.c',
    121         'get_wire_hash_for_contract.c',
    122         'get_withdraw.c',
    123         'have_deposit2.c',
    124         'inject_auditor_triggers.c',
    125         'insert_active_legitimization_measure.c',
    126         'insert_aml_decision.c',
    127         'insert_aml_officer.c',
    128         'insert_aml_program_failure.c',
    129         'insert_auditor.c',
    130         'insert_auditor_denom_sig.c',
    131         'insert_close_request.c',
    132         'insert_contract.c',
    133         'insert_denomination_info.c',
    134         'insert_denomination_revocation.c',
    135         'insert_drain_profit.c',
    136         'insert_global_fee.c',
    137         'insert_kyc_failure.c',
    138         'insert_kyc_requirement_process.c',
    139         'insert_partner.c',
    140         'insert_purse_request.c',
    141         'insert_records_by_table.c',
    142         'insert_refund.c',
    143         'insert_reserve_closed.c',
    144         'insert_reserve_open_deposit.c',
    145         'insert_sanction_list_hit.c',
    146         'insert_signkey_revocation.c',
    147         'insert_successor_measure.c',
    148         'insert_wire.c',
    149         'insert_wire_fee.c',
    150         'iterate_active_auditors.c',
    151         'iterate_active_signkeys.c',
    152         'iterate_auditor_denominations.c',
    153         'iterate_denomination_info.c',
    154         'iterate_denominations.c',
    155         'iterate_kyc_reference.c',
    156         'iterate_reserve_close_info.c',
    157         'kycauth_in_insert.c',
    158         'kyc_provider_account_lookup.c',
    159         'lookup_active_legitimization.c',
    160         'lookup_aml_file_number.c',
    161         'lookup_aml_history.c',
    162         'lookup_aml_officer.c',
    163         'lookup_auditor_status.c',
    164         'lookup_auditor_timestamp.c',
    165         'lookup_completed_legitimization.c',
    166         'lookup_denomination_key.c',
    167         'lookup_global_fee_by_time.c',
    168         'lookup_h_payto_by_access_token.c',
    169         'lookup_kyc_history.c',
    170         'lookup_kyc_process_by_account.c',
    171         'lookup_kyc_requirement_by_row.c',
    172         'lookup_kyc_status_by_token.c',
    173         'lookup_pending_legitimization.c',
    174         'lookup_records_by_table.c',
    175         'lookup_rules_by_access_token.c',
    176         'lookup_serial_by_table.c',
    177         'lookup_signing_key.c',
    178         'lookup_signkey_revocation.c',
    179         'lookup_transfer_by_deposit.c',
    180         'lookup_wire_fee_by_time.c',
    181         'lookup_wire_timestamp.c',
    182         'lookup_wire_transfer.c',
    183         'mark_refresh_reveal_success.c',
    184         'persist_kyc_attributes.c',
    185         'persist_policy_details.c',
    186         'preflight.c',
    187         'profit_drains_get_pending.c',
    188         'profit_drains_set_finished.c',
    189         'release_revolving_shard.c',
    190         'reserves_get.c',
    191         'reserves_get_origin.c',
    192         'reserves_in_insert.c',
    193         'reserves_update.c',
    194         'rollback.c',
    195         'select_account_merges_above_serial_id.c',
    196         'select_aggregation_amounts_for_kyc_check.c',
    197         'select_aggregations_above_serial.c',
    198         'select_aggregation_transient.c',
    199         'select_all_kyc_attributes.c',
    200         'select_all_purse_decisions_above_serial_id.c',
    201         'select_all_purse_deletions_above_serial_id.c',
    202         'select_aml_attributes.c',
    203         'select_aml_decisions.c',
    204         'select_aml_measures.c',
    205         'select_aml_statistics.c',
    206         'select_auditor_denom_sig.c',
    207         'select_batch_deposits_missing_wire.c',
    208         'select_coin_deposits_above_serial_id.c',
    209         'select_contract_by_purse.c',
    210         'select_contract.c',
    211         'select_deposit_amounts_for_kyc_check.c',
    212         'select_exchange_credit_transfers.c',
    213         'select_exchange_debit_transfers.c',
    214         'select_exchange_kycauth_transfers.c',
    215         'select_kyc_accounts.c',
    216         'select_kyc_attributes.c',
    217         'select_merge_amounts_for_kyc_check.c',
    218         'select_purse_by_merge_pub.c',
    219         'select_purse.c',
    220         'select_purse_decisions_above_serial_id.c',
    221         'select_purse_deposits_above_serial_id.c',
    222         'select_purse_deposits_by_purse.c',
    223         'select_purse_merge.c',
    224         'select_purse_merges_above_serial_id.c',
    225         'select_purse_requests_above_serial_id.c',
    226         'select_recoup_above_serial_id.c',
    227         'select_recoup_refresh_above_serial_id.c',
    228         'select_refreshes_above_serial_id.c',
    229         'select_refunds_above_serial_id.c',
    230         'select_refunds_by_coin.c',
    231         'select_reserve_closed_above_serial_id.c',
    232         'select_reserve_close_info.c',
    233         'select_reserve_close_request_info.c',
    234         'select_reserve_open_above_serial_id.c',
    235         'select_reserves_in_above_serial_id_by_account.c',
    236         'select_reserves_in_above_serial_id.c',
    237         'select_wire_out_above_serial_id_by_account.c',
    238         'select_wire_out_above_serial_id.c',
    239         'select_withdrawals_above_serial_id.c',
    240         'select_withdraw_amounts_for_kyc_check.c',
    241         'set_aml_lock.c',
    242         'set_extension_manifest.c',
    243         'set_purse_balance.c',
    244         'start.c',
    245         'start_deferred_wire_out.c',
    246         'start_read_committed.c',
    247         'start_read_only.c',
    248         'store_wire_transfer_out.c',
    249         'template.c',
    250         'test_aml_officer.c',
    251         'trigger_kyc_rule_for_account.c',
    252         'update_aggregation_transient.c',
    253         'update_auditor.c',
    254         'update_kyc_process_by_row.c',
    255         'update_wire.c',
    256         'wad_in_insert.c',
    257         'wire_prepare_data_get.c',
    258         'wire_prepare_data_insert.c',
    259         'wire_prepare_data_mark_failed.c',
    260         'wire_prepare_data_mark_finished.c',
    261         'update_rules.c',
    262     ],
    263     soversion: solibversions['libtalerexchangedb']['soversion'],
    264     version: solibversions['libtalerexchangedb']['soversion'],
    265     install_rpath: rpath_option,
    266     dependencies: [
    267         libtalerbank_dep,
    268         libtalerkyclogic_dep,
    269         libtalerpq_dep,
    270         libtalerjson_dep,
    271         libtalerutil_dep,
    272         gnunetpq_dep,
    273         gnunetjson_dep,
    274         gnunetutil_dep,
    275         json_dep,
    276         curl_dep,
    277         pq_dep,
    278     ],
    279     include_directories: [incdir, configuration_inc],
    280     install: true,
    281     install_dir: get_option('libdir'),
    282 )
    283 
    284 libtalerexchangedb_dep = declare_dependency(link_with: libtalerexchangedb)
    285 pkg.generate(
    286     libtalerexchangedb,
    287     url: 'https://taler.net',
    288     description: 'GNU Taler exchange DB library',
    289 )
    290 
    291 
    292 # [oec 20250430] disable test for now
    293 # check_PROGRAMS = \
    294 #  test-exchangedb
    295 
    296 #executable(
    297 #    'test-exchangedb',
    298 #    ['test_exchangedb.c'],
    299 #    install_rpath: rpath_option,
    300 #    dependencies: [
    301 #        libtalerexchangedb_dep,
    302 #        libtalerutil_dep,
    303 #        libtalerjson_dep,
    304 #        libtalerpq_dep,
    305 #        gnunetutil_dep,
    306 #        gnunetjson_dep,
    307 #        pq_dep,
    308 #        json_dep,
    309 #    ],
    310 #    include_directories: [incdir, configuration_inc],
    311 #    install: false,
    312 #)
    313 
    314 
    315 executable(
    316     'bench-db-postgres',
    317     ['bench_db.c'],
    318     install_rpath: rpath_option,
    319     dependencies: [
    320         libtalerpq_dep,
    321         libtalerutil_dep,
    322         gnunetpq_dep,
    323         gnunetutil_dep,
    324         pq_dep,
    325     ],
    326     include_directories: [incdir, configuration_inc],
    327     install: false,
    328 )