Search Apps Documentation Source Content File Folder Download Copy Actions Download State String Boolean Number Struct Map Slice Pointer Function Closure Reference Nil Package Type Interface Unknown

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