z1a_create_client_filetest.gno
6.08 Kb · 115 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// CreateClient success
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
22 clientID1 := core.CreateClient(cross(cur), clientState, consensusState)
23 println("CreateClient", clientID1)
24 clientID2 := core.CreateClient(cross(cur), clientState, consensusState)
25 println("CreateClient", clientID2)
26
27 // RegisterCounterparty on clientID1
28 core.RegisterCounterparty(cross(cur), clientID1, [][]byte{[]byte("iavlStoreKey"), []byte("prefix2")}, "07-tendermint-2")
29
30 println("\n----------- assert render clients")
31 println(core.Render("clients"))
32 println("\n----------- assert render clients/xxx")
33 println(core.Render("clients/xxx"))
34 println("\n----------- assert render clients/07-tendermint-1")
35 println(core.Render("clients/" + clientID1))
36 println("\n----------- assert render clients/07-tendermint-1/consensus_states")
37 println(core.Render("clients/" + clientID1 + "/consensus_states"))
38 println("\n----------- assert render clients/07-tendermint-1/consensus_states/2/2")
39 println(core.Render("clients/" + clientID1 + "/consensus_states/2/2"))
40 println("\n----------- assert render clients/07-tendermint-1/consensus_states/2/3")
41 println(core.Render("clients/" + clientID1 + "/consensus_states/2/3"))
42 println("\n----------- assert render clients/07-tendermint-1/consensus_states/xxx/yyy")
43 println(core.Render("clients/" + clientID1 + "/consensus_states/xxx/yyy"))
44 println("\n----------- assert render clients/xxx/consensus_states/2/3")
45 println(core.Render("clients/xxx/consensus_states/2/3"))
46}
47
48// Output:
49// CreateClient 07-tendermint-1
50// CreateClient 07-tendermint-2
51//
52// ----------- assert render clients
53// {"items":[{"id":"07-tendermint-1","type":"07-tendermint","creator":"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm","status":"Active","counterparty_client_id":"07-tendermint-2","counterparty_merke_prefix":["iavlStoreKey","prefix2"],"client_state":{"chain_id":"chain-id-2","latest_height":{"revision_number":2,"revision_height":2},"frozen_height":{"revision_number":0,"revision_height":0},"trust_level":{"numerator":1,"denominator":3},"trusting_period":3600,"unbonding_period":10800,"max_clock_drift":3600,"upgrade_path":[]},"last_consensus_state":{"height":{"revision_number":2,"revision_height":2},"timestamp":1234567890,"root":"EGkBgr/gwNYq9XkPLS+UWQksRtpw/yCAIRjy3KjUlI8=","next_validators_hash":"/9gNNzK6IBcVWTwBsskTrrKk/SQzd29h1wP8LYFJbKo="}},{"id":"07-tendermint-2","type":"07-tendermint","creator":"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm","status":"Active","counterparty_client_id":"","counterparty_merke_prefix":[],"client_state":{"chain_id":"chain-id-2","latest_height":{"revision_number":2,"revision_height":2},"frozen_height":{"revision_number":0,"revision_height":0},"trust_level":{"numerator":1,"denominator":3},"trusting_period":3600,"unbonding_period":10800,"max_clock_drift":3600,"upgrade_path":[]},"last_consensus_state":{"height":{"revision_number":2,"revision_height":2},"timestamp":1234567890,"root":"EGkBgr/gwNYq9XkPLS+UWQksRtpw/yCAIRjy3KjUlI8=","next_validators_hash":"/9gNNzK6IBcVWTwBsskTrrKk/SQzd29h1wP8LYFJbKo="}}],"page":1,"total":1}
54//
55// ----------- assert render clients/xxx
56// {"error":"client xxx not found"}
57//
58// ----------- assert render clients/07-tendermint-1
59// {"id":"07-tendermint-1","type":"07-tendermint","creator":"g1wymu47drhr0kuq2098m792lytgtj2nyx77yrsm","status":"Active","counterparty_client_id":"07-tendermint-2","counterparty_merke_prefix":["iavlStoreKey","prefix2"],"client_state":{"chain_id":"chain-id-2","latest_height":{"revision_number":2,"revision_height":2},"frozen_height":{"revision_number":0,"revision_height":0},"trust_level":{"numerator":1,"denominator":3},"trusting_period":3600,"unbonding_period":10800,"max_clock_drift":3600,"upgrade_path":[]},"last_consensus_state":{"height":{"revision_number":2,"revision_height":2},"timestamp":1234567890,"root":"EGkBgr/gwNYq9XkPLS+UWQksRtpw/yCAIRjy3KjUlI8=","next_validators_hash":"/9gNNzK6IBcVWTwBsskTrrKk/SQzd29h1wP8LYFJbKo="}}
60//
61// ----------- assert render clients/07-tendermint-1/consensus_states
62// {"items":[{"height":{"revision_number":2,"revision_height":2},"timestamp":1234567890,"root":"EGkBgr/gwNYq9XkPLS+UWQksRtpw/yCAIRjy3KjUlI8=","next_validators_hash":"/9gNNzK6IBcVWTwBsskTrrKk/SQzd29h1wP8LYFJbKo="}],"page":1,"total":1}
63//
64// ----------- assert render clients/07-tendermint-1/consensus_states/2/2
65// {"height":{"revision_number":2,"revision_height":2},"timestamp":1234567890,"root":"EGkBgr/gwNYq9XkPLS+UWQksRtpw/yCAIRjy3KjUlI8=","next_validators_hash":"/9gNNzK6IBcVWTwBsskTrrKk/SQzd29h1wP8LYFJbKo="}
66//
67// ----------- assert render clients/07-tendermint-1/consensus_states/2/3
68// {"error":"consensus state not found for height 2/3"}
69//
70// ----------- assert render clients/07-tendermint-1/consensus_states/xxx/yyy
71// {"error":"cant parse height xxx/yyy: invalid revision number. parse err: strconv.ParseUint: parsing \"xxx\": invalid syntax"}
72//
73// ----------- assert render clients/xxx/consensus_states/2/3
74// {"error":"client xxx not found"}
75
76// Events:
77// [
78// {
79// "type": "create_client",
80// "attrs": [
81// {
82// "key": "client_id",
83// "value": "07-tendermint-1"
84// },
85// {
86// "key": "client_type",
87// "value": "07-tendermint"
88// },
89// {
90// "key": "consensus_heights",
91// "value": "2/2"
92// }
93// ],
94// "pkg_path": "gno.land/r/aib/ibc/core"
95// },
96// {
97// "type": "create_client",
98// "attrs": [
99// {
100// "key": "client_id",
101// "value": "07-tendermint-2"
102// },
103// {
104// "key": "client_type",
105// "value": "07-tendermint"
106// },
107// {
108// "key": "consensus_heights",
109// "value": "2/2"
110// }
111// ],
112// "pkg_path": "gno.land/r/aib/ibc/core"
113// }
114// ]
115