Commit Graph

18 Commits

Author SHA1 Message Date
chase-45 2ea98eaa8d
Typescript SDK (#79)
* sdk additions, query delivery status functions

* import fixes

* imports

* Fixes for getDeliveryStatusBySourceTx

* Fix typo in invalidRedeliveryTopics

* Use negative number feature of queryFilter

* 2047 -> 2040

* WIP

* Typescript test for statusByTx

* small changes

* revert reason WIP

* continued WIP for getting revert reason

* Remove reason parsing

* WIP adding default RPCs

* compiles

* SDK nicely prints delivery information!

* SDK nicely prints delivery information!

* Change error msg

* Tests pass, including test for resending a failed forward!

* Enum

* update SDK in relayer engine

* remove testgovernance file

* Nice error logging around not finding a delivery

* Update relayer engine sdk

* Respond to PR comments

* Fix test

* fixed new lines

* helper

---------

Co-authored-by: derpy-duck <115193320+derpy-duck@users.noreply.github.com>
2023-03-15 15:32:33 -07:00
derpy-duck f7de3d649d
Code cleanup (#109)
* 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
2023-02-27 14:32:57 -05:00
Sebastián Claudio Nale 3795b4ee1c Fixes struct parsing in sdk. 2023-02-17 19:54:52 -03:00
derpy-duck d434221240
Install with forge not npm (#84)
* forge install: openzeppelin-contracts

v4.8.1

* Using openzeppelin from forge, not npm

* Keep original import

* Remove undesired changes

* add back a @

* makefile changes

* makefile changes

* Remove .gitmodules

* Remove submodule

* remove defaultSettings

* removed submodule openzeppelin

* original package-lock

* uninstall @openzeppelin

* remove truffle-config + two outdated READMEs

* Trying to remove solc

* Revert "Trying to remove solc"

This reverts commit 4debc9d127.

* Trying to remove solc
2023-02-14 10:42:04 -05:00
derpy-duck b8db370dde Forge tests pass! 2023-02-13 17:13:42 -05:00
Joe Howarth 3cac2165b4 update with changes from 'redelidevery-fixes' branch 2023-01-29 14:46:35 -05:00
chase-45 312df2d862 redelivery draft 2023-01-29 14:46:35 -05:00
Joe Howarth 4cdeca0d34 improve deployment 2023-01-18 13:28:53 -07:00
Joe Howarth cd1ee566c0 ck sdk/src/index.ts from improve-dockerfile 2023-01-18 13:05:33 -07:00
Joe Howarth bbb01efff6 include updated_make_ethers_types 2023-01-18 13:05:33 -07:00
Sebastián Claudio Nale ce4eaf75e2 Updates sdk package-lock.
This allows `npm ci` to work.
2023-01-17 15:11:41 -07:00
Joe Howarth 121ad6d84b test against testnet 2023-01-11 11:38:45 -07:00
dependabot[bot] d4e1a156d1
build(deps): bump json5 from 1.0.1 to 1.0.2 in /sdk (#26)
Bumps [json5](https://github.com/json5/json5) from 1.0.1 to 1.0.2.
- [Release notes](https://github.com/json5/json5/releases)
- [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md)
- [Commits](https://github.com/json5/json5/compare/v1.0.1...v1.0.2)

---
updated-dependencies:
- dependency-name: json5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-05 18:17:33 -05:00
Joe Howarth ac22124e6c
add pkeys.sh to gitignore, fix imports (#24) 2023-01-05 18:04:30 -05:00
Joe Howarth ab833b38cf
Move development branch to main (#23)
* refactoring for multidelivery

* partial ts-test fixes

* use typechain in integration tests, update prettier, fix remaining integration tests

* run formatter on solidity files

* gas refunding

* gas forwarding logic

* msg.send -> refundAmount

* minor test refactor & additions

* created relayer engine directory

* more testing & tilt environment config for relayer engine

* starting work on the xMint example contracts

* additions for relayer engine

* minor modifications & todos

* fixed some errors

* refactoring + cleaned up some TODOs

* updated ICoreRelayer interface

* adjusted tests for new interface

* Working testSend

* Merged refactoring + cleaned up some TODOs

* updated ICoreRelayer interface

* adjusted tests for new interface

* Working testSend with new interface'

* refactoring interfaces & files for single VAA design

* GasOracle implementation of new interface

* GasOracle compiles

* Gas oracle upgradable

* Fix compile errors in GasOracleGovernance

* minor core relayer cleanup

* Changes to getters, setters, state

* implement quoteEvmDeliveryPrice, quoteTargetEvmGas, assetConversionAmount for corerelayer

* Correcting interface inconsistencies between CoreRelayerStructs and ICoreRelayer

* Fix encodeDeliveryRequestsContainer

* added single vaa delivery entrypoint logic

* Encode and Decode delivery instructions

* Fixed many compile errors

* First attempt at removing stacktoodeep error

* Commenting out chunks of code to identify stack too deep error

* Continue stack too deep quest

* Revert "Commenting out chunks of code to identify stack too deep error"

This reverts commit 8cd55d26ce.

* Revert "Continue stack too deep quest"

This reverts commit f0cde6871e.

* Fix stack too deep error in CoreRelayerMessages

* tests compile, run, pass

* fixing up fee collection assertions

* GasOracle tests altering

* Rename encodeDeliveryIntructions to convertToEncodedDeliveryInstructions because we are going from delivery request to delivery instruction

* adding evm events to delivery execution

* forwarding refactor for single vaa

* relay provider name refactor

* Test file slight refactor to allow for multiple chains

* first impl of hub and spoke example

* Forward test progress

* Forwarding test passes!

* More general parameters for test

* Testing file more modular, calls 'generic relayer'

* redelivery implementation

* removing todos

* Tests can use arbitrary amount of chains

* Address various TODOs

* refactored RelayProvider to be upgradeable via proxy

* Add overhead inteface to RelayProvider & adjusted necessary fee calculations

* added TODOs related to rewardAddress payout

* provider price quoting changes

* provider payments made at source

* Fixed all compile errors

* testForward and testSend pass again!

* Switched quoteAssetConversion to quoteApplicationBudgetFee in CoreRelayer interface

* First round of changes to support individual vaas in offchain relayer

- Use new custom plugin event source api in relayer engine
- Supports mulit delivery
- Config for celo and fuji

* contracts deploy successfully to tilt

* bug fixes, contracts deploy to tilt

* Starting the redelivery test

* Tests pass again, with exception of the RelayProvider tests that tested reverts, and the new testRedelivery which isn't finished

* small plugin changes

* MockRelayerIntegration is used for sending

* prepare offchain relayer to run in both tilt and testnet

* update readme and npm scripts for offchain relayer

* nit: remove console.log(argv)

* solc version bump

* Tests changed to pass (commented out the tests with differing require statements and kept redelivery incomplete

* chain registration typescript scripts

* Redeliver works!

* Redelivery test works!

* testnet deploy + relayer engine test

* Testing two sends

* Friday changes to round trip on testnet

* Shortening current tests

* Funds are correct! Relayer gets paid!

* Remove extraneous comments

* ts scripts for deployment and config

* Wormhole Fee Test

Co-authored-by: chase-45 <chasemoran45@gmail.com>
Co-authored-by: derpy-duck <115193320+derpy-duck@users.noreply.github.com>
2023-01-05 17:26:27 -05:00
A5 Pickle 0b9e81ffc5
Clean up send (#2)
* Update README.md with trustlessness

* ethereum: rename AllowedEmitterSequence; remove arbitrary payloads

* ethereum: refactor integrator contract; add verifying payload

* ethereum: update IWormhole

* ethereum: add message verifying in mock integration

* Remove deliveryList from DeliveryInstructions and fix stack too deep

* Remove maximum batch size from relay parameters

* ethereum: fix observation loop; formatting

* sdk: fix eth-integration test

* offchain-relayer: add regenerate-abi.sh

* fix Makefile

* offchain-relayer: add relayer.tilt.yaml

Co-authored-by: Evan Gray <56235822+evan-gray@users.noreply.github.com>
Co-authored-by: A5 Pickle <a5-pickle@users.noreply.github.com>
Co-authored-by: gator-boi <gator-boi@users.noreply.github.com>
2022-10-06 12:16:57 -05:00
Justin Schuldt fbadea1de9
add offchain-relayer (#10)
* add offchain-relayer

* Update test to use off-chain relayer

Co-authored-by: Drew <dsterioti@users.noreply.github.com>
2022-09-30 12:58:39 -05:00
Reptile d3b6470936
Add tests for send and deliver functionality (#9)
* Complete send and deliver functionality

* Clean up

* Add tests for relayer send method

* ethereum: remove interfaces

* ethereum: fix test

* ethereum: rename directory

* ethereum: clean up; add ts tests

* Add tests and clean up

* ethereum: fix test

* ethereum: fix output

* Add reentrancy protection and reduce gas overhead for relayers

* Add tests for full batch delivery

* Update relayer contracts to reflect changes to batch VAA implementation

* add rewards payout

* implement redeliveries, replay protection

* Complete full batch test suite

* sdk: add sdk

* sdk: fix package.json

* Add partial batch unit test and add to integration test

* Fix comments in integration test

* sdk: fix tsconfig.json

* ethereum: fix build

* Add relayer registration to integration test

* Finish integration test suite

* ethereum: fix readAbi

* ethereum: fix merge conflict

* Complete full batch test suite

* Add partial batch unit test and add to integration test

* Finish integration test suite

* Fix local validator test

* Fix merge conflict

* Add Makefile

* Add documentation to relayer contracts

* Fix Makefile

* ethereum: clean up

* ethereum: fix interface

* ethereum: fix method names and tests

* Prepare integration test for off-chain relayer changes

* Refactor contracts

Co-authored-by: Drew <dsterioti@users.noreply.github.com>
Co-authored-by: Karl Kempe <karlkempe@users.noreply.github.com>
Co-authored-by: valentin <valentinvonalbrecht@yahoo.de>
Co-authored-by: justinschuldt <justinschuldt@gmail.com>
2022-09-30 11:18:49 -05:00