z3j_send_packet_filetest.gno
1.43 Kb · 50 lines
1// PKGPATH: gno.land/r/aib/main
2package main
3
4import (
5 "time"
6
7 tmtesting "gno.land/p/aib/ibc/lightclient/tendermint/testing"
8 "gno.land/p/aib/ibc/types"
9 "gno.land/r/aib/ibc/core"
10)
11
12// SendPacket fails multiple payloads
13func main(cur realm) {
14 var (
15 chainID = "chain-id-2"
16 clientState = tmtesting.NewClientState(chainID, types.NewHeight(2, 2))
17 apphash = tmtesting.Hash("apphash")
18 trustedValset = tmtesting.GenValset()
19 consensusState = tmtesting.GenConsensusState(time.Now(), apphash, trustedValset.Hash())
20 )
21 clientID := core.CreateClient(cross(cur), clientState, consensusState)
22 core.RegisterCounterparty(cross(cur), clientID, [][]byte{[]byte("iavlStoreKey"), []byte("prefix2")}, "07-tendermint-2")
23
24 // No app registration needed: the payload count is rejected by
25 // ValidateBasic, before any port is routed.
26 packet := types.MsgSendPacket{
27 SourceClient: clientID,
28 TimeoutTimestamp: uint64(time.Now().Add(time.Hour).Unix()),
29 Payloads: []types.Payload{
30 {
31 SourcePort: "app1",
32 DestinationPort: "destinationPort",
33 Encoding: "application/json",
34 Value: []byte("{}"),
35 Version: "v1",
36 },
37 {
38 SourcePort: "app2",
39 DestinationPort: "destinationPort",
40 Encoding: "application/json",
41 Value: []byte("{}"),
42 Version: "v1",
43 },
44 },
45 }
46 core.SendPacket(cross(cur), packet)
47}
48
49// Error:
50// payloads must contain exactly one payload