* 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
* 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>
* CCQ: Fuzzing for parseAndVerifyQueryResponse
* CCQ: Fuzz signature checking and improve request body check
* CCQ: Use forge bounding & improve test coverage
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);
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.
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.
* 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
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.