Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(v3): hyperlane core implementation #45

Merged
merged 178 commits into from
Oct 17, 2023
Merged

feat(v3): hyperlane core implementation #45

merged 178 commits into from
Oct 17, 2023

Conversation

byeongsu-hong
Copy link
Collaborator

@byeongsu-hong byeongsu-hong commented Oct 11, 2023

Changes

  • Reorganize entire code structure to make easy to implement / modularize more features
  • Refactored inconsistent code / interfaces.
  • Implemented hook feature
    • mailbox
    • hook/merkle
    • hook/pausable
    • hook/routing
    • hook/routing-custom
    • hook/routing-fallback
    • igp
  • Added useful libraries
    • hpl-router
    • hpl-ownable
    • hpl-pausable
  • Applied fixture based test method actively on every tests
  • Use inherited interface
    • We also added test about this
  • Unify schema generator - needs to be discuss about this. Very annoyed to add schema generator for each new contract.

Things left to do

  • Detail tests for IGP contracts
  • Apply inherited interface to ISM
    • Test inherited interface for every ISMs
  • Automate / Simplify schema generate

Things need to know before review

  • Token warp is not included on this PR.
  • Needs to fix broken tests - will update on this PR

@byeongsu-hong byeongsu-hong merged commit 7dd4265 into main Oct 17, 2023
1 of 3 checks passed
@byeongsu-hong byeongsu-hong deleted the eddy/v3 branch October 17, 2023 13:48
byeongsu-hong added a commit that referenced this pull request Oct 20, 2023
* cleanup hooks

* remove "Owned"

* organize interfaec

* generic router

* router -> route

* support custom query

* one file contract

* avoid duplication

* ownable

* pausable

* useful kids

* rename methods

* apply to routing-hook

* cleanup

* define hook interface

* typo

* warp: fix error temp

* feat: add conn

* feat: deprecate hub

* hook: typo

* igp: cleanup

* new ism types

* rename event & method

* deprecate hub

* feat: add package prefix

* feat: add package prefix (2)

* test: ownable

* test: pausable

* fix(ownable): use Ownable class as possible

* feat: add pausable alias into workspace

* feat: add `wrap` method to easy to call

* fix: remove `Binary` usage

* feat: v3 mailbox

* fix(mailbox): use contract_querier

* fix(va): compile error

* fix!(va): not to use Binary

* fix!: not to use `Binary`

* refactor(va): merge tests

* chore(mailbox): make public & prune imports

* fix(va): use 'hrp'

* feat: gen schema in build time

* chore(router): move test

* chore(va): redundant

* chore: use event_to_resp

* fix(router): remove Default

* feat: share `to_binary`

* feat: wrap method for `QuoteDispatchMsg`

* fix: export message directly

* feat(hook): implement routing hook

* feat(hook): add schema build script

* feat(hook): add mailbox

* feat(hook): apply mailbox rbac

* fix(ownable): use ensure

* feat(hook): implement all

* remove migrate msg

* fix(hook): revive quote dispatch

* fix(hook): apply quote dispatch msg

* fix: suggestions

* feat: igp interface helper

* feat(igp): schema builder

* feat(igp): v3 igp-core - wip (1)

* chore(hook): visibility

* feat(hook): custom, fallback routing hook

* feat(hook): custom, fallback routing hook interface

* feat(igp): wip - 2

* refactor(igp): simplify package name

* fix(igp): no compile error

* fix(igp): broken

* feat(ism): multisig - wip 1

* fix(igp): oracle test

* chore: pausable test

* fix(ism): routing test

* refactor(warp): cleanup interface

* feat(warp): wip 2

* feat(warp): native

* feat(warp): generic token option

* feat(warp): cw20

* fix: buildable

* test(core): mailbox

* fix: duplicated

* fix(schema): all in one

* chore: schema command

* test(core): mailbox - 2

* test(core): va - 1

* feat: move crypto things to types

* deps: correct package alias

* fix!: remove `untagged`

* test(core): va - done

* fix!: untagged sideeffects

* feat(core): add required hook

* feat(core): query required hook

* fix(router): check owner

* test(hook): merkle

* test(hook): pausable

* feat(hook): default paused field

* chore(hook): derive Default

* test: overflow

* test: redundant fmt

* fix(warp): clippy suggestions

* test(warp): native - 1

* test(core): required hook

* test(hook): routing

* feat!!!: bump v0.0.2

* test: schema tester

* test(hook): add default test

* test(hook): using macro

* fix(mock): using gas_token

* feat(igp): add dest_domain field

* test(hook): routing custom hook

* feat(igp): add mailbox

* chore: build-dev before check

* chore: clean

* test(igp): rstest

* test(igp): add features

* test(igp): add get beneficiary

* feat: verisoning

* feat!(ism): unify interface

* ism schema

* fix!: mailbox query

* fix: add get_nonce function to mailbox contract (#46)

* feat: add get_nonce function to mailbox

* remove bind

---------

Co-authored-by: byeongsu-hong <[email protected]>

* test(core): add init test

* test(core): remove 'revised'

* docs: add deploy sequence

* test: add test executor

* fix(core): typo

* test(mock): use expected interface

* test: update contract list

* test(mock): use uosmo denom

* fix(core): check insufficient amount

* fix(core): dispatch / process

* chore: local dependency

* feat(ism): add expected ism query msg

* fix(ism): convention

* feat(core): add quote gas query

* fix(e2e): wip

* fix(warp): correct comment

Co-authored-by: Yorke Rhodes <[email protected]>

* fix(core): hook metadata feature

* feat(hook): add aggregate - wip

* feat(ism): aggregate ism

* feat: aggregate for ism

* test(warp): fixed tests

* pnpm install

* feat: deploy scripts - wip

* fix(core): gas policy - peer review needed

* fix(core): clippy

* feat(hook): aggregate - wip

* feat: deployer

* feat(hook): add index field

* test: add schema test for mock contract

* feat: warp deployer

* test(hook): assert event attribute

* test: fixtures

* test(e2e): fix deployer

* fix(hook): separate event

* fix(hook): revive attr

* fix: cw e2e deployer

* token warp deployer and linker

* feat: wip script

* fix(core): code review

* fix: verify income message with latest dispatched id

* feat: public pausable hook

* fix(hook): make routing hooks public

* fix(ism): use message id multisig

* v0.0.6-rc1

* fix: duplicated owner assertion

* chore: polishing

* feat: apply new metadata structure

* fix(hook): use prev index

* fix(ism): new metadata

* test: working?

* fix: working

* chore: remove redundant debug

* fix: correct query

* revert: aggregate

* fix: metadata - wip

* test: disable unit tests for warp route

* chore: clippy

---------

Co-authored-by: Eric <[email protected]>
Co-authored-by: Yorke Rhodes <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants