The payload version 1 relayer has long been superceded by the more
modular relayer-engine and specialized / automatic relayers. The newer
relayers all rely on wormhole payload version 3 and no one is currently
running a payload version 1 relayer. Additionally, support for it has
been removed from portal bridge by the portal maintainers.
The code lives on in the better maintained and supported relayer-engine.
* starting calcs for relayer inbound / outbound
* monitoring additions & adding price monitor relay process
* adding basic infra for pricing & monitoring process
* added a large amount of debugging info to the relayer delivery process
* redelivery relayer processing fixes & debug improvements
* fixing delivery process breaks from renaming
* fixing naming errors inside the pricing process
* removed pricing process, rename delivery folders
* removed test error & refactored util directory
* moving out utilities from relayer delivery process
* moved lambda logic inline
* cleaning up comments
* Restore Tiltfile change
* Restore sdk package.json change
---------
Co-authored-by: derpy-duck <115193320+derpy-duck@users.noreply.github.com>
Note: The time limit for CI needs to be increased because now the relayer engine needs to build the SDK from source (the ethereum folder) in it's docker image.
Once the SDK is published, I can have the relayer engine docker image simply import the SDK, which should save a lot of time and allow us to reduce the CI time limit again.
Having two bootstrap nodes allows an outage of the certus one guardian
to not cause too much hassle with existing spy instances or new
guardians restarting.
Thanks @fchantada and the xLabs team for adding the dns and helping
set this up.
* Add the default backend for the relayer
Start to slowly split things out.
* Configure the backends when configuring the env
* First stab at the pluggable listener backend
* Update relayer example (and test) config
* relayer: JIT backend
* relayer: walletMonitor remove useless function
* relayer: update worker init() funcs
It is silly to accept a boolean in thing.init() vs just not running init
if you don't want to run thing.
* relayer: remove env property from Listener
It is verified in init() in spy_listener.ts and rest_listen.ts, so it can
be deferred to not require the import.
* relayer: clean up the main bits
Only try to init() something when it is actually supposed to run
per the cli flags.
* spy_relayer: more descriptive var name in main
* spy_relayer: Update relay worker with more docs
* spy_relayer: add targetChainName to WorkerInfo
This makes it easier to pretty print the chain name in the logs without
having to look the name up.
* spy_relayer: update logs and use the backend
* Use the Relayer interface's process() method in place of processVaa()
* Update the logs to include the chain name in the worker and auditor threads
* spy_relayer: remove processRequest()
It has been moved to the process() method of the default Relayer backend.
* spy_relayer: start fleshing out the Relayer default
* spy_relayer: fix a logic bug in checkQueue()
Co-authored-by: @swimricky
* spy_relayer: update TokenBridgeRelayer.process()
* Remove some extra logic
* Actually use the ChainId type since the id of 0 is in the sdk now
* spy_signature: add Relayer.runAuditor()
The auditor code is payload specific and needs to be with the backend.
* spy_relayer: move Relayer.runAuditor()
Make it part of the backend since the backend has all of the payload
specific logic into it.
* spy_relayer: move relay() --> Relayer.relay()
The actual relaying is part of the backend, so make it so.
* spy_relayer: add Relayer.runAuditor()
* spy_relayer: no more deprecated hexToNativeString
* spy_relayer: implement Relayer.targetChainId()
This is used for finding workable items in the incoming queue to toss
into the working queue.
* spy_relayer: remove relay.ts
The relay() function was moved to Relayer.relay()
* spy_relayer: more uses of deprecated hexToNativeString()
* spy_relayer: remove unused import
* spy_relayer: review feedback from @bruce-riley
* Fix some spelling tyops
* Simplify some logging
* Simplify a conditional for the payload version check
* spy_relayer: misc fixes and code clean up
* Fixed integration tests
* Added launch.json file for debugging in VS Code
* Updated to latest wormhole SDK
* Backup queue uses same key as redis
* Added Terra Classic flag
* Throttle potential infinite loop in audit thread
* Fixed spy service connection leak
Co-authored-by: Evan Gray <battledingo@gmail.com>
Co-authored-by: Kevin Peters <kpeters@jumptrading.com>
* initial spy-relayer
* Update spy_relayer Dockerfile
* added example mainnet config files
* split out private keys into its own ENV variable
* Update spy relayer supportedChains.json
To remove the `walletPrivateKey` entries. All of the private keys have
been split out into their own json file.
* fixed evm private key env parse
* missing solana accounts report 0 balance, rather than error
* wallet address is logged in debug
* spy_relayer: enabled prometheus default metrics
Also set a prefix of `relayer_`
* spy_relayer: updates to the prometheus bits
* Use a single metric registry
* Use a simpler metric name and add labels for individual wallets
* spy_relayer: human readable app mode in the metrics
[ listener | relayer | both ]
* spy_relayer: unify metrics
* remove the collection of default metrics
* hardcode the `spy_relayer_` prefix on all custom metrics
* fixed dep arrays, nullable terra token/balance info
* attempt stack debug
* debug pullTerraBalance
* provider http or ws
* update sdk
* logging for tokenAddress is 0
* fix foreign address calc
* fix calcLocalAddressesTerra
* relayer/spy_relayer: update prometheus helpers
Add / url handler for the ingress-gce stupid load balancer that
doesn't support custom url healthchecks unless you make a BackendConfig
custom resource definition.
* logging refinement
* use chain name in prometheus
* adjust retry timeout calculation
* spy_relayer: update prometheus bits
* improved error handling
* relayer ui improvements
* prep sdk release
* use latest sdk, manual redeem button
* relaying ux improvements
* gas price fix
* shortened terra success log
* use gh base relayer list
* fix prometheus urls
* Update prometheus metric name
* only show TPS warning on mainnet
* show relayer fee in source preview
* fix unwrap check
* add native bool to balance metric
* logging improvements
* add feeRecipientAddress to redeemOnSolana
* gather solana fees
* remove relayer ws support
* add nativeCurrencySymbol to ChainConfigInfo
* fix solana native symbol
* demoteWorking option, logger contexts
* scoped logging
* bridge_ui: unwrap native
* add evm wallet monitor test
* solana vaa parsing fix
* add monitorRedis
* make Jeff's brain happy
* log demoting keys
* register redisQueue metric
* human readable redisQueue metric
* fix timestamp inconsistency
* use scopedLogger for the first level of workers
* pull wallet balances in parallel
* more scoped logging
* pick a solana fee
* moving keys log improvement
* update eth gas calculations based on recent txs
* use postVaaSolanaWithRetry
* split success and failures by chain
* fix using terraCoin
* check prom every 10s
* batch getting evm token balances
* batch calcLocalAddressesEVM
* debug worker logging
* log retry number
* support Polygon?
* reset status on demotion
* enhance!
* update avax fee
Co-authored-by: Chase Moran <chasemoran45@gmail.com>
Co-authored-by: Kevin Peters <kpeters@jumptrading.com>
Co-authored-by: Evan Gray <battledingo@gmail.com>