When a client expires, it looks like this:
rly q clients-expiration mainnet-kujira-crescent
client 07-tendermint-105 (kaiyo-1) is already expired (12 Jul 23 12:50 UTC)
client 07-tendermint-78 (crescent-1) expires in 264h7m9s (25 Jul 23 16:12 UTC)
This means the client watching crescent on Kujira kaiyo-1 is expired. You need to create a new one to be used as a placeholder - the substitute for the expired client.
rly tx client kujira crescent mainnet-kujira-crescent -d --override
2023-07-14T17:42:56.016002Z info Client Created {"src_chain_id": "kaiyo-1", "src_client_id": "07-tendermint-145", "dst_chain_id": "crescent-1"}
Verify the client is created by querying all clients on Kujira. Look for the new client-id and ensure it has the correct counterparty chain-id.
rly q clients kujira | jq . > kuji-clients.json
grep -a4 '07-tendermint-145' kuji-clients.json
{
"client_id": "07-tendermint-145",
"client_state": {
"@type": "/ibc.lightclients.tendermint.v1.ClientState",
"chain_id": "crescent-1",
Craft a Kujira proposal. For the subject, use the expired client, and for the substitute, use the new client.
Subject client ID: 07-tendermint-105
Substitute client ID: 07-tendermint-145
File: kujira-unexpire-client-07-tendermint-105-unsigned.json
{
"body": {
"messages": [
{
"@type": "/cosmos.gov.v1beta1.MsgSubmitProposal",
"content": {
"@type": "/ibc.core.client.v1.ClientUpdateProposal",
"title": "swap_kujira_kaiyo_client",
"description": "On 12 Jul 23 12:50 UTC, the Kujira client on crescent expired due to a monitoring issue and only one relayer, Defiant Labs, was participating in this path. Both of these issues have been resolved. The monitoring script has been updated and other relayers have committed to participating in this path.",
"subject_client_id": "07-tendermint-105",
"substitute_client_id": "07-tendermint-145"
},
"initial_deposit": [],
"proposer": "kujira1x9fxqdkg4rumkzrck8t3qnhm30jgfsx9ntcpas"
}
],
"memo": "",
"timeout_height": "0",
"extension_options": [],
"non_critical_extension_options": []
},
"auth_info": {
"signer_infos": [],
"fee": {
"amount": [{"denom": "ukuji", "amount": "476"}],
"gas_limit": "400000",
"payer": "",
"granter": ""
}
},
"signatures": []
}
Note: The fee amount needs to be exactly the
gas_limit
*minimum-gas-prices
(as defined on the RPC node you broadcast the TX to). For example, if thegas_limit
is400000
and theminimum-gas-prices
is0.119ukuji
, then the fee amount needs to be exactly476
.
Sign the transaction:
kujirad tx sign kujira-unexpire-client-07-tendermint-105-unsigned.json --from relayer --chain-id kaiyo-1
Broadcast the TX:
kujirad tx broadcast kujira-unexpire-client-07-tendermint-105-signed.json
{"height":"0","txhash":"09B01F76AD6B5182E17D5B8AA96476F6D381A8A2FBBBEF3D2491B036C7159A41","codespace":"","code":0,"data":"","raw_log":"[]","logs":[],"info":"","gas_wanted":"0","gas_used":"0","tx":null,"timestamp":"","events":[]}
Verify the hash on Mintscan was successful: Mintscan Link
Verify a proposal was created: Proposal Link
Lastly, let the Kujira community know to vote on the proposal.