Skip to content

Implement RelayerHelper contract #424

Open
1 of 1 issue completed
Open
1 of 1 issue completed
@srdtrk

Description

@srdtrk

Summary

Right now, the size of ICS26Router nearly exceeds the allowed limits. We can reduce the size of the contract by breaking some of its functionalities into a RelayerHelper contract while also improving the relayer experience.

This pattern would also allows us to implement callbacks and other convenience features such as multipass in a non-invasive and gas safe manner.

Problem Definition

The current size of ICS26Router makes it impossible to add new features to it, such as relayer whitelisting in #376. This is partially due to a lot of convenience functions and queries having been placed in ICS26Router.

Use cases

We can immediately move the following functions into the relayer helper:

  • Multicall
  • convinience queries such as:
    • isPacketReceived
    • isPacketReceiveSuccessful
    • queryPacketReceipt
    • queryPacketCommitment
    • queryAckCommitment
  • Relayer whitelisting

We should also add the following items for better DX overall:

  • Multipass (multicall without fully reverting the tx)
  • Relayer gas limits and protections
  • callbacks

For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged/assigned
  • Estimate provided

Sub-issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    solidityIssues related to the solidity contracts

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions