apply comments

This commit is contained in:
mossid 2018-03-20 00:22:49 +01:00
parent 3105f7e18e
commit 2c0b172653
5 changed files with 30 additions and 27 deletions

View File

@ -23,6 +23,7 @@ type Payload interface {
}
type TransferPayload struct {
SrcAddr sdk.Address
DestAddr sdk.Address
Coins sdk.Coins
}

View File

@ -56,7 +56,7 @@ func NewBasecoinApp(logger log.Logger, db dbm.DB) *BasecoinApp {
// add handlers
coinKeeper := bank.NewCoinKeeper(app.accountMapper)
coolMapper := cool.NewMapper(app.capKeyMainStore)
ibcMapper := ibc.NewIBCMapper(app.capKeyIBCStore)
ibcMapper := ibc.NewIBCMapper(app.cdc, app.capKeyIBCStore)
app.Router().
AddRoute("bank", bank.NewHandler(coinKeeper)).
AddRoute("cool", cool.NewHandler(coinKeeper, coolMapper)).

View File

@ -74,7 +74,7 @@ func makeCodec() *wire.Codec {
}
func TestIBC(t *testing.T) {
var _ = makeCodec()
cdc := makeCodec()
key := sdk.NewKVStoreKey("ibc")
ctx := defaultContext(key)
@ -92,7 +92,7 @@ func TestIBC(t *testing.T) {
assert.Nil(t, err)
assert.Equal(t, mycoins, coins)
ibcm := NewIBCMapper(key)
ibcm := NewIBCMapper(cdc, key)
h := NewHandler(ibcm, ck)
packet := IBCPacket{
SrcAddr: src,

View File

@ -14,10 +14,8 @@ type IBCMapper struct {
// XXX: The IBCMapper should not take a CoinKeeper. Rather have the CoinKeeper
// take an IBCMapper.
func NewIBCMapper(key sdk.StoreKey) IBCMapper {
func NewIBCMapper(cdc *wire.Codec, key sdk.StoreKey) IBCMapper {
// XXX: How are these codecs supposed to work?
cdc := wire.NewCodec()
return IBCMapper{
key: key,
cdc: cdc,
@ -59,25 +57,34 @@ func (ibcm IBCMapper) ReceiveIBCPacket(ctx sdk.Context, packet IBCPacket) sdk.Er
// --------------------------
// Functions for accessing the underlying KVStore.
func marshalBinaryPanic(cdc *wire.Codec, value interface{}) []byte {
res, err := cdc.MarshalBinary(value)
if err != nil {
panic(err)
}
return res
}
func unmarshalBinaryPanic(cdc *wire.Codec, bz []byte, ptr interface{}) {
err := cdc.UnmarshalBinary(bz, ptr)
if err != nil {
panic(err)
}
}
func (ibcm IBCMapper) GetIngressSequence(ctx sdk.Context, srcChain string) int64 {
store := ctx.KVStore(ibcm.key)
key := IngressSequenceKey(srcChain)
bz := store.Get(key)
if bz == nil {
zero, err := ibcm.cdc.MarshalBinary(int64(0))
if err != nil {
panic(err)
}
zero := marshalBinaryPanic(ibcm.cdc, int64(0))
store.Set(key, zero)
return 0
}
var res int64
err := ibcm.cdc.UnmarshalBinary(bz, &res)
if err != nil {
panic(err)
}
unmarshalBinaryPanic(ibcm.cdc, bz, &res)
return res
}
@ -85,10 +92,7 @@ func (ibcm IBCMapper) SetIngressSequence(ctx sdk.Context, srcChain string, seque
store := ctx.KVStore(ibcm.key)
key := IngressSequenceKey(srcChain)
bz, err := ibcm.cdc.MarshalBinary(sequence)
if err != nil {
panic(err)
}
bz := marshalBinaryPanic(ibcm.cdc, sequence)
store.Set(key, bz)
}
@ -96,17 +100,12 @@ func (ibcm IBCMapper) SetIngressSequence(ctx sdk.Context, srcChain string, seque
func (ibcm IBCMapper) getEgressLength(store sdk.KVStore, destChain string) int64 {
bz := store.Get(EgressLengthKey(destChain))
if bz == nil {
zero, err := ibcm.cdc.MarshalBinary(int64(0))
if err != nil {
panic(err)
}
zero := marshalBinaryPanic(ibcm.cdc, int64(0))
store.Set(EgressLengthKey(destChain), zero)
return 0
}
var res int64
if err := ibcm.cdc.UnmarshalBinary(bz, &res); err != nil {
panic(err)
}
unmarshalBinaryPanic(ibcm.cdc, bz, &res)
return res
}

View File

@ -35,6 +35,9 @@ func (ibcp IBCPacket) ValidateBasic() sdk.Error {
if ibcp.SrcChain == ibcp.DestChain {
return ErrIdenticalChains().Trace("")
}
if !ibcp.Coins.IsValid() {
return sdk.ErrInvalidCoins("")
}
return nil
}
@ -56,7 +59,7 @@ func (msg IBCTransferMsg) Get(key interface{}) interface{} {
func (msg IBCTransferMsg) GetSignBytes() []byte {
cdc := wire.NewCodec()
bz, err := cdc.MarshalBinary(msg.IBCPacket)
bz, err := cdc.MarshalBinary(msg)
if err != nil {
panic(err)
}
@ -93,7 +96,7 @@ func (msg IBCReceiveMsg) Get(key interface{}) interface{} {
func (msg IBCReceiveMsg) GetSignBytes() []byte {
cdc := wire.NewCodec()
bz, err := cdc.MarshalBinary(msg.IBCPacket)
bz, err := cdc.MarshalBinary(msg)
if err != nil {
panic(err)
}