* gRelayer: Uses calls upper bounded on return data length for deliveries.
This prevents excessive gas usage from contracts that return big and
complex errors or even maliciously crafted revert buffers.
* gRelayer: Basic test for large return/revert buffers in `executeInstruction`.
* gRelayer: simplifies `executeInstruction` interface.
This avoids duplicate data and the need to ensure consistency between
struct fields or arguments.
It also results in gas savings for large payloads.
* gRelayer: simplifies attack forward mechanism test.
* gRelayer: adds test with custom revert on wormhole message received.
* gRelayer: ensure payment calls are upper bounded on return data length.
* gRelayer: a few renames and comment fixes.
* gRelayer: simplifies condition in low level call.
* gRelayer: adds upper bound as a parameter to the low level call function
Also fixes `call` invocation to use lengths for the calldata and return
data instead of past the end indices.
* gRelayer: introduces struct for `executeInstruction` to minimize calldata.
* WormholeRelayerGovernance comments
* compiles
* merge
* remove incorrect comment
* WormholeRelayerSetDefaultDeliveryProvider
* make generate
* setdefaultdeliveryprovider
* format
* gasUsed bignumber
* BigNumber gasLimit
* Modify IWormholeRelayerTyped
---------
Co-authored-by: Sebastián Claudio Nale <sebinale@gmail.com>
* gRelayer: Uses calls upper bounded on return data length for deliveries.
This prevents excessive gas usage from contracts that return big and
complex errors or even maliciously crafted revert buffers.
* gRelayer: Basic test for large return/revert buffers in `executeInstruction`.
* gRelayer: simplifies `executeInstruction` interface.
This avoids duplicate data and the need to ensure consistency between
struct fields or arguments.
It also results in gas savings for large payloads.
* gRelayer: simplifies attack forward mechanism test.
* gRelayer: adds test with custom revert on wormhole message received.
* gRelayer: ensure payment calls are upper bounded on return data length.
* gRelayer: a few renames and comment fixes.
* gRelayer: simplifies condition in low level call.
* gRelayer: adds upper bound as a parameter to the low level call function
Also fixes `call` invocation to use lengths for the calldata and return
data instead of past the end indices.
* gRelayer: introduces struct for `executeInstruction` to minimize calldata.
* We now revert if address is unable to be paid, and we don't decode errors for which we do not know the selector
* check for length of revert data
* nit
* merge
* address comments
* address coment
* relayer: Update truffle compile contracts directory to exclude the relayer interfaces
* relayer: Add *.sol back into contracts_directory
* Lets see if CI tests are run
* Move typescript tests to SDK
* tests in CI use right RPC links
* Wait until relayer engine ready to run SDK tests
* Specify env in tilt-ci in package.json of SDK
* Use correct RPC links in CI
* Upgrade contract test
* Fix test
* Tests all work hopefully!
* small modifications formatting
* Moved tests into one file
* gRelayer: Use two guardians for CI
* 40 min
* relayer: Integration test code cleanup
* correct truffle config
* Update test to new deployment
* gRelayer: Fix forge test
* less code duplication
* Tests pass
* Remove hardcoded conversions from test file, use SDK instead
* Bugfix
* Emit event when refunds are executed
* relayer: Update truffle compile contracts directory to exclude the relayer interfaces
* relayer: SDK fix typescript errors related to removal of send struct
* relayer: Add *.sol back into contracts_directory
* relayer: nits
* relayer: Use typed units, remove send struct from interface
* evm: fixes truffle compile pipeline.
We use brace expansion in the `contracts_directory` config field.
This seems to be respected by the internal profiler that truffle uses.
* relayer: cleanup, make udvt's u256
* relayer: review feedback: move constructSend, remove uin128 const
---------
Co-authored-by: Sebastián Claudio Nale <sebinale@gmail.com>
* refactor conversion code to vastly improve readability
* harden contract upgrade path and improve documentation of governance actions
* adjust GOVERNANCE_ACTION_UPDATE_DEFAULT_PROVIDER value from 4 to 3
* distinguish between payload ids and versions + add doc
* change name of checkPayloadId to checkUint8 to reflect payload/version change
* perform checks before explicit enum casting to avoid Panic
* improve code and comment uniformity, remove outdated TODOs
* accept suggestion to replace abi.encodeWithSelector with encodeCall
Co-authored-by: scnale <sebinale@gmail.com>
---------
Co-authored-by: scnale <sebinale@gmail.com>
Co-authored-by: derpy-duck <115193320+derpy-duck@users.noreply.github.com>
* wip: huge refactor of coreRelayer codebase, contracts compile, tests next
* wip: fix incorrect use of abi.decode, clean up further
* fix: tests (all but 1 pass again)
* test: reduce lower threshold of gasAmount on testFundsCorrectForARedelivery
* gRelayer: nits
* Upgrades truffle to latest released version.
* gRelayer: Separates out `BytesParsing` library.
This helps separate out bits that require solc v0.8.13 or greater.
* Sets up truffle compile pipeline to use v0.8.4.
* Replaces implicit build step with an explicit one for all truffle scripts.
With this, we avoid compilations that include the generic relayer
contracts.
* gRelayer: Relay provider calls now done externally for cross-chain refund (#2898)
* evm: Removes obsolete packages.
`truffle-assertions` is not used.
`ganache-cli` is now part of `truffle`.
* evm: Fixes `ganache-cli` invocation for newest release.
- Adds show VM error flag to get revert buffers.
- Sources `.env` to set expected evm chain id in tests.
* gRelayer: Fixes foundry.toml settings for build output directory.
* gRelayer: Separates out forge output to `build-forge` directory.
* evm: Removes more obsolete packages.
- `solc`: truffle downloads native solc binaries on its own and falls
back to downloading the emscripten builds when no native binaries are
found.
- `caver-js`: had only one reference in `truffle-config.js` but was an
unused `require`.
- `@openzeppelin/test-environment`: no references to this package.
- `@openzeppelin/test-helpers`: no references to this package.
* bridge: Adds missing `await` in test.
* gRelayer: Removes `Structs` contract.
* evm: Fixes tests for core, token bridge and nft bridge.
* gRelayer: simplify forward logic (#2902)
* Remove increaseMaxTransactionFee and transactionFeeRefundAmountPostForward
* gRelayer: move emitForward to inside instruction executor
* gRelayer: tests pass
* gRelayer: address some TODOs (#2899)
* gRelayer: address some TODOs
* gRelayer: remove extraneous abi encodes
* getDefaultRelayParams pure -> view
* gRelayer: fix typo
* gRelayer: fast iteration! (#2909)
* Import IWormholeRelayer seperately
* import IWormholeRelayer seperately
* gRelayer: some typescript fixes related to importing from ethers (#2910)
* gRelayer: some typescript fixes related to importing from ethers
* gRelayer: Fix import in helpers.ts
* specify chainId
* gRelayer: fix ganache broken change
* wip deployment script update
* add SDK to relayer engine tilt job
* Add SDK to relayer engine dockerfile
* Move add SDK line to correct place
* Move add SDK line to correct place II
* Modify package lock for optional dependencies
* gRelayer: get SDK built in relayer engine dockerfile
* Fix typechain command in relayer engine dockerfile
* Avoid the extra test.sol file in typechain
* npm ci -> npm install
* Note in Relayer engine docker file
* fix relayer engine version bump - storage
* Update address for tilt/devnet/SDK for CoreRelayer
* gRelayer: fix relayer engine
* gRelayer: update addresses for mock integration
* Final changes to get tests to pass except one
---------
Co-authored-by: Joe Howarth <jhowarth@jumptrading.com>
* relayer engine dockerfile fix (#2923)
* gRelayer: fix sdk aptos test in tilt job (#2924)
* gRelayer: async request processing false
* gRelayer: update ganache-CLI arguments
* Fix ethereum makefile invocation of ganache-cli as well
* Fix ethereum makefile invocation of ganache-cli as well
* Change payload id of WormholeSetDefaultRelayProvider to 3, and remove the register chain action (#2926)
* gRelayer: increase build timeout to 30 min
---------
Co-authored-by: nonergodic <nonergodic@gmail.com>
Co-authored-by: derpy-duck <115193320+derpy-duck@users.noreply.github.com>
Co-authored-by: Sebastián Claudio Nale <sebinale@gmail.com>
* relayer: use tsx instead of ts-node for faster script start time
* relayer: import sdk locally for gr relayer engine app
* typo
* cleanup package.json re