Documentation ¶
Index ¶
- Constants
- Variables
- func GetModuleOwner(modules []string) string
- func RegisterQueryServer(s grpc1.Server, srv QueryServer)
- type IBCModule
- type ICS4Wrapper
- type Middleware
- type QueryAppVersionRequest
- func (*QueryAppVersionRequest) Descriptor() ([]byte, []int)
- func (m *QueryAppVersionRequest) GetConnectionId() string
- func (m *QueryAppVersionRequest) GetCounterparty() *types.Counterparty
- func (m *QueryAppVersionRequest) GetOrdering() types.Order
- func (m *QueryAppVersionRequest) GetPortId() string
- func (m *QueryAppVersionRequest) GetProposedVersion() string
- func (m *QueryAppVersionRequest) Marshal() (dAtA []byte, err error)
- func (m *QueryAppVersionRequest) MarshalTo(dAtA []byte) (int, error)
- func (m *QueryAppVersionRequest) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (*QueryAppVersionRequest) ProtoMessage()
- func (m *QueryAppVersionRequest) Reset()
- func (m *QueryAppVersionRequest) Size() (n int)
- func (m *QueryAppVersionRequest) String() string
- func (m *QueryAppVersionRequest) Unmarshal(dAtA []byte) error
- func (m *QueryAppVersionRequest) XXX_DiscardUnknown()
- func (m *QueryAppVersionRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *QueryAppVersionRequest) XXX_Merge(src proto.Message)
- func (m *QueryAppVersionRequest) XXX_Size() int
- func (m *QueryAppVersionRequest) XXX_Unmarshal(b []byte) error
- type QueryAppVersionResponse
- func (*QueryAppVersionResponse) Descriptor() ([]byte, []int)
- func (m *QueryAppVersionResponse) GetPortId() string
- func (m *QueryAppVersionResponse) GetVersion() string
- func (m *QueryAppVersionResponse) Marshal() (dAtA []byte, err error)
- func (m *QueryAppVersionResponse) MarshalTo(dAtA []byte) (int, error)
- func (m *QueryAppVersionResponse) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (*QueryAppVersionResponse) ProtoMessage()
- func (m *QueryAppVersionResponse) Reset()
- func (m *QueryAppVersionResponse) Size() (n int)
- func (m *QueryAppVersionResponse) String() string
- func (m *QueryAppVersionResponse) Unmarshal(dAtA []byte) error
- func (m *QueryAppVersionResponse) XXX_DiscardUnknown()
- func (m *QueryAppVersionResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *QueryAppVersionResponse) XXX_Merge(src proto.Message)
- func (m *QueryAppVersionResponse) XXX_Size() int
- func (m *QueryAppVersionResponse) XXX_Unmarshal(b []byte) error
- type QueryClient
- type QueryServer
- type Router
- type UnimplementedQueryServer
Constants ¶
const ( // SubModuleName defines the IBC port name SubModuleName = "port" // StoreKey is the store key string for IBC ports StoreKey = SubModuleName // RouterKey is the message route for IBC ports RouterKey = SubModuleName // QuerierRoute is the querier route for IBC ports QuerierRoute = SubModuleName )
Variables ¶
var ( ErrPortExists = sdkerrors.Register(SubModuleName, 2, "port is already binded") ErrPortNotFound = sdkerrors.Register(SubModuleName, 3, "port not found") ErrInvalidPort = sdkerrors.Register(SubModuleName, 4, "invalid port") ErrInvalidRoute = sdkerrors.Register(SubModuleName, 5, "route not found") )
IBC port sentinel errors
Functions ¶
func GetModuleOwner ¶
GetModuleOwner enforces that only IBC and the module bound to port can own the capability while future implementations may allow multiple modules to bind to a port, currently we only allow one module to be bound to a port at any given time
func RegisterQueryServer ¶
func RegisterQueryServer(s grpc1.Server, srv QueryServer)
Types ¶
type IBCModule ¶
type IBCModule interface { // OnChanOpenInit will verify that the relayer-chosen parameters are // valid and perform any custom INIT logic.It may return an error if // the chosen parameters are invalid in which case the handshake is aborted. // OnChanOpenInit should return an error if the provided version is invalid. OnChanOpenInit( ctx sdk.Context, order channeltypes.Order, connectionHops []string, portID string, channelID string, channelCap *capabilitytypes.Capability, counterparty channeltypes.Counterparty, version string, ) error // OnChanOpenTry will verify the relayer-chosen parameters along with the // counterparty-chosen version string and perform custom TRY logic. // If the relayer-chosen parameters are invalid, the callback must return // an error to abort the handshake. If the counterparty-chosen version is not // compatible with this modules supported versions, the callback must return // an error to abort the handshake. If the versions are compatible, the try callback // must select the final version string and return it to core IBC. // OnChanOpenTry may also perform custom initialization logic OnChanOpenTry( ctx sdk.Context, order channeltypes.Order, connectionHops []string, portID, channelID string, channelCap *capabilitytypes.Capability, counterparty channeltypes.Counterparty, counterpartyVersion string, ) (version string, err error) // OnChanOpenAck will error if the counterparty selected version string // is invalid to abort the handshake. It may also perform custom ACK logic. OnChanOpenAck( ctx sdk.Context, portID, channelID string, counterpartyChannelID string, counterpartyVersion string, ) error // OnChanOpenConfirm will perform custom CONFIRM logic and may error to abort the handshake. OnChanOpenConfirm( ctx sdk.Context, portID, channelID string, ) error OnChanCloseInit( ctx sdk.Context, portID, channelID string, ) error OnChanCloseConfirm( ctx sdk.Context, portID, channelID string, ) error // OnRecvPacket must return an acknowledgement that implements the Acknowledgement interface. // In the case of an asynchronous acknowledgement, nil should be returned. // If the acknowledgement returned is successful, the state changes on callback are written, // otherwise the application state changes are discarded. In either case the packet is received // and the acknowledgement is written (in synchronous cases). OnRecvPacket( ctx sdk.Context, packet channeltypes.Packet, relayer sdk.AccAddress, ) exported.Acknowledgement OnAcknowledgementPacket( ctx sdk.Context, packet channeltypes.Packet, acknowledgement []byte, relayer sdk.AccAddress, ) error OnTimeoutPacket( ctx sdk.Context, packet channeltypes.Packet, relayer sdk.AccAddress, ) error }
IBCModule defines an interface that implements all the callbacks that modules must define as specified in ICS-26
type ICS4Wrapper ¶
type ICS4Wrapper interface { SendPacket( ctx sdk.Context, chanCap *capabilitytypes.Capability, packet exported.PacketI, ) error WriteAcknowledgement( ctx sdk.Context, chanCap *capabilitytypes.Capability, packet exported.PacketI, ack exported.Acknowledgement, ) error }
ICS4Wrapper implements the ICS4 interfaces that IBC applications use to send packets and acknolwedgements.
type Middleware ¶
type Middleware interface { IBCModule ICS4Wrapper }
Middleware must implement IBCModule to wrap communication from core IBC to underlying application and ICS4Wrapper to wrap communication from underlying application to core IBC.
type QueryAppVersionRequest ¶
type QueryAppVersionRequest struct { // port unique identifier PortId string `protobuf:"bytes,1,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty"` // connection unique identifier ConnectionId string `protobuf:"bytes,2,opt,name=connection_id,json=connectionId,proto3" json:"connection_id,omitempty"` // whether the channel is ordered or unordered Ordering types.Order `protobuf:"varint,3,opt,name=ordering,proto3,enum=ibc.core.channel.v1.Order" json:"ordering,omitempty"` // counterparty channel end Counterparty *types.Counterparty `protobuf:"bytes,4,opt,name=counterparty,proto3" json:"counterparty,omitempty"` // proposed version ProposedVersion string `protobuf:"bytes,5,opt,name=proposed_version,json=proposedVersion,proto3" json:"proposed_version,omitempty"` }
QueryAppVersionRequest is the request type for the Query/AppVersion RPC method
func (*QueryAppVersionRequest) Descriptor ¶
func (*QueryAppVersionRequest) Descriptor() ([]byte, []int)
func (*QueryAppVersionRequest) GetConnectionId ¶
func (m *QueryAppVersionRequest) GetConnectionId() string
func (*QueryAppVersionRequest) GetCounterparty ¶
func (m *QueryAppVersionRequest) GetCounterparty() *types.Counterparty
func (*QueryAppVersionRequest) GetOrdering ¶
func (m *QueryAppVersionRequest) GetOrdering() types.Order
func (*QueryAppVersionRequest) GetPortId ¶
func (m *QueryAppVersionRequest) GetPortId() string
func (*QueryAppVersionRequest) GetProposedVersion ¶
func (m *QueryAppVersionRequest) GetProposedVersion() string
func (*QueryAppVersionRequest) Marshal ¶
func (m *QueryAppVersionRequest) Marshal() (dAtA []byte, err error)
func (*QueryAppVersionRequest) MarshalTo ¶
func (m *QueryAppVersionRequest) MarshalTo(dAtA []byte) (int, error)
func (*QueryAppVersionRequest) MarshalToSizedBuffer ¶
func (m *QueryAppVersionRequest) MarshalToSizedBuffer(dAtA []byte) (int, error)
func (*QueryAppVersionRequest) ProtoMessage ¶
func (*QueryAppVersionRequest) ProtoMessage()
func (*QueryAppVersionRequest) Reset ¶
func (m *QueryAppVersionRequest) Reset()
func (*QueryAppVersionRequest) Size ¶
func (m *QueryAppVersionRequest) Size() (n int)
func (*QueryAppVersionRequest) String ¶
func (m *QueryAppVersionRequest) String() string
func (*QueryAppVersionRequest) Unmarshal ¶
func (m *QueryAppVersionRequest) Unmarshal(dAtA []byte) error
func (*QueryAppVersionRequest) XXX_DiscardUnknown ¶
func (m *QueryAppVersionRequest) XXX_DiscardUnknown()
func (*QueryAppVersionRequest) XXX_Marshal ¶
func (m *QueryAppVersionRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*QueryAppVersionRequest) XXX_Merge ¶
func (m *QueryAppVersionRequest) XXX_Merge(src proto.Message)
func (*QueryAppVersionRequest) XXX_Size ¶
func (m *QueryAppVersionRequest) XXX_Size() int
func (*QueryAppVersionRequest) XXX_Unmarshal ¶
func (m *QueryAppVersionRequest) XXX_Unmarshal(b []byte) error
type QueryAppVersionResponse ¶
type QueryAppVersionResponse struct { // port id associated with the request identifiers PortId string `protobuf:"bytes,1,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty"` // supported app version Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` }
QueryAppVersionResponse is the response type for the Query/AppVersion RPC method.
func NewQueryAppVersionResponse ¶
func NewQueryAppVersionResponse(portID, version string) *QueryAppVersionResponse
NewQueryAppVersionResponse creates a new QueryAppVersionResponse instance
func (*QueryAppVersionResponse) Descriptor ¶
func (*QueryAppVersionResponse) Descriptor() ([]byte, []int)
func (*QueryAppVersionResponse) GetPortId ¶
func (m *QueryAppVersionResponse) GetPortId() string
func (*QueryAppVersionResponse) GetVersion ¶
func (m *QueryAppVersionResponse) GetVersion() string
func (*QueryAppVersionResponse) Marshal ¶
func (m *QueryAppVersionResponse) Marshal() (dAtA []byte, err error)
func (*QueryAppVersionResponse) MarshalTo ¶
func (m *QueryAppVersionResponse) MarshalTo(dAtA []byte) (int, error)
func (*QueryAppVersionResponse) MarshalToSizedBuffer ¶
func (m *QueryAppVersionResponse) MarshalToSizedBuffer(dAtA []byte) (int, error)
func (*QueryAppVersionResponse) ProtoMessage ¶
func (*QueryAppVersionResponse) ProtoMessage()
func (*QueryAppVersionResponse) Reset ¶
func (m *QueryAppVersionResponse) Reset()
func (*QueryAppVersionResponse) Size ¶
func (m *QueryAppVersionResponse) Size() (n int)
func (*QueryAppVersionResponse) String ¶
func (m *QueryAppVersionResponse) String() string
func (*QueryAppVersionResponse) Unmarshal ¶
func (m *QueryAppVersionResponse) Unmarshal(dAtA []byte) error
func (*QueryAppVersionResponse) XXX_DiscardUnknown ¶
func (m *QueryAppVersionResponse) XXX_DiscardUnknown()
func (*QueryAppVersionResponse) XXX_Marshal ¶
func (m *QueryAppVersionResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*QueryAppVersionResponse) XXX_Merge ¶
func (m *QueryAppVersionResponse) XXX_Merge(src proto.Message)
func (*QueryAppVersionResponse) XXX_Size ¶
func (m *QueryAppVersionResponse) XXX_Size() int
func (*QueryAppVersionResponse) XXX_Unmarshal ¶
func (m *QueryAppVersionResponse) XXX_Unmarshal(b []byte) error
type QueryClient ¶
type QueryClient interface { // AppVersion queries an IBC Port and determines the appropriate application version to be used AppVersion(ctx context.Context, in *QueryAppVersionRequest, opts ...grpc.CallOption) (*QueryAppVersionResponse, error) }
QueryClient is the client API for Query service.
For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
func NewQueryClient ¶
func NewQueryClient(cc grpc1.ClientConn) QueryClient
type QueryServer ¶
type QueryServer interface { // AppVersion queries an IBC Port and determines the appropriate application version to be used AppVersion(context.Context, *QueryAppVersionRequest) (*QueryAppVersionResponse, error) }
QueryServer is the server API for Query service.
type Router ¶
type Router struct {
// contains filtered or unexported fields
}
The router is a map from module name to the IBCModule which contains all the module-defined callbacks required by ICS-26
func (*Router) AddRoute ¶
AddRoute adds IBCModule for a given module name. It returns the Router so AddRoute calls can be linked. It will panic if the Router is sealed.
func (*Router) HasRoute ¶
HasRoute returns true if the Router has a module registered or false otherwise.
type UnimplementedQueryServer ¶
type UnimplementedQueryServer struct { }
UnimplementedQueryServer can be embedded to have forward compatible implementations.
func (*UnimplementedQueryServer) AppVersion ¶
func (*UnimplementedQueryServer) AppVersion(ctx context.Context, req *QueryAppVersionRequest) (*QueryAppVersionResponse, error)