* resend doesn't take nonce as parameter
* Replace 'delivery failure' with 'receiver failure' in specs
* helper send method
* Fix interface to match not having nonce for resend
* Fix forge tests to not have nonce as a parameter
* fix redeliveryTest
* Split CoreRelayer into CoreRelayer and CoreRelayerDelivery
* fix build error
* forge fmt
* fix interface of getdefaultrelayprovider
* Nice comments for main functions in CoreRelayer.sol
* Nice comments for CoreRelayerMessages
* forge fmt
* merge
* Removes wormholeMessageFee from storage to avoid excessive gas costs.
---------
Co-authored-by: Sebastián Claudio Nale <sebinale@gmail.com>
* resend doesn't take nonce as parameter
* Replace 'delivery failure' with 'receiver failure' in specs
* helper send method
* Fix interface to match not having nonce for resend
* Fix forge tests to not have nonce as a parameter
* fix redeliveryTest
* fix build error
* forge fmt
* fix interface of getdefaultrelayprovider
* Adds `memory-safe` tag to assembly sections in `BytesLib`.
This improves codegen in the compiler and reduces the chance of
untraceable internal codegen errors when dealing with stack variables
that can't be referenced with an instruction.
Also, it removes unused functions in `BytesLib` to reduce code surface.
* Renames functions and contracts in reentrancy negative test.
* Adds `unchecked` block for overflow check.
* DRY: Remove duplicate structs
* Move encode/decode/convert-request-to-instruction related files to CoreRelayerMessages
* remove rolloverchain; now it is just the chain of the first request
* forge test fix to accomdoate for removing two getters
* DRY: Remove repeated error messages
* Remove miscellaneous comments
* DRY send and forward
* replace relayprovider interface with address to match the IWormholeRelayer interface
* forge fmt
* Remove byteslib from CoreRelayer
* Remove the encoding and decoding of the delivery request -> just store the struct itself!
* forge fmt
* Rewriting of checks in send/resend/forward
* test passes
* DRY - Emit only one event
* DRY
* forge fmt
* Fix typescript error
* using IWormholeRelayer
* Consistent naming
* call wormhole.messageFee() once
* Remove unnecessary line
* Compute the length once, not every iteration
* forge tests pass
Also adds a `WormholeSimulator` interface for signing and non-signing
mocks. The signing mock can be useful when writing a test for a
specific testnet fork with a real wormhole deployment. In the unit tests,
only the non signing mock is used.