Commit Graph

18 Commits

Author SHA1 Message Date
Matías Martínez 752f6117f5
[blockchain watcher] add influxdb as supported target (#1539)
* make targets optional + fix tests

* move filtering errors to solana mappers

* increase coverage requirement

* add influx unit test

* not allowing objects or arrays to be part of influx points
2024-07-09 13:54:17 -03:00
Julian b248892feb
[Blockchain Watcher] (FIX) Improve rpc providers instance (#1524)
* Improve evm client instance and logs events

* Improve solana redeem log

* Improve rpc poll providers

* Create decorator class

* Change MAX_DIFF_BLOCK_HEIGHT value for 10_000

* Improve code

* Change debug log for info

* Override get function

* Improve imports

* Update rpc poll version

* Resolve test and mock

* Improve staticJob test

---------

Co-authored-by: julian merlo <julianmerlo@julians-MacBook-Pro-2.local>
2024-07-01 17:35:37 -03:00
Julian 6f7d457386
[Blockchain Watcher] (ALGORAND) Map algorand events (source and target) (#1505)
* Start implement algorand events

* Create handler and improve repository

* Create mapper for redeem events

* Resolve some //TODO comments

* Support source events

* Improve application id name

* Validate payload length

* Validate logs property

* Add all test for infrastructere and domain

* Improve code

* Remove any type

* Remove throw for wormchain

* Resolve comment in PR

---------

Co-authored-by: julian merlo <julianmerlo@julians-MacBook-Pro-2.local>
2024-06-25 16:56:15 -03:00
Julian 31e87382d6
[Blockchain Watcher] (FIX -SEI) Improve sei redeems (#1490)
* Improve sei redeems

* Valiadate timestamp value

* Resolve sei redeem test

---------

Co-authored-by: julian merlo <julianmerlo@julians-MacBook-Pro-2.local>
2024-06-14 18:28:41 -03:00
Julian 8628d1f915
[Blockchain Watcher] (COSMOS) Map cosmos redeem (#1418)
* Map event for wormchain redeem

* Map redeem for osmosis

* Add new dependencies for cosmos

* Improve wormchain repository

* Map mainnet job

* Map kujira and injective redeem

* Map metricName

* Create retries

* Add test

* Map dependencies

* Map dependencies

* Merge to main

* Add redeem test

* Improve comments

* Map testnet job and rpcs

* Create wormchain repositories test

* Resolve test and metrics

* Improve StandardRelayer type

* Change name for ibc transaction

* Change name for ibc transaction

* Add array name for IBC transactions

* Resolve some comments

* Create test for getRedeems

* Resolve comment in PR

* Resolve comment in PR

* Resolve comment in PR

* Improve while

---------

Co-authored-by: julian merlo <julianmerlo@julians-MacBook-Pro.local>
2024-05-31 12:39:07 -03:00
Martin Picco 847b8686d0
[Blockchain Watcher] Add redeem tracking for native token transfers (NTT) on EVM (#1178)
* Add redeem tracking for native token transfers (NTT)

* Add redeem tracking for native token transfers (NTT) through standard relaying

* Allow configuring the get evm transactions action to match multiple topics on one transactions by defining an array instead of a single string entry on the topics array

* Fill in mainnet and testnet standard relayers

* Remove filter field from HandleEvmTransactions filter

* Address some review comments

* Add ntt testnet contracts for both ethereum and arbitrum sepolia
2024-03-08 14:08:09 -03:00
Julian ca8a5da9cf
[Blockchain Watcher] (FIX) Add content type header (#1114)
* Add  content type header

* Remove rcp for arbitrum

---------

Co-authored-by: julian merlo <julianmerlo@julians-MacBook-Pro.local>
2024-02-12 16:25:01 -03:00
Martin Picco 59705a5bad
Implement rpc pool library (#1085)
* Add rpc-pool dependency and make the minimum changes to make the codebase compatible with it

* Implement rpc provider pools for EVMs and Sui

* Implement rpc provider pools for Solana

* Adapt tests to new repo interfaces and constructors

* Fix tests

* Modify gh action to use the xlabs registry

* Mock rpc-pool module for tests

* Set up husky and pre commit hook to run prettier

* Bump rpc-pool

* Expand default mainnet rpc configs

* Add link-staged to run prettier for staged files

* prettier config

* Address PR comments

* Add bsc rpc node

* fix rpc configs
2024-02-07 16:50:05 -03:00
Martin Picco e2025ee6ee
[Blockchain Watcher] (SUI) Initial implementation for Sui through polling (#1054)
* Initial implementation for Sui through block polling

* PollSui: add check for when the cursor reaches the latest (no new checkpoints to process)

* Change types for poll sui config from/to range

* coverage for sui rpc repo

* Add test for PollSui batchSize param

* Apply prettier

* Upgrade typescript and tsx dev deps

* Remove commented code

* Address some review comments

* Add SuiPollTransactions source

* Fix divideIntoBatches types

* Apply prettier

* Fix cursor issue when no configured range. Add test to mapper

* Remove PollSuiCheckpoints

* Query transactions by event instead of by called module in order to catch both transfers with and without payload

* Remove unusued GetSuiTransactions action

* Address some review comments

* Address review comments. Go back to using queryTransactions instead of events (querying by events would mean losing failed redeems)

* Allow undefined filter

* Add sui job to deployments

* Fix job target

* Split sui job into two with different filters: one for complete_transfer and another for complete_transfer_with_payload. This will speed up the processing of both cases

* Fix sui jobs mainnet/testnet mix up

* Fix prometheus issue

* run prettier

* Fix message blockTime for sui transfer-redeemed event

* Add asyncdoc entry for new event transfer-redeemed

* Add missing channel to asyncapi
2024-02-02 12:35:52 -03:00
Julian d7dae2413e
[Blockchain Watcher] (EVM) Support evm fail redeem (#919)
* feature-823/support-evm-fail-redeem

* feature-823/support-evm-fail-redeem

* Ad handler fo transactions flow

* Integrate test and handler

* Run prettier

* Create unit test for methodNameByAddressMapper and GetEvmTransactions class

* Improve names

* Add logger info

* Improve log name and mapped methods

* Run prettier

* Implement strategy to process message

* Run prettier

* Run prettier

* Resolve method test

* Mapped timestamp value

* Change string to number in chainId property

* Improve names and mappers

* Run prettier

* Create interface for strategy

* Resolve method GetEvmTransactions test

* Resolve comment in PR

* Resolve comment in PR

* Rename redeem-failed

* Improve rage value

* Run prettier

* Reduce mapper in one evmTransferFoundMapper

* Mapped standar relay name

* Improve readme

* Change evmTransactionFoundMapper name

* Change evm mapper name in object return

* Mapped evm mapper test

* Map EvmTransactionFound in asyncapi docs

* Improve name in methods mapper

* Implement batch request for getTransactionReceipt method

* Add error manage in getTransactionReceipt method

* Rename protocol MethodCompleteTransferWithRelay

---------

Co-authored-by: julian merlo <julianmerlo@julians-MacBook-Pro.local>
2023-12-22 17:50:38 -03:00
Julian b60936cf9e
[Blockchain Watcher] (EVM) Add polygon chain (#902)
* feature-826/enable-evm-arbitrum-chain

* Improve arbitrum implementation

* Add removeDuplicates method and divide blocks into testnet and mainnet

* Delete findAssociatedL1Block method

* feature-826/enable-evm-moonbeam-chain

* Improve result

* Add max attempts

* Add job

* Mapped in custom-env

* Add test

* Add configMock

* Resolve comment in PR

* Resolve comment in PR

* Resolve comment in PR

* Resolve test

* Define variables inside the object

* change interval value in testnet

* Add equal attempts to maxAttempts

* feature-826/enable-evm-polygon-chain

* Resolve main conflict

* Resolve main repositoriesBuilder

* Improve mainnet url

* Change default url

* Mapped finalized flow

* Resolve comment in PR

* change cfg to protected

---------

Co-authored-by: Julian Merlo <julianmerlo@MacBook-Pro-de-Julian.local>
Co-authored-by: julian merlo <julianmerlo@julians-MacBook-Pro.local>
2023-12-13 15:09:33 -03:00
Matías Martínez e2884690e1
[Blockchain watcher] TransferRedeemed/Delivery events for evm (#844)
* adding more overrides via env var

* simplifying default cfg files

* shared evm repo

* move get evm logs to new action

* move get solana txs to new action

* minor folder cleanup

* smaller docker image

* add evm transfer redeemed parsing

* adding standard relayers delivery event

* adding to runtime

* remove redeem job handlers for now

* [Blockchain watcher] Transfer redeemed events for Solana (#855)

* solana transfer redeemed evt

* pr comments

* missine prop in evt example

* support for complete transfers with payload

* add solana redeem example

* fixing err message
2023-12-12 16:55:09 -03:00
Julian a4bf43c17e
[Blockchain Watcher] (EVM) Add moonbeam chain (#886)
* feature-826/enable-evm-arbitrum-chain

* Improve arbitrum implementation

* Add removeDuplicates method and divide blocks into testnet and mainnet

* Delete findAssociatedL1Block method

* feature-826/enable-evm-moonbeam-chain

* Improve result

* Add max attempts

* Add job

* Mapped in custom-env

* Add test

* Add configMock

* Resolve comment in PR

* Resolve comment in PR

* Resolve comment in PR

* Resolve test

* Define variables inside the object

* change interval value in testnet

* Add equal attempts to maxAttempts

* Add timers/promises to sleep function

* Run prettier

---------

Co-authored-by: Julian Merlo <julianmerlo@MacBook-Pro-de-Julian.local>
2023-12-12 10:27:30 -03:00
Julian 9d20a63630
[Blockchain Watcher] (EVM) Add arbitrum chain (#878)
* feature-826/enable-evm-arbitrum-chain

* Improve arbitrum implementation

* Add removeDuplicates method and divide blocks into testnet and mainnet

* Delete findAssociatedL1Block method

* Resolve comment in PR

* Resolve test

* Mapped MetadaRepository

* Run prettier

* Rename test

* Resolve test

* Improve persistedBlocks instance

---------

Co-authored-by: Julian Merlo <julianmerlo@MacBook-Pro-de-Julian.local>
2023-12-11 19:11:42 -03:00
Julian a228c28b3d
[Blockchain Watcher](EVM) Add celo chain (#856)
* feature-798/enable-evm-celo-chain

* Run prettier

* feature-798/enable-evm-oasis-chain

* Resolve comment

* [Blockchain Watcher](EVM) Add oasis chain (#857)

* feature-798/enable-evm-oasis-chain

* Change commitment value

* [Blockchain Watcher](EVM) Add Klaytn chain (#858)

* feature-798/enable-evm-klaytn-chain

* Run prettier

* Resolve comment

* Resolve comment

* Change network name

---------

Co-authored-by: Julian Merlo <julianmerlo@MacBook-Pro-de-Julian.local>

---------

Co-authored-by: Julian Merlo <julianmerlo@MacBook-Pro-de-Julian.local>

* Improve package runners

---------

Co-authored-by: Julian Merlo <julianmerlo@MacBook-Pro-de-Julian.local>
2023-12-05 12:49:19 -03:00
Matías Martínez 0e4efd6673
[Blockchain Watcher] Separating get and poll actions (#843)
* adding more overrides via env var

* simplifying default cfg files

* shared evm repo

* move get evm logs to new action

* move get solana txs to new action

* minor folder cleanup

* smaller docker image

* add chain to evm block repo logs
2023-12-04 09:47:02 -03:00
Matías Martínez 0dda3e3f97
[Blockchain Watcher] Emit LogMessagePublished for Solana (#809)
* adding gen-relayer watcher code to branch

* folder rename

* adding some new  abstract types for processor redesign

* added first cut of new process manager logic

* large refactoring to environment configuration

* Add basic default config

* prettier run

* modifying event handler interface

* abstract handler typing changes

* Blockchain watcher: adding domain and infra layers (#786)

* reorg domain-infra

* watch evm blocks action

* adding evm log parser

* wider prettier

* renaming watch action

* adding doc

* persist latest metadata

* gh action for blockchain-watcher

* adding log-message-published mapper

* deps: remove peers and nodemon

* adding handler for LogMessagePublished

* added parser for log message published

---------

Co-authored-by: chase-45 <chasemoran45@gmail.com>

* Blockchain Watcher: ethereum -> sns implementation (#790)

* evm block repo implementation

* adding sns publisher

* adding external config and initial runner

* fix: start from latest if no fromBlock configured

* feat: add dryRun option

* fix: handler filtering and eth_getLogs filter payload

* local e2e

* actual sns arns for testnet

* smaller docker image

* deployment changes

* [Blockchain Watcher] Apply missing formatting for log message published (#791)

* Apply missing formatting for log message published

* keep extracting

* emitterAddress -> emitter

* using configured default winston logger

* wait for new block

* adding basic metrics

* staging mainnet config

* send hexa block number

* simpler log format

* group entities in different files

* [Blockchain watcher] Adding light observability (#793)

* using configured default winston logger

* wait for new block

* adding basic metrics

* staging mainnet config

* send hexa block number

* simpler log format

* better error logs

* wait when no block available

* grouping watchers

* adding 429 handling http client

* abstracting polling iteration

* Load jobs dinamically

* changing deployment strategy to jobs per pod

* group actions per platform

* [Blockchain Watcher] Add StartJob action + rate limit handling (#799)

* using configured default winston logger

* wait for new block

* adding basic metrics

* staging mainnet config

* send hexa block number

* simpler log format

* group entities in different files

* grouping watchers

* adding 429 handling http client

* abstracting polling iteration

* Load jobs dinamically

* changing deployment strategy to jobs per pod

* adding poll solana txs action

* adding solana repo implementation

* solana: mapping to logmsgpublished

* fixing solana mapper test

* updating readme

* adding some metrics

* adding solana worker

* adding finality param to get solana block

* minor changes - using confirmed for solana log extraction

* updating version

* add solana env var

* [Blockchain Watcher] Feature-813/fix-coverage-report (#815)

* Fix coverage report

* Run prettier

* Rollback global coverage value

* Set global coverage value to 55

* Add github PR template

* Run prettier

* Rename github template file

---------

Co-authored-by: Julian Merlo <julianmerlo@MacBook-Pro-de-Julian.local>

* private solana urls as secret

* adding prod cfg files

* Change repository name and cretae error foulder (#819)

* Change repository name and cretae error foulder

* Rename SolanaFailure file

* Rename SolanaFailure file

---------

Co-authored-by: Julian Merlo <julianmerlo@MacBook-Pro-de-Julian.local>

* passing node_options for solana

* adding missing envs templates

* cru

* ratelimited solana client + increase coverage

* [Blockchain Watcher] Feature 817/add hexagonal prefix (#824)

* Put hexadecimal prefix

* Create id variable

* Add error log

* Add error log

* Remove bigint in getBlock params

---------

Co-authored-by: Julian Merlo <julianmerlo@MacBook-Pro-de-Julian.local>

* fix never ending solana jobs

* adding job counter metric

* solana: add retry handling for 429s

* cleanup

* remove duplicated tests

* cru + item count

* minor readme update + do not use private solana rpc

* fix items counter

* fix solana job programID for devnet

* log basic repo info

* solana: passing finality everywhere

* delete unnecesary files

* adjusting solana cfgs

* [Blockchain Watcher]  Fix/re order some files (#828)

* fix/re-order-some-files

* run prettier

* Run prettier

* Resolve comment in PR

* Remove import

* Resolve comment

* Remove prefix in sns log

---------

Co-authored-by: Julian Merlo <julianmerlo@MacBook-Pro-de-Julian.local>

---------

Co-authored-by: chase-45 <chasemoran45@gmail.com>
Co-authored-by: Julian <52217955+julianmerlo95@users.noreply.github.com>
Co-authored-by: Julian Merlo <julianmerlo@MacBook-Pro-de-Julian.local>
2023-11-30 12:05:43 -03:00
Matías Martínez 2d9d0533f6
[Blockchain Watcher] Initial version (#806)
- Ethereum support for LogMessagePublished extraction
2023-11-28 16:00:45 -03:00