gitextract_2b551nix/ ├── .circleci/ │ ├── ci_increase_chart_version.sh │ ├── ci_publish.sh │ ├── config.yml │ ├── status.sh │ └── test_runner.py ├── .formatter.exs ├── .githooks/ │ └── pre-commit ├── .github/ │ ├── PULL_REQUEST_TEMPLATE.md │ └── workflows/ │ ├── auto-merge-pr.yml │ ├── auto-pr-for-branch-syncing.yml │ └── enforce-changelog-labels.yml ├── .github_changelog_generator ├── .gitignore ├── .gitmodules ├── .releaserc.yaml ├── .tool-versions ├── AUTHORS ├── CHANGELOG.md ├── CODEOWNERS ├── Dockerfile.watcher ├── Dockerfile.watcher_info ├── LICENSE ├── Makefile ├── README.md ├── apps/ │ ├── omg_bus/ │ │ ├── lib/ │ │ │ ├── omg_bus/ │ │ │ │ ├── application.ex │ │ │ │ ├── event.ex │ │ │ │ ├── pubsub.ex │ │ │ │ └── supervisor.ex │ │ │ └── omg_bus.ex │ │ ├── mix.exs │ │ └── test/ │ │ ├── omg_bus/ │ │ │ └── event_test.exs │ │ └── test_helper.exs │ ├── omg_conformance/ │ │ ├── mix.exs │ │ └── test/ │ │ ├── omg_conformance/ │ │ │ └── conformance/ │ │ │ ├── merkle_proof_property_test.exs │ │ │ ├── merkle_proof_test.exs │ │ │ ├── signature_property_test.exs │ │ │ └── signature_test.exs │ │ ├── support/ │ │ │ └── conformance/ │ │ │ ├── merkle_proof_context.ex │ │ │ ├── merkle_proofs.ex │ │ │ ├── property.ex │ │ │ ├── signatures_hashes.ex │ │ │ └── signatures_hashes_case.ex │ │ └── test_helper.exs │ ├── omg_db/ │ │ ├── lib/ │ │ │ ├── db.ex │ │ │ └── omg_db/ │ │ │ ├── application.ex │ │ │ ├── measure.ex │ │ │ ├── models/ │ │ │ │ └── payment_exit_info.ex │ │ │ ├── release_tasks/ │ │ │ │ ├── init_key_value_db.ex │ │ │ │ ├── init_keys_with_values.ex │ │ │ │ └── set_key_value_db.ex │ │ │ ├── rocks_db.ex │ │ │ └── rocksdb/ │ │ │ ├── core.ex │ │ │ └── server.ex │ │ ├── mix.exs │ │ └── test/ │ │ ├── fixtures.exs │ │ ├── omg_db/ │ │ │ ├── application_test.exs │ │ │ ├── db_test.exs │ │ │ ├── models/ │ │ │ │ └── payment_exit_info_test.exs │ │ │ ├── release_tasks/ │ │ │ │ ├── init_key_value_db_test.exs │ │ │ │ ├── init_keys_with_values_test.exs │ │ │ │ └── set_key_value_db_test.exs │ │ │ └── rocks_db_test.exs │ │ ├── support/ │ │ │ └── rocks_db_case.ex │ │ └── test_helper.exs │ ├── omg_eth/ │ │ ├── lib/ │ │ │ ├── eth.ex │ │ │ └── omg_eth/ │ │ │ ├── application.ex │ │ │ ├── blockchain/ │ │ │ │ ├── bit_helper.ex │ │ │ │ ├── private_key.ex │ │ │ │ ├── transaction/ │ │ │ │ │ ├── hash.ex │ │ │ │ │ └── signature.ex │ │ │ │ └── transaction.ex │ │ │ ├── client.ex │ │ │ ├── configuration.ex │ │ │ ├── encoding/ │ │ │ │ └── contract_constructor.ex │ │ │ ├── encoding.ex │ │ │ ├── ethereum_height.ex │ │ │ ├── ethereum_height_monitor/ │ │ │ │ └── alarm_handler.ex │ │ │ ├── ethereum_height_monitor.ex │ │ │ ├── metric/ │ │ │ │ └── ethereumex.ex │ │ │ ├── release_tasks/ │ │ │ │ ├── set_contract.ex │ │ │ │ ├── set_ethereum_block_time.ex │ │ │ │ ├── set_ethereum_client.ex │ │ │ │ ├── set_ethereum_events_check_interval.ex │ │ │ │ └── set_ethereum_stalled_sync_threshold.ex │ │ │ ├── root_chain/ │ │ │ │ ├── abi.ex │ │ │ │ ├── abi_event_selector.ex │ │ │ │ ├── abi_function_selector.ex │ │ │ │ ├── event.ex │ │ │ │ ├── fields.ex │ │ │ │ ├── rpc.ex │ │ │ │ └── submit_block.ex │ │ │ ├── root_chain.ex │ │ │ ├── supervisor.ex │ │ │ └── transaction.ex │ │ ├── mix.exs │ │ └── test/ │ │ ├── fixtures.exs │ │ ├── omg_eth/ │ │ │ ├── application_test.exs │ │ │ ├── blockchain/ │ │ │ │ ├── bit_helper_test.exs │ │ │ │ ├── transaction/ │ │ │ │ │ ├── hash_test.exs │ │ │ │ │ └── signature_test.exs │ │ │ │ └── transaction_test.exs │ │ │ ├── client_test.exs │ │ │ ├── encoding/ │ │ │ │ └── contract_constructor_test.exs │ │ │ ├── encoding_test.exs │ │ │ ├── eth_test.exs │ │ │ ├── ethereum_height_monitor_test.exs │ │ │ ├── release_tasks/ │ │ │ │ ├── set_contract_test.exs │ │ │ │ ├── set_ethereum_block_time_test.exs │ │ │ │ ├── set_ethereum_client_test.exs │ │ │ │ ├── set_ethereum_events_check_interval_test.exs │ │ │ │ └── set_ethereum_stalled_sync_threshold_test.exs │ │ │ ├── root_chain/ │ │ │ │ ├── abi_test.exs │ │ │ │ └── event_test.exs │ │ │ └── root_chain_test.exs │ │ ├── support/ │ │ │ ├── defaults.ex │ │ │ ├── dev_geth.ex │ │ │ ├── dev_helper.ex │ │ │ ├── dev_node.ex │ │ │ ├── root_chain_helper.ex │ │ │ ├── snapshot_contracts.ex │ │ │ ├── token.ex │ │ │ ├── transaction_helper.ex │ │ │ └── wait_for.ex │ │ └── test_helper.exs │ ├── omg_status/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── lib/ │ │ │ ├── omg_status/ │ │ │ │ ├── alert/ │ │ │ │ │ ├── alarm.ex │ │ │ │ │ ├── alarm_handler.ex │ │ │ │ │ └── alarm_printer.ex │ │ │ │ ├── application.ex │ │ │ │ ├── configuration.ex │ │ │ │ ├── datadog_event/ │ │ │ │ │ ├── alarm_consumer.ex │ │ │ │ │ └── alarm_handler.ex │ │ │ │ ├── metric/ │ │ │ │ │ ├── datadog.ex │ │ │ │ │ ├── event.ex │ │ │ │ │ ├── statix.ex │ │ │ │ │ ├── telemetry.ex │ │ │ │ │ ├── tracer.ex │ │ │ │ │ └── vmstats_sink.ex │ │ │ │ ├── monitor/ │ │ │ │ │ ├── memory_monitor.ex │ │ │ │ │ └── statsd_monitor.ex │ │ │ │ ├── release_tasks/ │ │ │ │ │ ├── set_application.ex │ │ │ │ │ ├── set_logger.ex │ │ │ │ │ ├── set_sentry.ex │ │ │ │ │ └── set_tracer.ex │ │ │ │ └── sentry_filter.ex │ │ │ └── status.ex │ │ ├── mix.exs │ │ └── test/ │ │ ├── omg_status/ │ │ │ ├── alert/ │ │ │ │ └── alarm_printer_test.exs │ │ │ ├── datadog_event/ │ │ │ │ └── alarm_consumer_test.exs │ │ │ ├── integration/ │ │ │ │ └── alarms_test.exs │ │ │ ├── metric/ │ │ │ │ └── datadog_test.exs │ │ │ ├── monitor/ │ │ │ │ ├── memory_monitor_test.exs │ │ │ │ └── statsd_monitor_test.exs │ │ │ └── release_tasks/ │ │ │ ├── set_logger_test.exs │ │ │ ├── set_sentry_test.exs │ │ │ └── set_tracer_test.exs │ │ ├── sentry_filter_test.exs │ │ └── test_helper.exs │ ├── omg_utils/ │ │ ├── lib/ │ │ │ ├── omg_utils/ │ │ │ │ ├── app_version.ex │ │ │ │ ├── http_rpc/ │ │ │ │ │ ├── encoding.ex │ │ │ │ │ ├── error.ex │ │ │ │ │ ├── response.ex │ │ │ │ │ └── validators/ │ │ │ │ │ └── base.ex │ │ │ │ ├── paginator.ex │ │ │ │ └── remote_ip.ex │ │ │ └── utils.ex │ │ ├── mix.exs │ │ └── test/ │ │ ├── omg_utils/ │ │ │ ├── app_version_tet.exs │ │ │ ├── http_rpc/ │ │ │ │ ├── encoding_test.exs │ │ │ │ ├── response_test.exs │ │ │ │ └── validators/ │ │ │ │ └── base_test.exs │ │ │ └── remote_ip_test.exs │ │ └── test_helper.exs │ ├── omg_watcher/ │ │ ├── lib/ │ │ │ ├── omg_watcher/ │ │ │ │ ├── api/ │ │ │ │ │ ├── account.ex │ │ │ │ │ ├── alarm.ex │ │ │ │ │ ├── configuration.ex │ │ │ │ │ ├── in_flight_exit.ex │ │ │ │ │ ├── status.ex │ │ │ │ │ ├── status_cache/ │ │ │ │ │ │ ├── external.ex │ │ │ │ │ │ └── storage.ex │ │ │ │ │ ├── status_cache.ex │ │ │ │ │ ├── transaction.ex │ │ │ │ │ └── utxo.ex │ │ │ │ ├── application.ex │ │ │ │ ├── block.ex │ │ │ │ ├── block_getter/ │ │ │ │ │ ├── block_application.ex │ │ │ │ │ ├── core.ex │ │ │ │ │ ├── measure.ex │ │ │ │ │ ├── status.ex │ │ │ │ │ └── supervisor.ex │ │ │ │ ├── block_getter.ex │ │ │ │ ├── block_validator.ex │ │ │ │ ├── child_manager.ex │ │ │ │ ├── configuration.ex │ │ │ │ ├── coordinator_setup.ex │ │ │ │ ├── crypto.ex │ │ │ │ ├── datadog_event/ │ │ │ │ │ ├── contract_event_consumer.ex │ │ │ │ │ └── encode.ex │ │ │ │ ├── ethereum_event_aggregator.ex │ │ │ │ ├── ethereum_event_listener/ │ │ │ │ │ ├── core.ex │ │ │ │ │ └── measure.ex │ │ │ │ ├── ethereum_event_listener.ex │ │ │ │ ├── event.ex │ │ │ │ ├── exit_processor/ │ │ │ │ │ ├── canonicity.ex │ │ │ │ │ ├── competitor_info.ex │ │ │ │ │ ├── core.ex │ │ │ │ │ ├── double_spend.ex │ │ │ │ │ ├── exit_info.ex │ │ │ │ │ ├── finalizations.ex │ │ │ │ │ ├── in_flight_exit_info.ex │ │ │ │ │ ├── known_tx.ex │ │ │ │ │ ├── measure.ex │ │ │ │ │ ├── piggyback.ex │ │ │ │ │ ├── request.ex │ │ │ │ │ ├── standard_exit.ex │ │ │ │ │ ├── tools.ex │ │ │ │ │ └── tx_appendix.ex │ │ │ │ ├── exit_processor.ex │ │ │ │ ├── fees/ │ │ │ │ │ └── fee_filter.ex │ │ │ │ ├── fees.ex │ │ │ │ ├── http_rpc/ │ │ │ │ │ ├── adapter.ex │ │ │ │ │ └── client.ex │ │ │ │ ├── merge_transaction_validator.ex │ │ │ │ ├── merkle.ex │ │ │ │ ├── monitor.ex │ │ │ │ ├── output.ex │ │ │ │ ├── raw_data.ex │ │ │ │ ├── release_tasks/ │ │ │ │ │ ├── set_application.ex │ │ │ │ │ ├── set_ethereum_events_check_interval.ex │ │ │ │ │ ├── set_exit_processor_sla_margin.ex │ │ │ │ │ └── set_tracer.ex │ │ │ │ ├── root_chain_coordinator/ │ │ │ │ │ ├── core.ex │ │ │ │ │ ├── measure.ex │ │ │ │ │ └── service.ex │ │ │ │ ├── root_chain_coordinator.ex │ │ │ │ ├── signature.ex │ │ │ │ ├── state/ │ │ │ │ │ ├── core.ex │ │ │ │ │ ├── measure.ex │ │ │ │ │ ├── measurement_calculation.ex │ │ │ │ │ ├── transaction/ │ │ │ │ │ │ ├── fee.ex │ │ │ │ │ │ ├── payment.ex │ │ │ │ │ │ ├── recovered.ex │ │ │ │ │ │ ├── signed.ex │ │ │ │ │ │ ├── validator/ │ │ │ │ │ │ │ ├── fee_claim.ex │ │ │ │ │ │ │ └── payment.ex │ │ │ │ │ │ ├── validator.ex │ │ │ │ │ │ └── witness.ex │ │ │ │ │ ├── transaction.ex │ │ │ │ │ └── utxo_set.ex │ │ │ │ ├── state.ex │ │ │ │ ├── supervisor.ex │ │ │ │ ├── sync_supervisor.ex │ │ │ │ ├── tracer.ex │ │ │ │ ├── typed_data_hash/ │ │ │ │ │ ├── config.ex │ │ │ │ │ ├── tools.ex │ │ │ │ │ └── types.ex │ │ │ │ ├── typed_data_hash.ex │ │ │ │ ├── utxo/ │ │ │ │ │ └── position.ex │ │ │ │ ├── utxo.ex │ │ │ │ ├── utxo_exit/ │ │ │ │ │ └── core.ex │ │ │ │ └── wire_format_types.ex │ │ │ └── omg_watcher.ex │ │ ├── mix.exs │ │ └── test/ │ │ ├── fixtures.exs │ │ ├── omg_watcher/ │ │ │ ├── api/ │ │ │ │ ├── account_test.exs │ │ │ │ ├── alarm_test.exs │ │ │ │ └── status_cache_test.exs │ │ │ ├── block_getter/ │ │ │ │ └── core_test.exs │ │ │ ├── block_test.exs │ │ │ ├── block_validator_test.exs │ │ │ ├── child_manager_test.exs │ │ │ ├── crypto_test.exs │ │ │ ├── datadog_event/ │ │ │ │ ├── contract_event_consumer_test.exs │ │ │ │ └── encode_test.exs │ │ │ ├── ethereum_event_aggregator_test.exs │ │ │ ├── ethereum_event_listener/ │ │ │ │ └── core_test.exs │ │ │ ├── exit_processor/ │ │ │ │ ├── canonicity_test.exs │ │ │ │ ├── core/ │ │ │ │ │ └── state_interaction_test.exs │ │ │ │ ├── core_test.exs │ │ │ │ ├── exit_info_test.exs │ │ │ │ ├── finalizations_test.exs │ │ │ │ ├── in_flight_exit_info_test.exs │ │ │ │ ├── persistence_test.exs │ │ │ │ ├── piggyback_test.exs │ │ │ │ ├── standard_exit_test.exs │ │ │ │ └── tools_test.exs │ │ │ ├── fees/ │ │ │ │ └── fee_filter_test.exs │ │ │ ├── fees_test.exs │ │ │ ├── http_rpc/ │ │ │ │ └── adapter_test.exs │ │ │ ├── integration/ │ │ │ │ ├── block_getter_1_test.exs │ │ │ │ ├── block_getter_2_test.exs │ │ │ │ ├── block_getter_3_test.exs │ │ │ │ ├── block_getter_4_test.exs │ │ │ │ ├── block_getter_test.exs │ │ │ │ ├── in_flight_exit_test.exs │ │ │ │ ├── in_flight_exit_test_1_test.exs │ │ │ │ ├── in_flight_exit_test_2_test.exs │ │ │ │ ├── in_flight_exit_test_3_test.exs │ │ │ │ ├── in_flight_exit_test_4_test.exs │ │ │ │ ├── invalid_exit_1_test.exs │ │ │ │ ├── invalid_exit_2_test.exs │ │ │ │ ├── monitor_test.exs │ │ │ │ ├── root_chain_coordinator_test.exs │ │ │ │ └── test_server_test.exs │ │ │ ├── merge_transaction_validator_test.exs │ │ │ ├── merkle_test.exs │ │ │ ├── output_test.exs │ │ │ ├── raw_data_test.exs │ │ │ ├── release_tasks/ │ │ │ │ ├── set_ethereum_events_check_interval_test.exs │ │ │ │ ├── set_exit_processor_sla_margin_test.exs │ │ │ │ └── set_tracer_test.exs │ │ │ ├── root_chain_coordinator/ │ │ │ │ └── core_test.exs │ │ │ ├── signature_test.exs │ │ │ ├── state/ │ │ │ │ ├── core_test.exs │ │ │ │ ├── measurement_calculation_test.exs │ │ │ │ ├── persistence_test.exs │ │ │ │ ├── transaction/ │ │ │ │ │ ├── fee_test.exs │ │ │ │ │ ├── recovered_test.exs │ │ │ │ │ └── witness_test.exs │ │ │ │ ├── transaction_test.exs │ │ │ │ └── utxo_set_test.exs │ │ │ ├── state_test.exs │ │ │ ├── supervisor_test.exs │ │ │ ├── typed_data_hash_test.exs │ │ │ ├── utxo/ │ │ │ │ └── position_test.exs │ │ │ ├── utxo_exit/ │ │ │ │ └── core_test.exs │ │ │ ├── utxo_test.exs │ │ │ └── wire_format_types_test.exs │ │ ├── support/ │ │ │ ├── dev_crypto.ex │ │ │ ├── exit_processor/ │ │ │ │ ├── case.ex │ │ │ │ └── test_helper.ex │ │ │ ├── integration/ │ │ │ │ ├── bad_child_chain_server.ex │ │ │ │ ├── deposit_helper.ex │ │ │ │ ├── fixtures.exs │ │ │ │ ├── test_helper.ex │ │ │ │ └── test_server.ex │ │ │ ├── signature_helper.ex │ │ │ ├── test_helper.ex │ │ │ └── watcher_helper.ex │ │ └── test_helper.exs │ ├── omg_watcher_info/ │ │ ├── lib/ │ │ │ ├── omg_watcher_info/ │ │ │ │ ├── api/ │ │ │ │ │ ├── account.ex │ │ │ │ │ ├── block.ex │ │ │ │ │ ├── deposit.ex │ │ │ │ │ ├── stats.ex │ │ │ │ │ └── transaction.ex │ │ │ │ ├── application.ex │ │ │ │ ├── block_applicator.ex │ │ │ │ ├── db/ │ │ │ │ │ ├── block.ex │ │ │ │ │ ├── eth_event.ex │ │ │ │ │ ├── eth_event_txoutput.ex │ │ │ │ │ ├── repo.ex │ │ │ │ │ ├── transaction.ex │ │ │ │ │ ├── txoutput.ex │ │ │ │ │ └── types/ │ │ │ │ │ ├── atom_type.ex │ │ │ │ │ ├── block/ │ │ │ │ │ │ └── chunk.ex │ │ │ │ │ └── integer_type.ex │ │ │ │ ├── http_rpc/ │ │ │ │ │ ├── adapter.ex │ │ │ │ │ └── client.ex │ │ │ │ ├── measure.ex │ │ │ │ ├── order_fee_fetcher.ex │ │ │ │ ├── release_tasks/ │ │ │ │ │ ├── init_postgresql_db.ex │ │ │ │ │ └── set_tracer.ex │ │ │ │ ├── supervisor.ex │ │ │ │ ├── tracer.ex │ │ │ │ ├── transaction.ex │ │ │ │ └── utxo_selection.ex │ │ │ └── watcher_info.ex │ │ ├── mix.exs │ │ ├── priv/ │ │ │ └── repo/ │ │ │ └── migrations/ │ │ │ ├── 20180813131000_create_block_table.exs │ │ │ ├── 20180813131706_create_transaction_table.exs │ │ │ ├── 20180813133000_create_ethevent_table.exs │ │ │ ├── 20180813143343_create_txoutput_table.exs │ │ │ ├── 20190314105410_alter_transactions_table_add_metadata_field.exs │ │ │ ├── 20190315095855_alter_transactions_table_add_partitial_index.exs │ │ │ ├── 20190408131000_add_missing_indices_to_txoutputs.exs │ │ │ ├── 20190806111817_alter_txoutputs_ethevents_make_many_to_many_relation.exs │ │ │ ├── 20190917165912_set_inserted_at_updated_at_to_epoc.exs │ │ │ ├── 20200129051756_index_block_timestamp.exs │ │ │ ├── 20200211064454_add_txtype_to_transaction_and_output.exs │ │ │ ├── 20200214132000_add_and_fix_timestamps.exs │ │ │ ├── 20200514115919_add_eth_height_to_eth_events.exs │ │ │ └── 20200529085008_create_pending_block_table.exs │ │ └── test/ │ │ ├── fixtures.exs │ │ ├── omg_watcher_info/ │ │ │ ├── api/ │ │ │ │ ├── block_test.exs │ │ │ │ ├── deposit_test.exs │ │ │ │ ├── stats_test.exs │ │ │ │ └── transaction_test.exs │ │ │ ├── block_applicator_test.exs │ │ │ ├── db/ │ │ │ │ ├── block/ │ │ │ │ │ └── chunk_test.exs │ │ │ │ ├── block_test.exs │ │ │ │ ├── eth_event_test.exs │ │ │ │ ├── transaction_test.exs │ │ │ │ └── txoutput_test.exs │ │ │ ├── http_rpc/ │ │ │ │ └── adapter_test.exs │ │ │ ├── order_fee_fetcher_test.exs │ │ │ ├── release_tasks/ │ │ │ │ └── set_tracer_test.exs │ │ │ ├── transaction_test.exs │ │ │ └── utxo_selection_test.exs │ │ ├── support/ │ │ │ ├── factories/ │ │ │ │ ├── block_factory.ex │ │ │ │ ├── data_helper.ex │ │ │ │ ├── eth_event_factory.ex │ │ │ │ ├── transaction_factory.ex │ │ │ │ └── txoutput_factory.ex │ │ │ ├── factory.ex │ │ │ └── test_server.ex │ │ └── test_helper.exs │ ├── omg_watcher_rpc/ │ │ ├── lib/ │ │ │ ├── application.ex │ │ │ ├── configuration.ex │ │ │ ├── release_tasks/ │ │ │ │ ├── set_api_mode.ex │ │ │ │ ├── set_endpoint.ex │ │ │ │ └── set_tracer.ex │ │ │ ├── tracer.ex │ │ │ ├── web/ │ │ │ │ ├── controllers/ │ │ │ │ │ ├── account.ex │ │ │ │ │ ├── alarm.ex │ │ │ │ │ ├── block.ex │ │ │ │ │ ├── challenge.ex │ │ │ │ │ ├── configuration.ex │ │ │ │ │ ├── deposit.ex │ │ │ │ │ ├── fallback.ex │ │ │ │ │ ├── fee.ex │ │ │ │ │ ├── in_flight_exit.ex │ │ │ │ │ ├── stats.ex │ │ │ │ │ ├── status.ex │ │ │ │ │ ├── transaction.ex │ │ │ │ │ └── utxo.ex │ │ │ │ ├── endpoint.ex │ │ │ │ ├── plugs/ │ │ │ │ │ ├── health.ex │ │ │ │ │ ├── method_param_filter.ex │ │ │ │ │ └── supported_watcher_modes.ex │ │ │ │ ├── response.ex │ │ │ │ ├── router.ex │ │ │ │ ├── serializers/ │ │ │ │ │ └── base.ex │ │ │ │ ├── sockets/ │ │ │ │ │ └── socket.ex │ │ │ │ ├── validators/ │ │ │ │ │ ├── account_constraints.ex │ │ │ │ │ ├── block_constraints.ex │ │ │ │ │ ├── deposit_constraints.ex │ │ │ │ │ ├── helpers.ex │ │ │ │ │ ├── merge_constraints.ex │ │ │ │ │ ├── order.ex │ │ │ │ │ ├── transaction_constraints.ex │ │ │ │ │ └── typed_data_signed.ex │ │ │ │ └── views/ │ │ │ │ ├── account.ex │ │ │ │ ├── alarm.ex │ │ │ │ ├── block.ex │ │ │ │ ├── challenge.ex │ │ │ │ ├── configuration.ex │ │ │ │ ├── deposit.ex │ │ │ │ ├── error.ex │ │ │ │ ├── fee.ex │ │ │ │ ├── in_flight_exit.ex │ │ │ │ ├── stats.ex │ │ │ │ ├── status.ex │ │ │ │ ├── transaction.ex │ │ │ │ └── utxo.ex │ │ │ └── web.ex │ │ ├── mix.exs │ │ ├── priv/ │ │ │ └── swagger/ │ │ │ ├── info_api_specs/ │ │ │ │ ├── account/ │ │ │ │ │ ├── paths.yaml │ │ │ │ │ ├── request_bodies.yaml │ │ │ │ │ ├── response_schemas.yaml │ │ │ │ │ ├── responses.yaml │ │ │ │ │ └── schemas.yaml │ │ │ │ ├── alarm/ │ │ │ │ │ ├── alarms_schema.yml │ │ │ │ │ ├── paths.yaml │ │ │ │ │ ├── response_schemas.yaml │ │ │ │ │ ├── responses.yaml │ │ │ │ │ └── schemas.yaml │ │ │ │ ├── batch_transaction/ │ │ │ │ │ ├── paths.yaml │ │ │ │ │ ├── request_bodies.yaml │ │ │ │ │ ├── response_schemas.yaml │ │ │ │ │ ├── responses.yaml │ │ │ │ │ └── schemas.yaml │ │ │ │ ├── block/ │ │ │ │ │ ├── paths.yaml │ │ │ │ │ ├── request_bodies.yaml │ │ │ │ │ ├── response_schemas.yaml │ │ │ │ │ ├── responses.yaml │ │ │ │ │ └── schemas.yaml │ │ │ │ ├── configuration/ │ │ │ │ │ ├── configuration_schema.yml │ │ │ │ │ ├── paths.yaml │ │ │ │ │ ├── response_schemas.yaml │ │ │ │ │ ├── responses.yaml │ │ │ │ │ └── schemas.yaml │ │ │ │ ├── deposit/ │ │ │ │ │ ├── paths.yaml │ │ │ │ │ ├── request_bodies.yaml │ │ │ │ │ ├── response_schemas.yaml │ │ │ │ │ ├── responses.yaml │ │ │ │ │ └── schemas.yaml │ │ │ │ ├── fees/ │ │ │ │ │ ├── paths.yaml │ │ │ │ │ ├── request_bodies.yaml │ │ │ │ │ ├── response_schemas.yaml │ │ │ │ │ ├── responses.yaml │ │ │ │ │ └── schemas.yaml │ │ │ │ ├── response_schemas.yaml │ │ │ │ ├── responses.yaml │ │ │ │ ├── stats/ │ │ │ │ │ ├── paths.yaml │ │ │ │ │ ├── response_schemas.yaml │ │ │ │ │ ├── responses.yaml │ │ │ │ │ └── schemas.yaml │ │ │ │ ├── swagger.yaml │ │ │ │ └── transaction/ │ │ │ │ ├── paths.yaml │ │ │ │ ├── request_bodies.yaml │ │ │ │ ├── response_schemas.yaml │ │ │ │ ├── responses.yaml │ │ │ │ └── schemas.yaml │ │ │ ├── info_api_specs.yaml │ │ │ ├── security_critical_api_specs/ │ │ │ │ ├── account/ │ │ │ │ │ ├── paths.yaml │ │ │ │ │ ├── request_bodies.yaml │ │ │ │ │ ├── response_schemas.yaml │ │ │ │ │ ├── responses.yaml │ │ │ │ │ └── schemas.yaml │ │ │ │ ├── alarm/ │ │ │ │ │ ├── alarms_schema.yml │ │ │ │ │ ├── paths.yaml │ │ │ │ │ ├── response_schemas.yaml │ │ │ │ │ ├── responses.yaml │ │ │ │ │ └── schemas.yaml │ │ │ │ ├── batch_transaction/ │ │ │ │ │ ├── paths.yaml │ │ │ │ │ ├── request_bodies.yaml │ │ │ │ │ ├── response_schemas.yaml │ │ │ │ │ ├── responses.yaml │ │ │ │ │ └── schemas.yaml │ │ │ │ ├── block/ │ │ │ │ │ ├── paths.yaml │ │ │ │ │ ├── request_bodies.yaml │ │ │ │ │ ├── response_schemas.yaml │ │ │ │ │ ├── responses.yaml │ │ │ │ │ └── schemas.yaml │ │ │ │ ├── configuration/ │ │ │ │ │ ├── configuration_schema.yml │ │ │ │ │ ├── paths.yaml │ │ │ │ │ ├── response_schemas.yaml │ │ │ │ │ ├── responses.yaml │ │ │ │ │ └── schemas.yaml │ │ │ │ ├── in_flight_exit/ │ │ │ │ │ ├── paths.yaml │ │ │ │ │ ├── request_bodies.yaml │ │ │ │ │ ├── response_schemas.yaml │ │ │ │ │ ├── responses.yaml │ │ │ │ │ └── schemas.yaml │ │ │ │ ├── response_schemas.yaml │ │ │ │ ├── responses.yaml │ │ │ │ ├── status/ │ │ │ │ │ ├── byzantine_events_schema.yml │ │ │ │ │ ├── paths.yaml │ │ │ │ │ ├── request_bodies.yaml │ │ │ │ │ ├── response_schemas.yaml │ │ │ │ │ ├── responses.yaml │ │ │ │ │ └── schemas.yaml │ │ │ │ ├── swagger.yaml │ │ │ │ ├── transaction/ │ │ │ │ │ ├── paths.yaml │ │ │ │ │ ├── request_bodies.yaml │ │ │ │ │ ├── response_schemas.yaml │ │ │ │ │ ├── responses.yaml │ │ │ │ │ └── schemas.yaml │ │ │ │ └── utxo/ │ │ │ │ ├── paths.yaml │ │ │ │ ├── request_bodies.yaml │ │ │ │ ├── response_schemas.yaml │ │ │ │ ├── responses.yaml │ │ │ │ └── schemas.yaml │ │ │ ├── security_critical_api_specs.yaml │ │ │ ├── shared/ │ │ │ │ ├── paths.yaml │ │ │ │ ├── request_bodies.yaml │ │ │ │ └── schemas.yaml │ │ │ └── swagger.md │ │ └── test/ │ │ ├── omg_watcher_rpc/ │ │ │ ├── release_tasks/ │ │ │ │ ├── set_endpoint_test.exs │ │ │ │ └── set_tracer_test.exs │ │ │ ├── tracer_test.exs │ │ │ └── web/ │ │ │ ├── conn_case.ex │ │ │ ├── controllers/ │ │ │ │ ├── account_test.exs │ │ │ │ ├── alarm_test.exs │ │ │ │ ├── block_test.exs │ │ │ │ ├── challenge_test.exs │ │ │ │ ├── deposit_test.exs │ │ │ │ ├── enforce_content_plug_test.exs │ │ │ │ ├── fallback_test.exs │ │ │ │ ├── fee_test.exs │ │ │ │ ├── in_flight_exit_test.exs │ │ │ │ ├── stats_test.exs │ │ │ │ ├── status_test.exs │ │ │ │ ├── transaction_test.exs │ │ │ │ └── utxo_test.exs │ │ │ ├── data_case.ex │ │ │ ├── plugs/ │ │ │ │ ├── method_param_filter_test.exs │ │ │ │ └── supported_watcher_modes_test.exs │ │ │ ├── response_test.exs │ │ │ ├── router_test.exs │ │ │ ├── validators/ │ │ │ │ ├── account_contraints_test.exs │ │ │ │ ├── block_constraints_test.exs │ │ │ │ ├── merge_constraints_test.exs │ │ │ │ ├── transaction_constraints_test.exs │ │ │ │ └── typed_data_signed_test.exs │ │ │ ├── view_case.ex │ │ │ └── views/ │ │ │ └── transaction_test.exs │ │ └── test_helper.exs │ └── xomg_tasks/ │ ├── lib/ │ │ ├── mix/ │ │ │ └── tasks/ │ │ │ ├── watcher.ex │ │ │ └── watcher_info.ex │ │ └── utils.ex │ ├── mix.exs │ └── test/ │ └── test_helper.exs ├── bin/ │ ├── generate-localchain-env │ ├── revert │ ├── rocksdb │ ├── setup │ ├── variables │ └── variables_test_barebone ├── config/ │ ├── .credo.exs │ ├── config.exs │ ├── credo/ │ │ ├── license_header.ex │ │ └── require_parentheses_on_zero_arity_defs.ex │ ├── dev.exs │ ├── prod.exs │ ├── releases.exs │ └── test.exs ├── contract_addresses_template.env ├── coveralls.json ├── dialyzer.ignore-warnings ├── docker/ │ ├── create_databases.sql │ ├── geth/ │ │ ├── command │ │ └── geth-blank-password │ ├── nginx/ │ │ ├── geth_nginx.conf │ │ ├── nginx.conf │ │ └── nginx.reorg.conf │ └── static_feefeed/ │ └── file.json ├── docker-compose-infura.yml ├── docker-compose-watcher.yml ├── docker-compose.datadog.yml ├── docker-compose.dev.yml ├── docker-compose.feefeed.yml ├── docker-compose.reorg.yml ├── docker-compose.specs.yml ├── docker-compose.yml ├── docs/ │ ├── api_specs/ │ │ ├── errors.md │ │ ├── index.html.md │ │ └── status_events_specs.md │ ├── architecture.md │ ├── branching.md │ ├── deployment_configuration.md │ ├── details.md │ ├── dex_design.md │ ├── exit_validation.md │ ├── fee_design.md │ ├── in_flight_exit_scenarios.md │ ├── install.md │ ├── morevp.md │ ├── perf_test_result_dumps.md │ ├── run_local_watcher.md │ ├── source_consumption_log.md │ ├── stack_architecture.md │ ├── standard_vs_in_flight_exits_interaction.md │ ├── tesuji_blockchain_design.md │ ├── transaction_validation.md │ ├── unified_api.md │ └── watcher_db_design.md ├── dummy ├── fees_setup.env ├── mix.exs ├── priv/ │ ├── dev-artifacts/ │ │ ├── README.md │ │ ├── fee_specs.dev.json │ │ └── fee_specs.test.json │ └── perf/ │ ├── .formatter.exs │ ├── .gitignore │ ├── Dockerfile │ ├── Makefile │ ├── README.md │ ├── apps/ │ │ └── load_test/ │ │ ├── .formatter.exs │ │ ├── .gitignore │ │ ├── README.md │ │ ├── lib/ │ │ │ ├── application.ex │ │ │ ├── child_chain/ │ │ │ │ ├── abi/ │ │ │ │ │ ├── abi_event_selector.ex │ │ │ │ │ ├── abi_function_selector.ex │ │ │ │ │ └── fields.ex │ │ │ │ ├── abi.ex │ │ │ │ ├── deposit.ex │ │ │ │ ├── exit.ex │ │ │ │ ├── transaction.ex │ │ │ │ ├── utxos.ex │ │ │ │ └── watcher_sync.ex │ │ │ ├── connection/ │ │ │ │ ├── child_chain.ex │ │ │ │ ├── connection_defaults.ex │ │ │ │ ├── watcher_info.ex │ │ │ │ └── watcher_security.ex │ │ │ ├── ethereum/ │ │ │ │ ├── account.ex │ │ │ │ ├── bit_helper.ex │ │ │ │ ├── crypto.ex │ │ │ │ ├── ethereum.ex │ │ │ │ ├── hash.ex │ │ │ │ ├── nonce_tracker.ex │ │ │ │ └── transaction/ │ │ │ │ ├── signature.ex │ │ │ │ └── transaction.ex │ │ │ ├── performance.ex │ │ │ ├── runner/ │ │ │ │ ├── childchain.ex │ │ │ │ ├── deposits.ex │ │ │ │ ├── smoke.ex │ │ │ │ ├── standard_exits.ex │ │ │ │ ├── transactions.ex │ │ │ │ ├── utxos_load.ex │ │ │ │ └── watcher_info.ex │ │ │ ├── scenario/ │ │ │ │ ├── account_transactions.ex │ │ │ │ ├── create_utxos.ex │ │ │ │ ├── deposits.ex │ │ │ │ ├── fund_account.ex │ │ │ │ ├── many_standard_exits.ex │ │ │ │ ├── smoke.ex │ │ │ │ ├── spend_eth_utxo.ex │ │ │ │ ├── start_standard_exit.ex │ │ │ │ ├── transactions.ex │ │ │ │ └── watcher_status.ex │ │ │ ├── service/ │ │ │ │ ├── datadog/ │ │ │ │ │ ├── api.ex │ │ │ │ │ └── dummy_statix.ex │ │ │ │ ├── datadog.ex │ │ │ │ ├── faucet.ex │ │ │ │ ├── metrics.ex │ │ │ │ ├── sleeper.ex │ │ │ │ └── sync.ex │ │ │ ├── test_runner/ │ │ │ │ ├── config.ex │ │ │ │ └── help.ex │ │ │ ├── test_runner.ex │ │ │ ├── utils/ │ │ │ │ └── encoding.ex │ │ │ └── watcher_info/ │ │ │ ├── balance.ex │ │ │ ├── client.ex │ │ │ ├── transaction.ex │ │ │ └── utxo.ex │ │ ├── mix.exs │ │ └── test/ │ │ ├── load_test/ │ │ │ ├── runner/ │ │ │ │ ├── childchain_test.exs │ │ │ │ ├── smoke_test.exs │ │ │ │ ├── standard_exit_test.exs │ │ │ │ ├── utxos_load_test.exs │ │ │ │ └── watcher_info_test.exs │ │ │ └── service/ │ │ │ └── datadog/ │ │ │ └── api_test.exs │ │ └── test_helper.exs │ ├── config/ │ │ ├── .credo.exs │ │ ├── config.exs │ │ ├── dev.exs │ │ ├── stress.exs │ │ └── test.exs │ ├── mix.exs │ └── scripts/ │ └── generate_api_client.sh ├── rel/ │ └── env.sh.eex ├── rootfs/ │ ├── watcher_entrypoint │ └── watcher_info_entrypoint ├── snapshot_reorg.env └── snapshots.env