Add errors to IBC module
This commit is contained in:
parent
95a5a7c9a0
commit
6c9b62d461
|
@ -271,7 +271,8 @@ func TestQuizMsg(t *testing.T) {
|
||||||
func TestHandler(t *testing.T) {
|
func TestHandler(t *testing.T) {
|
||||||
bapp := newBasecoinApp()
|
bapp := newBasecoinApp()
|
||||||
|
|
||||||
chainid := "ibcchain"
|
sourceChain := "source-chain"
|
||||||
|
destChain := "dest-chain"
|
||||||
|
|
||||||
vals := []abci.Validator{}
|
vals := []abci.Validator{}
|
||||||
baseAcc := auth.BaseAccount{
|
baseAcc := auth.BaseAccount{
|
||||||
|
@ -298,8 +299,8 @@ func TestHandler(t *testing.T) {
|
||||||
SrcAddr: addr1,
|
SrcAddr: addr1,
|
||||||
DestAddr: addr1,
|
DestAddr: addr1,
|
||||||
Coins: coins,
|
Coins: coins,
|
||||||
SrcChain: chainid,
|
SrcChain: sourceChain,
|
||||||
DestChain: chainid,
|
DestChain: destChain,
|
||||||
}
|
}
|
||||||
|
|
||||||
transferMsg := ibc.IBCTransferMsg{
|
transferMsg := ibc.IBCTransferMsg{
|
||||||
|
|
|
@ -17,7 +17,7 @@ func (code CodeType) IsOK() bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
// ABCI Response Codes
|
// ABCI Response Codes
|
||||||
// Base SDK reserves 0 ~ 99.
|
// Base SDK reserves 0 - 99.
|
||||||
const (
|
const (
|
||||||
CodeOK CodeType = 0
|
CodeOK CodeType = 0
|
||||||
CodeInternal CodeType = 1
|
CodeInternal CodeType = 1
|
||||||
|
|
|
@ -8,13 +8,13 @@ import (
|
||||||
type CodeType = sdk.CodeType
|
type CodeType = sdk.CodeType
|
||||||
|
|
||||||
const (
|
const (
|
||||||
// Coin errors reserve 100 ~ 199.
|
// Coin errors reserve 100 - 199.
|
||||||
CodeInvalidInput CodeType = 101
|
CodeInvalidInput CodeType = 100
|
||||||
CodeInvalidOutput CodeType = 102
|
CodeInvalidOutput CodeType = 101
|
||||||
CodeInvalidAddress CodeType = 103
|
CodeInvalidAddress CodeType = 102
|
||||||
CodeUnknownAddress CodeType = 104
|
CodeUnknownAddress CodeType = 103
|
||||||
CodeInsufficientCoins CodeType = 105
|
CodeInsufficientCoins CodeType = 104
|
||||||
CodeInvalidCoins CodeType = 106
|
CodeInvalidCoins CodeType = 105
|
||||||
CodeUnknownRequest CodeType = sdk.CodeUnknownRequest
|
CodeUnknownRequest CodeType = sdk.CodeUnknownRequest
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -5,9 +5,43 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
CodeInvalidSequence sdk.CodeType = 201
|
// IBC errors reserve 200 - 299.
|
||||||
|
CodeInvalidSequence sdk.CodeType = 200
|
||||||
|
CodeIdenticalChains sdk.CodeType = 201
|
||||||
|
CodeUnknownRequest sdk.CodeType = sdk.CodeUnknownRequest
|
||||||
)
|
)
|
||||||
|
|
||||||
func ErrInvalidSequence() sdk.Error {
|
func codeToDefaultMsg(code sdk.CodeType) string {
|
||||||
return sdk.NewError(CodeInvalidSequence, "")
|
switch code {
|
||||||
|
case CodeInvalidSequence:
|
||||||
|
return "Invalid IBC packet sequence"
|
||||||
|
case CodeIdenticalChains:
|
||||||
|
return "Source and destination chain cannot be identical"
|
||||||
|
default:
|
||||||
|
return sdk.CodeToDefaultMsg(code)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func ErrInvalidSequence() sdk.Error {
|
||||||
|
return newError(CodeInvalidSequence, "")
|
||||||
|
}
|
||||||
|
|
||||||
|
func ErrIdenticalChains() sdk.Error {
|
||||||
|
return newError(CodeIdenticalChains, "")
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------------------------
|
||||||
|
// Helpers
|
||||||
|
|
||||||
|
func newError(code sdk.CodeType, msg string) sdk.Error {
|
||||||
|
msg = msgOrDefaultMsg(msg, code)
|
||||||
|
return sdk.NewError(code, msg)
|
||||||
|
}
|
||||||
|
|
||||||
|
func msgOrDefaultMsg(msg string, code sdk.CodeType) string {
|
||||||
|
if msg != "" {
|
||||||
|
return msg
|
||||||
|
} else {
|
||||||
|
return codeToDefaultMsg(code)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,36 +37,11 @@ func NewIBCPacket(srcAddr sdk.Address, destAddr sdk.Address, coins sdk.Coins,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func makeCodec() *wire.Codec { // basecoin/app.MakeCodec()
|
func (ibcp IBCPacket) ValidateBasic() sdk.Error {
|
||||||
const (
|
if ibcp.SrcChain == ibcp.DestChain {
|
||||||
msgTypeSend = 0x1
|
return ErrIdenticalChains().Trace("")
|
||||||
msgTypeIssue = 0x2
|
}
|
||||||
msgTypeQuiz = 0x3
|
return nil
|
||||||
msgTypeSetTrend = 0x4
|
|
||||||
msgTypeIBCTransfer = 0x5
|
|
||||||
msgTypeIBCReceive = 0x6
|
|
||||||
)
|
|
||||||
|
|
||||||
var _ = oldwire.RegisterInterface(
|
|
||||||
struct{ sdk.Msg }{},
|
|
||||||
oldwire.ConcreteType{bank.SendMsg{}, msgTypeSend},
|
|
||||||
oldwire.ConcreteType{bank.IssueMsg{}, msgTypeIssue},
|
|
||||||
oldwire.ConcreteType{cool.QuizMsg{}, msgTypeQuiz},
|
|
||||||
oldwire.ConcreteType{cool.SetTrendMsg{}, msgTypeSetTrend},
|
|
||||||
oldwire.ConcreteType{IBCTransferMsg{}, msgTypeIBCTransfer},
|
|
||||||
oldwire.ConcreteType{IBCReceiveMsg{}, msgTypeIBCReceive},
|
|
||||||
)
|
|
||||||
|
|
||||||
const accTypeApp = 0x1
|
|
||||||
var _ = oldwire.RegisterInterface(
|
|
||||||
struct{ sdk.Account }{},
|
|
||||||
oldwire.ConcreteType{&types.AppAccount{}, accTypeApp},
|
|
||||||
)
|
|
||||||
|
|
||||||
cdc := wire.NewCodec()
|
|
||||||
|
|
||||||
return cdc
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------
|
// ----------------------------------
|
||||||
|
@ -95,7 +70,7 @@ func (msg IBCTransferMsg) GetSignBytes() []byte {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (msg IBCTransferMsg) ValidateBasic() sdk.Error {
|
func (msg IBCTransferMsg) ValidateBasic() sdk.Error {
|
||||||
return nil
|
return msg.IBCPacket.ValidateBasic()
|
||||||
}
|
}
|
||||||
|
|
||||||
// x/bank/tx.go SendMsg.GetSigners()
|
// x/bank/tx.go SendMsg.GetSigners()
|
||||||
|
@ -132,7 +107,7 @@ func (msg IBCReceiveMsg) GetSignBytes() []byte {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (msg IBCReceiveMsg) ValidateBasic() sdk.Error {
|
func (msg IBCReceiveMsg) ValidateBasic() sdk.Error {
|
||||||
return nil
|
return msg.IBCPacket.ValidateBasic()
|
||||||
}
|
}
|
||||||
|
|
||||||
// x/bank/tx.go SendMsg.GetSigners()
|
// x/bank/tx.go SendMsg.GetSigners()
|
||||||
|
@ -146,3 +121,33 @@ func (msg IBCReceiveMsg) GetSigners() []sdk.Address {
|
||||||
func newCodec() *wire.Codec {
|
func newCodec() *wire.Codec {
|
||||||
return wire.NewCodec()
|
return wire.NewCodec()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func makeCodec() *wire.Codec { // basecoin/app.MakeCodec()
|
||||||
|
const (
|
||||||
|
msgTypeSend = 0x1
|
||||||
|
msgTypeIssue = 0x2
|
||||||
|
msgTypeQuiz = 0x3
|
||||||
|
msgTypeSetTrend = 0x4
|
||||||
|
msgTypeIBCTransfer = 0x5
|
||||||
|
msgTypeIBCReceive = 0x6
|
||||||
|
)
|
||||||
|
|
||||||
|
var _ = oldwire.RegisterInterface(
|
||||||
|
struct{ sdk.Msg }{},
|
||||||
|
oldwire.ConcreteType{bank.SendMsg{}, msgTypeSend},
|
||||||
|
oldwire.ConcreteType{bank.IssueMsg{}, msgTypeIssue},
|
||||||
|
oldwire.ConcreteType{cool.QuizMsg{}, msgTypeQuiz},
|
||||||
|
oldwire.ConcreteType{cool.SetTrendMsg{}, msgTypeSetTrend},
|
||||||
|
oldwire.ConcreteType{IBCTransferMsg{}, msgTypeIBCTransfer},
|
||||||
|
oldwire.ConcreteType{IBCReceiveMsg{}, msgTypeIBCReceive},
|
||||||
|
)
|
||||||
|
|
||||||
|
const accTypeApp = 0x1
|
||||||
|
var _ = oldwire.RegisterInterface(
|
||||||
|
struct{ sdk.Account }{},
|
||||||
|
oldwire.ConcreteType{&types.AppAccount{}, accTypeApp},
|
||||||
|
)
|
||||||
|
|
||||||
|
cdc := wire.NewCodec()
|
||||||
|
return cdc
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue