Skip to content

Commit

Permalink
add core channel module (#7)
Browse files Browse the repository at this point in the history
* added stats validator count request

* added core channel module

* updated license header
  • Loading branch information
vvuwei authored Oct 30, 2023
1 parent c2733b1 commit 54a109d
Show file tree
Hide file tree
Showing 20 changed files with 607 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .run/requests/stats.http
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
### Get validators
http://{{host}}/v1/summary/validator/count
3 changes: 3 additions & 0 deletions cmd/api/docs/docs.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions internal/storage/mock/address.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions internal/storage/mock/balance.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions internal/storage/mock/block.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions internal/storage/mock/block_stats.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions internal/storage/mock/constant.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions internal/storage/mock/denom_metadata.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions internal/storage/mock/event.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions internal/storage/mock/generic.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions internal/storage/mock/message.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions internal/storage/mock/namespace.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions internal/storage/mock/state.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions internal/storage/mock/stats.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions internal/storage/mock/tx.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions internal/storage/mock/validator.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

108 changes: 108 additions & 0 deletions pkg/indexer/decode/handle/coreChannel.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
// SPDX-FileCopyrightText: 2023 PK Lab AG <[email protected]>
// SPDX-License-Identifier: MIT

package handle

import (
"github.com/celenium-io/celestia-indexer/internal/storage"
storageTypes "github.com/celenium-io/celestia-indexer/internal/storage/types"
"github.com/celenium-io/celestia-indexer/pkg/types"
coreChannel "github.com/cosmos/ibc-go/v6/modules/core/04-channel/types"
)

// MsgChannelOpenInit defines an sdk.Msg to initialize a channel handshake. It
// is called by a relayer on Chain A.
func MsgChannelOpenInit(level types.Level, m *coreChannel.MsgChannelOpenInit) (storageTypes.MsgType, []storage.AddressWithType, error) {
msgType := storageTypes.MsgChannelOpenInit
addresses, err := createAddresses(addressesData{
{t: storageTypes.MsgAddressTypeSigner, address: m.Signer},
}, level)
return msgType, addresses, err
}

// MsgChannelOpenTry defines a msg sent by a Relayer to try to open a channel
// on Chain B. The version field within the Channel field has been deprecated. Its
// value will be ignored by core IBC.
func MsgChannelOpenTry(level types.Level, m *coreChannel.MsgChannelOpenTry) (storageTypes.MsgType, []storage.AddressWithType, error) {
msgType := storageTypes.MsgChannelOpenTry
addresses, err := createAddresses(addressesData{
{t: storageTypes.MsgAddressTypeSigner, address: m.Signer},
}, level)
return msgType, addresses, err
}

// MsgChannelOpenAck defines a msg sent by a Relayer to Chain A to acknowledge
// the change of channel state to TRYOPEN on Chain B.
func MsgChannelOpenAck(level types.Level, m *coreChannel.MsgChannelOpenAck) (storageTypes.MsgType, []storage.AddressWithType, error) {
msgType := storageTypes.MsgChannelOpenAck
addresses, err := createAddresses(addressesData{
{t: storageTypes.MsgAddressTypeSigner, address: m.Signer},
}, level)
return msgType, addresses, err
}

// MsgChannelOpenConfirm defines a msg sent by a Relayer to Chain B to
// acknowledge the change of channel state to OPEN on Chain A.
func MsgChannelOpenConfirm(level types.Level, m *coreChannel.MsgChannelOpenConfirm) (storageTypes.MsgType, []storage.AddressWithType, error) {
msgType := storageTypes.MsgChannelOpenConfirm
addresses, err := createAddresses(addressesData{
{t: storageTypes.MsgAddressTypeSigner, address: m.Signer},
}, level)
return msgType, addresses, err
}

// MsgChannelCloseInit defines a msg sent by a Relayer to Chain A
// to close a channel with Chain B.
func MsgChannelCloseInit(level types.Level, m *coreChannel.MsgChannelCloseInit) (storageTypes.MsgType, []storage.AddressWithType, error) {
msgType := storageTypes.MsgChannelCloseInit
addresses, err := createAddresses(addressesData{
{t: storageTypes.MsgAddressTypeSigner, address: m.Signer},
}, level)
return msgType, addresses, err
}

// MsgChannelCloseConfirm defines a msg sent by a Relayer to Chain B
// to acknowledge the change of channel state to CLOSED on Chain A.
func MsgChannelCloseConfirm(level types.Level, m *coreChannel.MsgChannelCloseConfirm) (storageTypes.MsgType, []storage.AddressWithType, error) {
msgType := storageTypes.MsgChannelCloseConfirm
addresses, err := createAddresses(addressesData{
{t: storageTypes.MsgAddressTypeSigner, address: m.Signer},
}, level)
return msgType, addresses, err
}

// MsgRecvPacket receives an incoming IBC packet
func MsgRecvPacket(level types.Level, m *coreChannel.MsgRecvPacket) (storageTypes.MsgType, []storage.AddressWithType, error) {
msgType := storageTypes.MsgRecvPacket
addresses, err := createAddresses(addressesData{
{t: storageTypes.MsgAddressTypeSigner, address: m.Signer},
}, level)
return msgType, addresses, err
}

// MsgTimeout receives a timed-out packet
func MsgTimeout(level types.Level, m *coreChannel.MsgTimeout) (storageTypes.MsgType, []storage.AddressWithType, error) {
msgType := storageTypes.MsgTimeout
addresses, err := createAddresses(addressesData{
{t: storageTypes.MsgAddressTypeSigner, address: m.Signer},
}, level)
return msgType, addresses, err
}

// MsgTimeoutOnClose timed-out packet upon counterparty channel closure
func MsgTimeoutOnClose(level types.Level, m *coreChannel.MsgTimeoutOnClose) (storageTypes.MsgType, []storage.AddressWithType, error) {
msgType := storageTypes.MsgTimeoutOnClose
addresses, err := createAddresses(addressesData{
{t: storageTypes.MsgAddressTypeSigner, address: m.Signer},
}, level)
return msgType, addresses, err
}

// MsgAcknowledgement receives incoming IBC acknowledgement
func MsgAcknowledgement(level types.Level, m *coreChannel.MsgAcknowledgement) (storageTypes.MsgType, []storage.AddressWithType, error) {
msgType := storageTypes.MsgAcknowledgement
addresses, err := createAddresses(addressesData{
{t: storageTypes.MsgAddressTypeSigner, address: m.Signer},
}, level)
return msgType, addresses, err
}
Loading

0 comments on commit 54a109d

Please sign in to comment.