Search Apps Documentation Source Content File Folder Download Copy Actions Download

z1e_on_send_packet_filetest.gno

1.43 Kb · 45 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
10	"gno.land/r/aib/ibc/apps/transfer"
11	"gno.land/r/aib/ibc/core"
12)
13
14// OnSendPacket: sender and signer mismatch
15func main(cur realm) {
16	var (
17		chainID        = "chain-id-2"
18		clientState    = tmtesting.NewClientState(chainID, types.NewHeight(2, 2))
19		apphash        = tmtesting.Hash("apphash")
20		trustedValset  = tmtesting.GenValset()
21		consensusState = tmtesting.GenConsensusState(time.Now(), apphash, trustedValset.Hash())
22	)
23	clientID := core.CreateClient(cross(cur), clientState, consensusState)
24	core.RegisterCounterparty(cross(cur), clientID, [][]byte{[]byte("iavlStoreKey"), []byte("prefix2")}, "07-tendermint-2")
25
26	payload := transfer.NewFungibleTokenPacketData("ugnot", "100", "g1user", "atone1user", "")
27	packet := types.MsgSendPacket{
28		SourceClient:     clientID,
29		TimeoutTimestamp: uint64(time.Now().Add(time.Hour).Unix()),
30		Payloads: []types.Payload{
31			{
32				SourcePort:      transfer.PortID,
33				DestinationPort: transfer.PortID,
34				Encoding:        transfer.EncodingProtobuf,
35				Value:           payload.ProtoMarshal(),
36				Version:         transfer.V1,
37			},
38		},
39	}
40
41	core.SendPacket(cross(cur), packet)
42}
43
44// Error:
45// send packet failed for payload #0 app "transfer": invalid FungibleTokenPacketData: sender g1user is different from signer g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm