Commit Graph

322 Commits

Author SHA1 Message Date
Justin Schuldt d83e44cf6b
proto - BatchVAA gossip and publicrpc (#1563) 2022-09-09 12:30:22 -05:00
claudijd 77c0f80e70 Add Terra limit bump 2022-09-08 09:35:15 -04:00
claudijd 48240db99a Bump Klaytn and Celo Governor limits 2022-09-08 09:35:15 -04:00
tbjump 09548300a0
comment danger of potential future VM.version increases (#1401)
comment danger of potential future VM.version increases
2022-09-07 12:33:35 -07:00
Bruce Riley df25eb737c Fix algorand token bridge in guardian
Change-Id: I1612ac29664f203407dea553a54962e5a8930c5d
2022-09-07 10:42:43 -05:00
Chirantan Ekbote 5cc2c07157 node: Remove deprecated grpc method
This is triggering the lint check.
2022-09-07 10:02:35 +09:00
Chirantan Ekbote d0eb7dd96c node: Fix formatting with go 1.19
Produced by running `goimports -w .` in the node/ directory.
2022-09-07 10:02:35 +09:00
Chirantan Ekbote 9e92f9dbbf node: Update libp2p to v0.22.0
Needed to build with newer go toolchains (up to 1.19).  Many of the
libp2p subpackages have been merged as sub-directories of the main
libp2p package so update the imports to use the newer versions.
2022-09-07 10:02:35 +09:00
bruce-riley b357ad7061
Script to generate change registration governance (#1508)
* Script to generate change registration governance

Change-Id: If99e78b031dcd4049a9ee40b09914eeb93e7518a

* Rework from code review

Change-Id: I93cf3166c1ab961add2c524084de1981a44b194e

* Change chain_id to chain-id

Change-Id: Iae6f9854a64d8559d03c56949d03043a94dbf7f6
2022-09-06 08:20:51 -05:00
Jeff Schroeder 214c3bc73a Fix guardiand admin list-nodes for pythnet
Thanks @maiquanghiep

Reported-By: Quang-Hiep Mai <maiquanghiepdl@gmail.com>
2022-09-01 11:24:46 -04:00
Jonathan Claudius 03746c7752
Up dailyLimit/bigTransactionSize for vaa.ChainIDCelo and vaa.ChainIDTerra (#1501) 2022-09-01 11:21:35 -04:00
bruce-riley bfeaa93716
node: governor auto release (#1452)
* Initial code

* Add test cases

* Get rid of excessive logging of price updates

* Add big tx size to available notional query

* Add tool to verify  price query still works

* Fix lint error

* Rename check_query.go

* Set big transaction sizes

* More rework

* Add unit-test for big transfer config

* Fix unit tests after updates for Near

* Add a couple more test cases

Co-authored-by: claudijd <jclaudius@jumptrading.com>
2022-08-30 11:28:18 -05:00
Jonathan Claudius 3044d8f4af
Add mainnet chains and token config unit-tests (#1461)
* Add mainnet chains and token config unit-tests

* Fix Imports

* Update mainnet config checks

* Fix goimports and comments

* Fixups per PR review

* Clean up from code review

* Fix linting error
2022-08-29 08:39:20 -07:00
Bruce Riley f24be29937 Raise limit for klaytn 2022-08-27 18:57:50 -04:00
bruce-riley 4a42c29c0f
Near mainnet deploy (#1467)
* Initial commit

* Updated mainnet_tokens with Near token

* Near CLI changes

* More CLI tweaks

* Revert ethers in cli

* Fix lint error

* Testnet emitter is wrong

Co-authored-by: Christine Eun <ceun@jumptrading.com>
2022-08-26 12:46:37 -04:00
Jeff Schroeder dc28f88218
Promote Pythnet to Mainnet (#1459)
* node/cmd/guardiand: pythnet for mainnet

Pythnet is a read only chain that will only use the core bridge to
transfer messages to other chains. No tokens will be transferred
to pythnet, so it has no token or nft bridge.

* node/cmd/guardiand: fix help for solana flags
2022-08-26 09:45:47 -04:00
Josh Siegel 0384d31a9b near/audit: Fix go lint error 2022-08-25 09:16:32 -05:00
Josh Siegel a752e1309c near/audit: audit feedback 2022-08-25 09:16:32 -05:00
Chirantan Ekbote 66bc9cb9d4 node: Deduplicate re-observation requests
Commit `1753bb3: Send re-observation request when re-broadcasting local
observations` changed the processor code to automatically send
re-observation requests.  If multiple guardians do this around the same
time that would lead to multiple re-observation requests for the same
transaction.

Deduplicate re-observation requests by keeping a cache of the requests
that were received in the last 11 minutes.  Any request that's already
in the cache will not be forwarded to the chain-specific observation
code.  The 11 minute value was chosen because the guardians will send
these requests approximately every 5 minutes.

Also move the re-observation code into a standalone function so that it
can be more easily tested.
2022-08-25 10:12:15 -04:00
kev1n-peters 536a97066e
node: configure p2p routing table with bootstrapping nodes (#1455)
Configure the bootstrapping nodes that we will connect to to seed and refresh
the Routing Table if it becomes empty.

Fixes an issue where the spy stops receiving gossiped messages after the node
is restarted, because the Routing Table becomes empty and is never refreshed.
2022-08-24 18:27:59 +02:00
Chirantan Ekbote 1753bb34f0 Send re-observation request when re-broadcasting local observations
Currently if an observation hasn't reached quorum within 5 minutes, the
processor will re-broadcast the signed local observation to the other
guardians in the network. However if not enough guardians actually
observed the original tx, then no amount of re-broadcasting will help
the network reach quorum.

Fix this issue by sending a re-observation request whenever we
re-broadcast a signed local observation.  This ensures that any
guardians that missed the tx the first time it happened have a chance to
re-observe it and help the network reach quorum.
2022-08-24 17:59:42 +09:00
Chirantan Ekbote 4712a6f774 node/pkg/common: Fix race condition in PostObservationRequest
Any goroutine can push into a channel so the current implementation has
a race condition where the channel can become full immediately after the
length check, causing the subsequent send on the channel to block.

Fix this by wrapping the send on the channel with a select block.
Control will fall through to the default case only if the actual send
operation blocks, avoiding the potential race with other goroutines.
2022-08-24 17:59:42 +09:00
ckeun e47f9e481e
Updated mainnet gov'r cfgs with natives and stables for all chains limits for larger chains (#1437) 2022-08-17 11:22:49 -05:00
bruce-riley 7d956818f0
node: governor tweaks (#1422)
* Non-critical tweaks for the next scheduled deploy

* Make tests fail if mainnet config is invalid

* Make the test pass

* Add test to verify testnet config

* Add support for included token list to script

* Initial include list and algorand token addresses

* Fix typo in algorand token

* Lowering min notional to zero
2022-08-16 15:22:24 -05:00
Paul Noel eae0b51d37
Algorand mainnet deploy (#1434)
* algorand mainnet deploy

* Changes to sdk/js

* Update sdk changlog

Co-authored-by: Bruce Riley <briley@jumptrading.com>
2022-08-16 10:14:48 -05:00
bruce-riley 99fb46d549
Don't allow obs reqs if the queue is full (#1429)
Change-Id: Ifb0d038fa3adeddc6226e2289fe9dbfc8e39b4e7
2022-08-15 07:33:45 -05:00
Jonathan Claudius 7a96b7de67
Add new sections to SECURITY.md and CONTRIBUTING.md (#1408)
* Add testing to SECURITY.md

* Add White-hat Bootstrap

* Add node Makefile

* Add chain integrator guidance

* Small tweaks to language

* Tweaks to test coverage and security.md

* Add cosmwasm tests to CONTRIBUTING.md

* Fix typo

* Add deep link to CONTRIBUTING.md

* Update CONTRIBUTING.md

Co-authored-by: Jeff Schroeder <jeffschroeder@computer.org>

* Update SECURITY.md

Co-authored-by: Jeff Schroeder <jeffschroeder@computer.org>

* Update SECURITY.md

Co-authored-by: Jeff Schroeder <jeffschroeder@computer.org>

* Update SECURITY.md

Co-authored-by: Jeff Schroeder <jeffschroeder@computer.org>

* Update SECURITY.md

Co-authored-by: Jeff Schroeder <jeffschroeder@computer.org>

* Update SECURITY.md

Co-authored-by: Jeff Schroeder <jeffschroeder@computer.org>

* Update SECURITY.md

Co-authored-by: Jeff Schroeder <jeffschroeder@computer.org>

* Update SECURITY.md

Co-authored-by: Jeff Schroeder <jeffschroeder@computer.org>

* Update SECURITY.md

Co-authored-by: Jeff Schroeder <jeffschroeder@computer.org>

* Add newline to node Makefile

Co-authored-by: Jeff Schroeder <jeffschroeder@computer.org>
2022-08-11 15:33:24 -04:00
Bruce Riley 7da21a60b6 Should not govern algorand yet 2022-08-10 14:31:19 -04:00
Bruce Riley 5ca2faa9a3 Governor should handle duplicate coin gecko ids 2022-08-10 12:59:32 -04:00
Josh Siegel 7e958c1643 near/backwards: RPC jumping causes us to think the chain went backwards 2022-08-10 10:10:05 -05:00
Bruce Riley edfd9987aa Initial gonvernor mainnet config
Change-Id: Ia84a9bd79bb15a4915e54cf019be23f8eee0fdcf
2022-08-10 10:28:24 -04:00
bruce-riley 8557b6d232
More governor code review rework (#1404)
* More code review rework

Change-Id: I0ae094b16a8e0469f83f711e7118936abf70b109

* Fix lint error

Change-Id: Ie3bdcc61a8c475018a8f72c9cc84678779447d16

* Code review rework

Change-Id: Ief1119e7c9687db855fbee90d32f631630380e60

* Add features list to gossip heartbeat message
2022-08-09 23:22:14 -04:00
jumpsiegel 3f965da33b
node: add near support (#1397)
* node: add near support

* Tweaks suggested in zoom review

Co-authored-by: Bruce Riley <briley@jumptrading.com>
2022-08-05 13:49:16 -04:00
bruce-riley 126c9dcf57
Add is_enqueued_vaa query to governor (#1395) 2022-08-04 11:51:04 -05:00
Evan Gray e0fd3e788f
node: pythnet testnet support (#1380) 2022-07-28 12:30:00 -05:00
bruce-riley 7402259fc7
Chain governor (#1277)
* Rebase

* Reload from db on start up

Change-Id: I1deac9db28ad1157ea7e0c84af41c35b38497f4e

* Console commands

Change-Id: Ic242038312b7c837443a2df8823f100b3cdffd77

* Query prices from CoinGecko

Change-Id: I9a8c282ba374d32ef7045d11979a27ede3c52827

* Move chain config to separate file

Change-Id: I6a790eca765bce1f2caf48134e225df5c4daff15

* More code cleanup

Change-Id: Id12affa78cdc2d394d6dab0c53bb7ad06df8007e

* Few minor tweaks

Change-Id: I6cb511599d669e0b3d716d9f314ac0f26935ee92

* Create separate tests for different packages

Change-Id: Idb4da6817c9daad2a7420abc11bdaa702ae056dc

* Fix lint errors

Change-Id: I137c9e7e4574aee9c9fec22e91e19eee0e86a349

* Simplify chainlock message tests

* Add more governor db test coverage

* Next batch of review rework

Change-Id: Ife54852fca6c6990d1ffb3d60a8dd7f49d526f0a

* Still more rework

Change-Id: I43a8aa7fa4e1a7cea4d7fde68c963123c1ca8d53

* More rework

Change-Id: I9382412af4ffeda74967a834a6b0195a9d28b720

* Fix lint errors

Change-Id: Idaafce9b0314192557b7207911375d000bac5ae2

* Add rest and prometheus support

Change-Id: Ib870ed7eb305ef1ebbf6a7cedabc665c37c19171

* Add separate configs for testnet and devnet

Change-Id: I76b11d8940a8dc9935b3f276a008ed20ef60b850

* Update mainnet tokens to fix decimals

Change-Id: Iab018827766bc7748038b7be2f51342afb79b87c

* Let small enqueued VAAs go out when big ones can't

Change-Id: I7d3ef88d4579702d0c6ff4eaf5a8524799610ff6

* Tweak testnet config parameters

Change-Id: Id2c54151a7183ab3fb4af8060929198f6021ba4e

* Rework / enhancements from testnet testing

Change-Id: I1387b1d22667fa6ffe0bb1832dbc0b31196505d3

* Use known emitter maps

Change-Id: If330ee9d30ac3c2d1c6dca674f7777dc759de230

* Fix typo and out of date comments

Change-Id: I54a19792104ccc6ca023020303a710ef3ba18f74

Co-authored-by: claudijd <jclaudius@jumptrading.com>
2022-07-19 14:08:06 -04:00
Chirantan Ekbote 7a1b1344a1 node: processor: Make observation state generic
We need to reuse almost all of the gossip infrastructure for accounting
transactions, with the only difference being that accounting will use a
`Transfer` message rather than a `VAA`.

Make the observation stored in the processor state generic so that it
can be either a VAA or a Transfer.  The rest of the code is shared.
2022-07-19 10:51:15 +09:00
Chirantan Ekbote 508d140aa4 node/pkg/common: Refactor KnownEmitters
Create separate variables for the known tokenbridge and nft bridge
emitters and dynamically build KnownEmitters from those lists.  Having
separate variables for the tokenbridge and nft emitters will make it
easier to look them up without having to iterate over the whole emitter
list every time.

Also add a devnet_consts file to list the known emitters in the
development network.
2022-07-15 10:34:27 -04:00
Jeff Schroeder deeabc096d
Update injective url/s (#1350)
* node/pkg/terra: remove setEvents

The guardian set should only be authoritative from ethereum, so having
this code in the terra watcher is unnecessary. Getting this information
on injective requires a few more hoops to jump through but it is never
used. It is easier to maintain less code, so remove it.

* node/cmd/guardiand: remove setEvents from cosmwasm

This removes the set events from:

* terra 2
* injective
* terra classic

* node/pkg/terra: don't query guardianset from cosmwasm

* node/pkg/terra: support injective

* node/pkg/terra: update queryLatency metric

To show the query latency of fetching the latest block height from rpc
2022-07-14 13:41:31 -04:00
claudijd 8221708ef0 Move from ADD to COPY on Dockerfiles 2022-07-13 09:27:15 -04:00
Jonathan Claudius 38a2aba318
Add unit tests for db (#1062)
* Add unit tests for db

* Fix error checks and clean up tempdirs

* Add string explainer in the absence of a panic

* Remove unnecessary comment

* Fix NoError suggestion

* Add linter exception for panic test
2022-07-11 11:36:32 -04:00
Evan Gray 59fd0d36c7 node: optional chains in tilt 2022-07-11 10:35:00 -04:00
Csongor Kiss f856240792
node: Prepare development binary release (#1332)
* node: Shrink final docker image size

* Tiltfile: guardiand should run the build stage

* node: allow building without -race

* node: Support development builds

A development build must use the --unsafeDevMode flag.

* CI: build docker image

Co-authored-by: Csongor Kiss <ckiss@jumptrading.com>
2022-07-06 19:27:49 +01:00
bruce-riley d7b7cefa99
Guardian support for Injective (#1327) 2022-07-06 10:19:57 -04:00
Jonathan Claudius 0c22d6c3d6
Add unit-test coverage for marshaling (#1205)
* Add unit-test coverage for marshalling

* Add test to see if Unmarshal will panic on a > 1000 payload

* Error instead of truncate on payloads over 1000 bytes

* Clarify intents and tests for vaa.Unmarshal
2022-06-28 14:25:13 -04:00
Csongor Kiss 3328a86778 node: Allow "msu" in node 2022-06-28 16:41:43 +01:00
Hendrik Hofstadt f1dba4adfe
Allow account reuse for message posting (#1077)
* Implement message posting with account reuse

Change-Id: I195f493f6816048f5f8f76e1f0f6e561fa0fe692

* Use different magic for unreliable messages

* guardiand: Ignore solana instructions with empty data

Co-authored-by: Csongor Kiss <ckiss@jumptrading.com>
2022-06-27 09:57:25 +01:00
Jeff Schroeder cb73b7b718 node/pkg/ethereum: fix a bug discovered in testnet 2022-06-24 23:40:24 -04:00
bruce-riley cdc6edd425
Guardian eth nil event check (#1300)
* Guardian eth nil event check

* Check for number being nil in watcher
2022-06-23 09:40:04 -05:00
Bruce Riley b96ba36d25 Terra2 Mainnet Guardian Changes 2022-06-22 11:12:30 -04:00
Leo 8c60a83b54 node/pkg/supervisor: document upstream repository
commit-id:1b6b7f2e
2022-06-21 22:32:45 -04:00
tbjump 4575fe05d9
Better lint and formatting (#1263)
Enforce goimports, add tooling and documentation, and run it on the repo.
2022-06-21 12:18:16 -07:00
bruce-riley 57fe302314
Add emitter type to guardian mainnet consts (#1293)
* Add emitter type to guardian mainnet consts

* Add stringer to fix lint errors
2022-06-21 14:13:44 -05:00
Evan Gray 5931368ed7 node: terra2 support 2022-06-21 10:47:16 -04:00
bruce-riley f07b5dfbfb
Guardian parse transfer VAA payload (#1232)
* Parse transfer VAA payload

Change-Id: I23136807e5101ae823e9d198ac52d3446a94b0f2

* Enhance StringToAddress()

Change-Id: If7721c991443443cd811cc5b3ee070224aa6c2ce

* Code review rework

Change-Id: I75ae8c5386d9bcde1cfdd6b1e666bfefbe9852fe

* Payload length can be shorter

Change-Id: I459a180d7a54faf96b72943c9485696eb08b3d61

* Ran go fmt

Change-Id: Ia6ba3aaa13eb7c4e573c263a2d7868bf3e9937a4

* Decoding payload should not require a VAA

Change-Id: I143119e8667f340c43c7662488d909f087b9d1cc

* Fix comment typo

* Refactor StringToAddress tests to table pattern

* Refactor DecodeTransferPayloadHdr tests

* Add unit-tests for IsTransfer and fix array out of bounds bug

* Make sure length checking handles sub-byte hex strings appropriately

* Add empty string negative cases for TestStringToAddress and TestDecodeTransferPayloadHdr

* Fix nil ptr error in unit-tests

* Fix parenthesis in IsTransfer()

* More rework

Co-authored-by: claudijd <jclaudius@jumptrading.com>
2022-06-15 15:45:21 -05:00
bruce-riley 24c5b17267
Neon to testnet (#1262)
* WIP: neon

* Watcher support

* Use eth_getLogs for Neon

* bridge_ui: update sdk version

* Setting WETH address for Neon

* Portal bridge support for WNEON

* relayer: update sdk

Co-authored-by: Evan Gray <battledingo@gmail.com>
2022-06-14 10:22:49 -04:00
Chirantan Ekbote 7454c26f19 node: Update terra.go to latest version
This is necessary to use a more recent version of cosmos-sdk (v0.39.1 ->
v0.44.5).
2022-06-09 12:40:27 +09:00
Bruce Riley cf8c97082b Minor tweak to finalized check 2022-06-07 10:36:12 -04:00
Bruce Riley d6f4740136 Undo formatting changes 2022-06-07 10:36:12 -04:00
Bruce Riley 0ac89c3c06 Move polygon stuff to a different branch 2022-06-07 10:36:12 -04:00
Bruce Riley cf4722a546 Refactor to generalize polling
Change-Id: Ie30056486ec86f6dceffed231ac227fa9c3499a7
2022-06-07 10:36:12 -04:00
Bruce Riley bc7834448e Enhance error handling
Change-Id: Ied2521c0ebfc6bc8cf76ea90be6bc40dc0d811a3
2022-06-07 10:36:12 -04:00
Bruce Riley 9d423422c4 Rework the code
Change-Id: Id0aed3e3bce8f1e5332479132fab9437252909db
2022-06-07 10:36:12 -04:00
Bruce Riley 80512c0350 Initial rough draft
Change-Id: Ic2c8b15438162fd097e866f9a0ca1f6adf6a3f55
2022-06-07 10:36:12 -04:00
Josh Siegel 594674db5e algo/watcher: Fixes for testnet 2022-06-07 08:57:27 -05:00
Bruce Riley 5562141599 Only require 64 confs in polygon testnet 2022-06-06 12:49:44 -04:00
Bruce Riley dcce155f43 Acala mainnet deploy 2022-06-03 14:44:22 -04:00
tbjump ba5fcc4ad8 apply gofmt and enforce it for new commits 2022-06-02 07:57:49 -04:00
Jonathan Claudius f32e6c4aa8
Reorder quorum and verifysignatures (#1166) 2022-05-25 08:35:08 -04:00
Jonathan Claudius 1e6611ebb6
Add comments on vaa min length (#1206)
* Add proof of work on minVAALength

* Change minVAALength to 57
2022-05-24 10:42:30 -04:00
tbjump 67c39e71c0
enable additional linters, including gosec (#1215)
enable additional linters, including gosec
2022-05-23 16:21:10 +02:00
tbjump 8c1e571724
fix getUniqueClientId to actually return unique ID (#1127)
fix getUniqueClientId to actually return unique ID
2022-05-23 15:05:55 +02:00
tbjump 1c2a70554b
supress gosec issue (#1216)
supress gosec issue
2022-05-23 11:25:24 +02:00
tbjump d87ae5a272
gosec fixes (#1201)
* nosec linter surpression in nodekey_test.go

* Mark DeterministicEcdsaKeyByIndex as Insecure

* nosec - surpress warning

* simplify range expression

Co-authored-by: tbjump <>
2022-05-20 08:09:48 -07:00
bruce-riley 018908a420
Klaytn mainnet deploy (#1185)
* Klaytn mainnet deploy
2022-05-16 10:06:17 -04:00
Csongor Kiss 4d54fee0b9
node: New default current guardian set index (#1101)
The current guardian set index is 2, so the `guardiand` template command
should generate prototxt files accordingly.

Co-authored-by: Csongor Kiss <ckiss@jumptrading.com>
2022-05-13 19:47:45 -04:00
Jeff Schroeder da0fb0ddf7 node/hack/repair_terra: token bridge messages only
Ensure that the sequence numbers are just for the terra token bridge.
2022-05-13 15:26:14 -04:00
Jeff Schroeder f1d28915f8 node/hack/repair_terra: add a rate limiter
Otherwise the terra fcd tells us to gfy after too many requests.
2022-05-13 15:26:14 -04:00
Csongor Kiss 68693689cf node/repair: allow multiple sequences in a tx 2022-05-13 15:26:14 -04:00
Jeff Schroeder e70830002e repair_eth: work better when messages are skipped
Otherwise there can be a nil pointer deref for polygon when it skips
the VAA.
2022-05-13 13:22:55 -04:00
Bruce Riley d266438654 Celo mainnet deploy changes 2022-05-13 13:11:28 -04:00
Josh Siegel ac9b4a5d05 algo/rollback: handle rollbacks gracefully @ gusc1a-ossdev-jsl5 2022-05-12 09:10:10 -05:00
Josh Siegel c9d7a617ee Rewrite algorand guardian watcher to directly hit the node instead of depending on indexer 2022-05-12 06:50:07 -05:00
bruce-riley c7ba459de8
Moonbeam to testnet (#1150)
* Moonbeam to testnet

* Fix typo

* Shouldn't touch the CLI with this PR

* Update SDK version
2022-05-10 11:23:07 -04:00
Leo 2a83ea406b node/pkg/ethereum: move up nil check for TransactionReceipt
This fixes a null pointer dereference for a nil tx.

commit-id:a6a356b8
2022-05-05 09:04:54 -04:00
Leopold Schabel eb3b777520 node/cmd/guardiand: improve send-observation-request arg parser
Accept chain names (i.e. "solana") and base58 tx hashes.

commit-id:d7114740
2022-05-02 14:41:55 -04:00
bruce-riley a94a3cf2fb
Karura mainnet deploy (#1142)
* Start of move to mainnet

* Rework to safe mode check

* Update truffle-config

* Should not check safe mode in dev mode
2022-05-02 14:28:17 -04:00
bruce-riley 49f4a98cb2
Add missing aurora address references (#1117)
* Add missing aurora address references

Change-Id: I57a7dc7450d8527ab1ee6710dfbd6eda6da93f07

* Fix copy and paste error in comment

Change-Id: Ie7fc3cdbeab76518aad0f0220798cd1788d4be45
2022-05-02 13:06:56 -04:00
Evan Gray 1229ca5cff algo: guardian 2022-04-29 20:56:46 -04:00
Jeff Schroeder 0981dc19bc node/hack/repair_eth: skip missed message
Otherwise, the script will run until the max number of times and
never complete.
2022-04-29 07:21:03 -04:00
Jeff Schroeder 542acdf0d6 node/hack/repair_eth: more cat & mouse for polygon
* Added the `User-Agent` header to all requests to the block explorer
  so cloudflare's browser check is happier.
* Add an option to sleep between loops hitting the block explorer. More
  than 1 / second on polygonscan gets you blocked temporarily.

These changes are required to repair missed messages on polygon.
2022-04-29 07:21:03 -04:00
bruce-riley d04328b858
Celo testnet support (#1051)
* Initial Celo support

Change-Id: Iee98ee29a8b09af9ca76945792b750d96a170702

* Watcher support

* Fix high level make file

* Remove node binary committed by mistake

* Port change from EthWatcher to CeloWatcher

* Use docker to build ABIs

* Refactor watcher to eliminate massive redunancy

* Fix lint-and-tests to handle multiple defs on link

* Minor code cleanup

* Celo should use ganache in devnet

* Prep for mainnet deploy

* Code review rework

* Remove celo from sdk package.json
2022-04-28 12:20:38 -04:00
justinschuldt 4ae277f264 shutdown auth proof template 2022-04-28 02:32:04 -05:00
Jeff Schroeder a4c91d8f1b
Minor updates to repair_eth (#1120)
* node/hack/repair_eth: use a cookiejar for http

Otherwise, explorers like polygonscan, which implement a cloudflare WAF,
will block all requests.

* node/hack/repair_eth: add -showError flag

When an explorer is having problems or blocks a repair http request, it returns an error like:

    Failed to get current height: failed to decode response: invalid character '<' looking for beginning of value

This allows showing the actual response body to better troubleshoot the problem.
2022-04-27 14:33:43 -04:00
bruce-riley 87b36399d3
Add safe mode check (#1108)
Change-Id: Ida10e1ab0c056b4ed1ce2317800235843763a7ac
2022-04-26 07:51:10 -05:00
bruce-riley 05d84b4d6f
Add fantom to repair script (#1109)
Change-Id: Ic81b1082b72bb0cd66d9f15e951f6df2b92972ad
2022-04-26 07:50:07 -05:00
Csongor Kiss 0f6c1e2d98 Allow specifying the timestamp in governance inject
The 'timestamp' field is now allowed in a governance prototxt, which
applies to all the messages in the struct. If the timestamp is not
specified, then it defaults to 0, which is identical to the existing
behaviour.
2022-04-19 17:52:05 +01:00
Jonathan Claudius b18a6c8c2f
Fix segfault from empty GetSignedVAARequest (#1069) 2022-04-11 19:16:59 -04:00
Jonathan Claudius bad4f7061b
Adds unit-tests and functional improvements to guardian signature verification (#1068)
* Add more comprehensive structs unit-tests

* Make VerifySignatures fail on duplicate addresses

* Adjust duplicate detection to guard on signatures instead of addresses

* Add monotonic check in VerifySignatures

* Move logic into VerifySignatures and add more test cases

* Add a paranoid check for duplicate signers

* Make VerifySignatures unit-tests less contrived

* Add more verify signature test cases

* Refactor VerifySignatures tests

* Add VerifySignature fuzz tests

* Add tc.result checking instead of hardcoded true

* Change comparison so it throws debug on failure for fuzz tests

* Add unit-tests for observation signature logic

* Fix comment typos

* Refactor observation tests

* Add missing test case

* Fix VAAInvalidSignatures test case label

* Clean up unit-tests for observation and structs

* Change errorString convention in test

* Format Signature Verification Test Cases

* Remove unnecessary casting

* Add multi-signer same key cases

* Fix err usage in test cases

* Remove duplicate getVAA
2022-04-11 19:14:41 -04:00
Leopold Schabel 1fd6e14885 node/pkg/ethereum: fix unreachable nil check
The program would've crashed on `l.Address` before it
could reach the nilness check.

commit-id:17b64899
2022-04-11 17:10:14 -04:00