Search Apps Documentation Source Content File Folder Download Copy Actions Download

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