Commit Graph

298 Commits

Author SHA1 Message Date
Evan Gray 77b4ddc812 ci: switch from ganache to anvil 2024-04-12 10:13:27 -04:00
bruce-riley 86ef5bff5a
Ethereum: Move relayer (#3866)
* Ethereum: Move relayer

* JS/SDK: Handle relayer move

* More tweaks

* ci: fix relayer deploy

* Code review rework

* Hack to fix tilt

* Another hack

* ci: revert relayer addresses

* Fix sdk tests

* Move ethereum-relayer to relayer/ethereum

* Yet another fix for tilt

* Code review rework

---------

Co-authored-by: Evan Gray <battledingo@gmail.com>
2024-04-11 08:46:36 -04:00
Ben Guidarelli d87024c9df
CI: Change chain id for evm devnet node (#3864)
* CI: Change chain id for evm devnet node

* Set env file to match devnet configured ethereum chain id

* set evm chain id to ganache default

* update test evm chain ids in evm tests
2024-03-29 15:13:45 -04:00
bruce-riley 428920acb8
Deploy Blast testnet (#3859)
* Deploy Blast testnet

* Update contract addresses
2024-03-29 09:20:31 -05:00
Jeff Schroeder b175dd43c8
docs: quit the spelling spam typo fix PRs with cspell magic (#3845)
* Add cspell configuration and custom dictionary

The goal is to cut down on both incoming tyops, and well meaning but
spammy tyop fix PRs.

To run cspell locally install it and run:

    cspell '**/*.md' \
        --config cspell.config.yaml \
        --words-only \
        --unique \
        --quiet | sort --ignore-case

* docs: cspell updates

* wormchain: cspell updates

* aptos: cspell updates

* node: cspell updates

* algorand: cspell updates

* whitepapers: cspell updates

* near: cspell updates

* solana: cspell updates

* terra: cspell updates

* cosmwasm: cspell updates

* ethereum: cspell updates

* clients: cspell updates

* cspell updates for DEVELOP document

* github: run cspell github action

* sdk: cspell updates

* github: only run cspell on markdown files

* algorand: EMMITTER --> EMITTER

Suggested-by: @evan-gray

* cspell: removed from dictionary

Suggested-by: @evan-gray

* aptos and node: cspell updates

Suggested-by: @evan-gray

* cosmowasm: doc updates for terra2

Suggested-by: @evan-gray

* algorand: cspell updates

Suggested-by: @evan-gray

* algorand: cspell updates

Suggested-by: @evan-gray

* cspell: updated custom word dictionary

This resorts the dictionary and adds a few new words from the
algorand/MEMORY.md document around varints and integers.

* cspell: sort the dictionary how vscode does it

On macOS the sorting is locale dependent. To do this on macOS, you have
to invert the case, do a character insensitive sort, and then invert the
case again:

    LC_COLLATE="en_US.UTF-8" cspell '**/*.md' --config cspell.config.yaml \
        --words-only \
        --unique \
        --no-progress \
        --quiet \
    | tr 'a-zA-Z' 'A-Za-z' \
    | sort --ignore-case \
    | tr 'a-zA-Z' 'A-Za-z'

This requires the `LC_COLLATE` variable to be set to `en_US.UTF-8`, or it
will not do the right thing.

* docs: grammar clean up

---------

Co-authored-by: Evan Gray <battledingo@gmail.com>
2024-03-20 15:40:02 -04:00
Evan Gray 4805183b4c ethereum/contracts/query: relocate to wormhole-solidity-sdk 2024-03-13 14:35:07 -04:00
bruce-riley b385f64ff7
Deploy Mantle to Sepolia (#3830) 2024-03-13 11:22:09 -05:00
Evan Gray 6ccf9f41b8 ci: install vim to fix foundry (cache bust) 2024-03-12 18:27:43 -04:00
bruce-riley a883b7f351
Deploy Polygon Sepolia Testnet (#3723)
* Deploy Polygon Sepolia Testnet

* Code review rework
2024-03-12 09:46:28 -05:00
bruce-riley 65c4dc4177
CCQ/EVM: sol_pda support (#3790)
* CCQ/EVM: sol_pda support

* Code review rework

* Code review rework
2024-03-11 16:13:43 -05:00
bruce-riley 0a49c6ee28
CCQ/EVM: Testing library for building responses (#3768)
* CCQ/EVM: Testing library for building responses

* Add request building stuff

* Convert to a library

* Don't pass in unnecessary lengths
2024-03-04 11:48:03 -06:00
Dirk Brink bf67227460
ethereum: PUSH0 test (#3748)
* ethereum: PUSH0 test

* Echo to stderr
2024-01-30 14:35:39 -05:00
Sebastián Claudio Nale 41385260ec evm: sets optimism WETH in token bridge initializer 2024-01-30 11:26:49 -05:00
bruce-riley 5fa8379b17
EVM/CCQ: Parse Solana Account Query Response (#3720)
* EVM/CCQ: Parse Solana Account Query Response

* Code review rework

* Code review rework
2024-01-26 19:05:35 -06:00
bruce-riley b7631bfbba
Deploy Holesky Testnet (#3630) 2024-01-08 16:42:10 -06:00
bruce-riley 818038ef80
Deploy Sepolia based L2s (#3606)
* Deploy Sepolia based L2s

* Code review rework
2023-12-20 08:56:14 -06:00
Evan Gray 094a404902 tilt: remove additional root CA support 2023-12-12 14:22:05 -06:00
iwantanode a348dfa68d fix typo token_verification.md 2023-12-12 11:24:41 -06:00
Dirk Brink da2bdd67be ccq: Extra docs for validateEthCallData 2023-12-12 00:45:32 -06:00
Dirk Brink 39f51b0766 CCQ: Remove max block time/num from validation helpers 2023-12-12 00:45:32 -06:00
Dirk Brink 4cce7d5392 CCQ: Fuzz tests for helpers 2023-12-12 00:45:32 -06:00
Dirk Brink 3c243e0e87 CCQ: High level validation helpers + slight refactor 2023-12-12 00:45:32 -06:00
bruce-riley a2cb2a1226
Deploy Mantle to testnet (#3438) 2023-12-11 10:26:56 -06:00
Csongor Kiss 0cc1f677e5 drop mention of the terra NFT bridge from docs and scripts 2023-12-06 20:40:17 +00:00
Evan Gray 08455a7770
tilt: eth relayer pin tsx (#3565) 2023-11-30 11:44:28 -06:00
Dirk Brink a2022c77e1
ethereum: Fix flaky governance replay attack test (#3555) 2023-11-23 13:40:58 -08:00
Dirk Brink 49549eb01c ethereum: Fix flaky tests 2023-11-20 09:05:28 -05:00
Dirk Brink 01d4855373
CCQ: QueryResponse fuzzing + extra safety checks (#3519)
* CCQ: Fuzzing for parseAndVerifyQueryResponse

* CCQ: Fuzz signature checking and improve request body check

* CCQ: Use forge bounding & improve test coverage
2023-11-14 12:20:08 -05:00
bruce-riley 0a89e23589
Deploy scroll to testnet (#3429)
* Deploy scroll to testnet

* Don't allow scroll in mainnet

* Add scroll to ccq, use batch poller
2023-11-08 14:14:47 -06:00
derpy-duck 33c0adbf82
relayer: Improve IWormholeReceiver docstring (#3488)
* IWormholeReceiver docs good

* note to verify
2023-11-02 13:05:05 -04:00
Csongor Kiss d6a410d7b2 ethereum/relayer: fix comment about storage slot derivation 2023-10-31 19:06:40 -04:00
bruce-riley af8138d4fb
CCQ/EVM: eth_call_by_timestamp and eth_call_with_finality support (#3468)
* CCQ/EVM: ethCallByTimestamp & ethCallWithFinality

* Code rework

* Code review rework
2023-10-31 17:05:19 -04:00
Bruce Riley 5afd9eab2d Code review rework 2023-10-26 12:59:24 -04:00
Jeff Schroeder e613486b92 ethereum: QueryDemo updates
* Use custom errors in place of require() to match the error handling
style overall of QueryResponse.
2023-10-26 12:59:24 -04:00
Jeff Schroeder 1eb481b2c9 ethereum: QueryDemo updates
* Gas bad
* Natspec updates
* Some address(0) checks in the constructor
2023-10-26 12:59:24 -04:00
Jeff Schroeder 50f6ca9fc7 ethereum: more QueryResponse tests 2023-10-26 12:59:24 -04:00
Jeff Schroeder f3b44e322b ethereum: move custom errors out in QueryResponse
If you don't do this, in the tests you have to do:

    vm.expectRevert(bytes4(keccak256("UnsupportedQueryType()")));

Whereas with this change, you can simply import the contract and do:

    vm.expectRevert(UnsupportedQueryType.selector);
2023-10-26 12:59:24 -04:00
Jeff Schroeder e219e2fd8c ethereum: QueryResponse test tyop fix 2023-10-26 12:59:24 -04:00
Jeff Schroeder 841f041c7e ethereum: update QueryResponse tests
Instead of the test contract inheriting directly from the QueryResponse
contract, it instantiates an instance of it and uses that for the
testing. This seems to work much nicer with the forge coverage tools.

With this commit, the coverage for QueryResponse shows 85.1% line
coverage, 100% function coverage, and 50% branch coverage.
2023-10-26 12:59:24 -04:00
Jeff Schroeder 15e1dcd3dd ethereum: update the QueryResponse contract
By moving the structs out of the abstract contract, you can use them
directly in any contract that imports QueryResponse.sol *without*
requiring that contract to inherit from the QueryResponse contract. This
seems to work much better with forge's coverage tooling.
2023-10-26 12:59:24 -04:00
Jeff Schroeder b4a27f4aed ethereum: Query.t.sol --> QueryResponse.t.sol
To follow standard forge testing practice, you use the same filename
for a test contract as for the file it is testing, but make the
extension .t.sol.
2023-10-26 12:59:24 -04:00
Jeff Schroeder c40323828b ethereum: limit deps in the QueryDemo contract
- Context is generally a worthless import
- Ownable is totally unused and a worthless import
2023-10-26 12:59:24 -04:00
Bruce Riley faea3bab8d CCQ: EVM Library and Demo Contract 2023-10-26 12:59:24 -04:00
derpy-duck bebcf281e6
relayer: allow override target chain refund (#3430)
* refund address handling improvement

* fix compilation error

* Remove unnecessary line

* restrict to view

* fix comment

* Improve handling of gas limits

* get test to pass - check that the return data is appropriately long before decoding

* modification to checking inequality

* modification to checking inequality - use unchecked

* clean functions around - add untrustedBaseDeliveryPrice

* make quote_length_bytes a constant

* seperate pay into two overloads

* change inequality to equality for checking return data length

* renaming functions

* allow override of refund per gas unused

* test modification

* note
2023-10-13 17:19:56 -04:00
derpy-duck 6c3ff43d6a
Auto relayer refund address handling improvement (#3428) 2023-10-13 00:10:50 -04:00
Jeff Schroeder c19e6b972e ethereum: add default slither config
* Add solc remappings so it can find the dependencies
* Ignore external stuff and mocks
2023-10-06 17:13:43 -04:00
Csongor Kiss 3425c821f7 ethereum: remove mention of batched vaas in README 2023-09-28 17:44:10 -04:00
derpy-duck faa397ca4f
AutoRelayer: v1.1 Release (#3313)
* AutoRelayer: remove forwards

* AutoRelayer: reentrancy guard

* AutoRelayer: remove forwards from sdk

* AutoRelayer: VaaKey -> MessageKey internals

* AutoRelayer: check delivery provider supports keyType

* AutoRelayer: VaaKey backcompat wire format

* AutoRelayer: sdk fix

* AutoRelayer: Add supported keys to delivery provider

* AutoRelayer: reintroduce reentrancy guard, revert when replay protection triggered

* AutoRelayer: fix manual delivery test

* AutoRelayer: review flups

* AutoRelayer: move libraries within relayer folder

* AutoRelayer: fix delivery provider config script

Also fix delivery provider revert bug

* AutoRelayer: Andreas code review flups

* AutoRelayer: js sdk includes MessageKey serde

* AutoRelayer: update sdk to use message key

* AutoRelayer: Simplify executeInstruction to internal call (#3352)

* refund instead of revert for replay protection (#3371)

* refund instead of revert for replay protection

* Remove mention of forward from IWormholeReceiver

* AutoRelayer: 1.1 reintroduce forwards (#3385)

* forward fallback WIP

* forward fallback no tmp storage

* Re-introduce testing of 'forward'

* Reintroduce forwards with original or default behavior for refund info + delivery provider info

* Reintroduce reentrant, only store refund information

---------

Co-authored-by: Joe Howarth <josephehowarth@gmail.com>
Co-authored-by: Joe Howarth <jhowarth@jumptrading.com>
2023-09-22 15:07:59 -04:00
Csongor Kiss 4d51f8e57e ethereum/relayer: fix storage constant comments
The hash preimages for storage calculations were wrong for two storage
slots. The updated preimages can be verified to be correct with e.g. the
`chisel` command line tool from the foundry suite.
2023-09-18 10:02:52 -04:00
Jeff Schroeder a9437e8dc2 ethereum: add arrayElementLocation() test helper
Review feedback from @kcsongor in #3363
2023-09-11 14:03:51 -04:00