* CCQ: Fuzzing for parseAndVerifyQueryResponse
* CCQ: Fuzz signature checking and improve request body check
* CCQ: Use forge bounding & improve test coverage
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.
* 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
* ethereum: Add Foundry tests written by RV
* ethereum: Add scripts and instructions to run proofs using KEVM
* ethereum: Fix typo on testSetup_after_setup_revert_KEVM
* ethereum: Edit Makefile to skip KEVM tests when running forge test
* ethereum: Fix commented-out lines in Foundry tests
* ethereum: Refactor GovernanceStructs invalid-size tests
* ethereum: Replace assume with bound in Foundry tests
Co-authored-by: Jeff Schroeder <jeffschroeder@computer.org>
* ethereum: Apply review suggestions to run-kevm script
Co-authored-by: Jeff Schroeder <jeffschroeder@computer.org>
* ethereum: explicit cast to uint8 for some vars
The bound() calls need to be explicitly cast to uint8 from the uint256
that forge-std's bound() returns.
* ethereum: updating some of the RV tests
The definitions don't compile with newer forge/solc.
* ethereum: Add assumption to test that guardian count > 0
Prevents an arithmetic over/underflow error in testCannotVerifySignaturesWithOutOfBoundsSignature, in the expression bound(outOfBoundsGuardian, 0, params.guardianCount - 1)
---------
Co-authored-by: Lucas MT <lucas.tabajara@runtimeverification.com>
Co-authored-by: Jeff Schroeder <jeffschroeder@computer.org>
* AutoRelayer: replay protection
* AutoRelayer: store block number on failure and success, use for replay protection and indexing
* AutoRelayer: add 'deliveryAttempted' view fn; clear failure mapping on success
This reverts commit 05cec3d729 (#3059)
The commit was erroneously included in anticipation of a forge version
update, but it actually only generates an error with an outdated
forge-stdlib version.
The old version's `vm.addr` function
(see
ddb69063e4/src/Vm.sol (L15))
has no `pure` modifier, thus any function using it can not be `pure` (or `view`).
The new version (see
66bf4e2c92/src/Vm.sol (L55))
on the other hand does. In fact, with the new version, removing the
modifier produces a warning.
* gRelayer: surrounding files
* modification to get compilation
* restore devnet
* remove generic relayer docker
* remove wait for relayer engine
* keep build time 20
* sh -> bash
* sh -> bash
* Remove comment
* bash -> sh
* Revert "bash -> sh"
This reverts commit 5c37e92fa1.
* bash->sh
* gRelayer: ethereum folder changes for generic-relayer-merge
* add eth-devnet
* Adds .github because workflow needs to install forge
* sdk-ci-tests need to install forge
* don't wait for nonexistent relayer engine
* update package.json and package-lock.json
* Remove unnecessary types from package.json
* ts-node
* gRelayer: ethereum folder changes for generic-relayer-merge
* sdk-ci-tests need to install forge
* don't wait for nonexistent relayer engine
* update package.json and package-lock.json
* remove these changes
* Relayer: Natspec documentation in IWormholeRelayer (#3032)
* WIP
* Fixes
* Updated interfaces
* remove bash
* Forward uses same refund chain id and refund address (#3034)
* WIP
* Fixes
* Forward uses same refund chain id and refund address
* Updated interfaces
* Remove forge build warnings
* Add note to interface for resend
* via-ir on unless in Tilt
* Correct IWormholeReceiver interface
* Wormhole message fee now part of quoteDeliveryPrice (#3043)
* Fix to PR 3043
* Remove compiler warning
* Relayer/address drew review (#3060)
* Fix typo in Create2Factory
* Add event for contract upgrades
* Prevent registering contract if it is already registered
* Prevent allowing unset chainId for default delivery provider governance VAA
* memory to calldata for external functions in WormholeRelayerSend
* continue memory to calldata for external functions
* Fix pricing in delivery provider
* Sanity check new default delivery provider isn't 0 address
* Don't save vaaKey as local variable
* cache the length of array rather than iterate every time for vaaKeys
* Replacing memory with calldata in few locations
* Remove stale file DeliveryProviderMessages
* Remove batch VAA sender script
* Remove batch VAA from WormholeSimulator
* Wait for a confirmation in deploy scripts
* remove unnecessary comments
* Fix Delivery Provider Pricing and add a test
* remove console logs
* Revert "continue memory to calldata for external functions"
This reverts commit f322afb6c0.
* Revert "memory to calldata for external functions in WormholeRelayerSend"
This reverts commit 42fcaad884.
* Revert "Don't save vaaKey as local variable"
This reverts commit a9172379c5.
* Revert "cache the length of array rather than iterate every time for vaaKeys"
This reverts commit d61380a9b0.
* Revert "Replacing memory with calldata in few locations"
This reverts commit 94e47b6e72.
* Revert "Fix typo in Create2Factory"
This reverts commit a9f7bdf461.
* Update contract addresses for via-ir
* Slight improvements to delivery provider implementation
* typed errors for delivery provider
* enable VIA-IR in CI and not in Tilt
* correct contract address for via ir
* WormholeRelayerSend and WormholeRelayerDelivery (#3082)
Newer versions of forge show this warning:
[⠊] Compiling...
[⠢] Compiling 93 files with 0.8.4
[⠘] Solc 0.8.4 finished in 20.09s
Compiler run successful (with warnings)
warning[2018]: Warning: Function state mutability can be restricted to view
--> forge-test/TokenImplementation.t.sol:76:5:
|
| function simulatePermitSignature(
| ^ (Relevant source part starts here and spans across multiple lines).
This change cleans it up.
The BridgeTest contract inherited from both Bridge and forge-std's
Test contracts. This was fine with the ancient version of
forge-std it was using, but newer forge-std has an isFork() from
foundry-rs/forge-std#236. This makes upgrading forge-std to take
advantage of new features like improved invariant testing or smart
fuzzing impossibru.
This makes it a bit cleaner and also fixes some of the logic in the
testTruncate to not be undefined.
Thanks @scnale for the assist on this one!
Added a `uint256 evmChainId` state variable to the Core, Token and NFT Bridge
contracts. `evmChainId` is compared to `block.chainid` in the `chainId`
function. When they don't match, a "bad fork" Chain ID is returned,
otherwise the Wormhole Chain ID is returned.