@@ -98,10 +98,10 @@ func TestIBCHandshake(t *testing.T) {
9898 // instantiate
9999 env := api .MockEnv ()
100100 info := api .MockInfo ("creator" , nil )
101- msg := IBCInstantiateMsg {
101+ init_msg := IBCInstantiateMsg {
102102 ReflectCodeID : REFLECT_ID ,
103103 }
104- ires , _ , err := vm .Instantiate (checksum , env , info , toBytes (t , msg ), store , * goapi , querier , gasMeter1 , TESTING_GAS_LIMIT , deserCost )
104+ ires , _ , err := vm .Instantiate (checksum , env , info , toBytes (t , init_msg ), store , * goapi , querier , gasMeter1 , TESTING_GAS_LIMIT , deserCost )
105105 require .NoError (t , err )
106106 require .Equal (t , 0 , len (ires .Messages ))
107107
@@ -110,25 +110,34 @@ func TestIBCHandshake(t *testing.T) {
110110 store .SetGasMeter (gasMeter2 )
111111 env = api .MockEnv ()
112112 // fails on bad version
113- channel := api .MockIBCChannel (CHANNEL_ID , types .Ordered , "random-garbage" )
114- _ , err = vm .IBCChannelOpen (checksum , env , channel , store , * goapi , querier , gasMeter2 , TESTING_GAS_LIMIT , deserCost )
113+ openMsg := api .MockIBCChannelOpenInit (CHANNEL_ID , types .Ordered , "random-garbage" )
114+ _ , err = vm .IBCChannelOpen (checksum , env , openMsg , store , * goapi , querier , gasMeter2 , TESTING_GAS_LIMIT , deserCost )
115115 require .Error (t , err )
116116 // passes on good version
117- channel = api .MockIBCChannel (CHANNEL_ID , types .Ordered , IBC_VERSION )
118- channel .CounterpartyVersion = ""
119- _ , err = vm .IBCChannelOpen (checksum , env , channel , store , * goapi , querier , gasMeter2 , TESTING_GAS_LIMIT , deserCost )
117+ openMsg = api .MockIBCChannelOpenInit (CHANNEL_ID , types .Ordered , IBC_VERSION )
118+ _ , err = vm .IBCChannelOpen (checksum , env , openMsg , store , * goapi , querier , gasMeter2 , TESTING_GAS_LIMIT , deserCost )
120119 require .NoError (t , err )
121120
122121 // channel connect
123122 gasMeter3 := api .NewMockGasMeter (TESTING_GAS_LIMIT )
124123 store .SetGasMeter (gasMeter3 )
125124 env = api .MockEnv ()
126125 // completes and dispatches message to create reflect contract
127- channel = api .MockIBCChannel (CHANNEL_ID , types .Ordered , IBC_VERSION )
128- res , _ , err := vm .IBCChannelConnect (checksum , env , channel , store , * goapi , querier , gasMeter2 , TESTING_GAS_LIMIT , deserCost )
126+ connectMsg : = api .MockIBCChannelConnectAck (CHANNEL_ID , types .Ordered , IBC_VERSION )
127+ res , _ , err := vm .IBCChannelConnect (checksum , env , connectMsg , store , * goapi , querier , gasMeter2 , TESTING_GAS_LIMIT , deserCost )
129128 require .NoError (t , err )
130129 require .Equal (t , 1 , len (res .Messages ))
131130
131+ // check for the expected custom event
132+ expected_events := []types.Event {types.Event {
133+ Type : "ibc" ,
134+ Attributes : []types.EventAttribute {types.EventAttribute {
135+ Key : "channel" ,
136+ Value : "connect" ,
137+ }},
138+ }}
139+ require .Equal (t , expected_events , res .Events )
140+
132141 // make sure it read the balance properly and we got 250 atoms
133142 dispatch := res .Messages [0 ].Msg
134143 require .NotNil (t , dispatch .Wasm , "%#v" , dispatch )
@@ -169,17 +178,16 @@ func TestIBCPacketDispatch(t *testing.T) {
169178 // channel open
170179 gasMeter2 := api .NewMockGasMeter (TESTING_GAS_LIMIT )
171180 store .SetGasMeter (gasMeter2 )
172- channel := api .MockIBCChannel (CHANNEL_ID , types .Ordered , IBC_VERSION )
173- channel .CounterpartyVersion = ""
174- _ , err = vm .IBCChannelOpen (checksum , env , channel , store , * goapi , querier , gasMeter2 , TESTING_GAS_LIMIT , deserCost )
181+ openMsg := api .MockIBCChannelOpenInit (CHANNEL_ID , types .Ordered , IBC_VERSION )
182+ _ , err = vm .IBCChannelOpen (checksum , env , openMsg , store , * goapi , querier , gasMeter2 , TESTING_GAS_LIMIT , deserCost )
175183 require .NoError (t , err )
176184
177185 // channel connect
178186 gasMeter3 := api .NewMockGasMeter (TESTING_GAS_LIMIT )
179187 store .SetGasMeter (gasMeter3 )
180188 // completes and dispatches message to create reflect contract
181- channel = api .MockIBCChannel (CHANNEL_ID , types .Ordered , IBC_VERSION )
182- res , _ , err := vm .IBCChannelConnect (checksum , env , channel , store , * goapi , querier , gasMeter3 , TESTING_GAS_LIMIT , deserCost )
189+ connectMsg : = api .MockIBCChannelConnectAck (CHANNEL_ID , types .Ordered , IBC_VERSION )
190+ res , _ , err := vm .IBCChannelConnect (checksum , env , connectMsg , store , * goapi , querier , gasMeter3 , TESTING_GAS_LIMIT , deserCost )
183191 require .NoError (t , err )
184192 require .Equal (t , 1 , len (res .Messages ))
185193 id := res .Messages [0 ].ID
@@ -236,8 +244,8 @@ func TestIBCPacketDispatch(t *testing.T) {
236244 }},
237245 },
238246 }
239- packet := api .MockIBCPacket (CHANNEL_ID , toBytes (t , ibcMsg ))
240- pres , _ , err := vm .IBCPacketReceive (checksum , env , packet , store , * goapi , querier , gasMeter5 , TESTING_GAS_LIMIT , deserCost )
247+ msg := api .MockIBCPacketReceive (CHANNEL_ID , toBytes (t , ibcMsg ))
248+ pres , _ , err := vm .IBCPacketReceive (checksum , env , msg , store , * goapi , querier , gasMeter5 , TESTING_GAS_LIMIT , deserCost )
241249 require .NoError (t , err )
242250
243251 // assert app-level success
@@ -246,13 +254,23 @@ func TestIBCPacketDispatch(t *testing.T) {
246254 require .Empty (t , ack .Err )
247255
248256 // error on message from another channel
249- packet2 := api .MockIBCPacket ("no-such-channel" , toBytes (t , ibcMsg ))
250- pres2 , _ , err := vm .IBCPacketReceive (checksum , env , packet2 , store , * goapi , querier , gasMeter5 , TESTING_GAS_LIMIT , deserCost )
257+ msg2 := api .MockIBCPacketReceive ("no-such-channel" , toBytes (t , ibcMsg ))
258+ pres2 , _ , err := vm .IBCPacketReceive (checksum , env , msg2 , store , * goapi , querier , gasMeter5 , TESTING_GAS_LIMIT , deserCost )
251259 require .NoError (t , err )
252260 // assert app-level failure
253261 var ack2 AcknowledgeDispatch
254262 err = json .Unmarshal (pres2 .Acknowledgement , & ack2 )
255263 require .Equal (t , "invalid packet: cosmwasm_std::addresses::Addr not found" , ack2 .Err )
264+
265+ // check for the expected custom event
266+ expected_events := []types.Event {types.Event {
267+ Type : "ibc" ,
268+ Attributes : []types.EventAttribute {types.EventAttribute {
269+ Key : "packet" ,
270+ Value : "receive" ,
271+ }},
272+ }}
273+ require .Equal (t , expected_events , pres2 .Events )
256274}
257275
258276func TestAnalyzeCode (t * testing.T ) {
0 commit comments