Currently all the msg creation functions are defined on the Chain type. Initially this decision was made because I expected to have to query data during message construction. The architecture I've ended up with avoids this to allow for more flexibility in defining where proofs come from. We should redefine these functions as follows:
// Now
func (src *Chain) Msg*(dst *Chain, args...) sdk.Msg {}
// New
func (src PathEnd) Msg*(dst PathEnd, args...) sdk.Msg {}
Currently all the msg creation functions are defined on the
Chain
type. Initially this decision was made because I expected to have to query data during message construction. The architecture I've ended up with avoids this to allow for more flexibility in defining where proofs come from. We should redefine these functions as follows: