Notes from creating and testing ICA on testnets.
- Start a Cosmos Hub Testnet node and sync it to the tip.
- Start a Arabica node and sync it to the tip.
- Install and configure Hermes to relay between these two chains.
- Configure Hermes keys with an account on both chains. Get both accounts funded via Discord wallets.
-
Create a connection between the chains
hermes create connection --a-chain arabica-11 --b-chain theta-testnet-00 // Output SUCCESS Connection { delay_period: 0ns, a_side: ConnectionSide { chain: BaseChainHandle { chain_id: ChainId { id: "arabica-11", version: 11, }, runtime_sender: Sender { .. }, }, client_id: ClientId( "07-tendermint-7", ), connection_id: Some( ConnectionId( "connection-3", ), ), }, b_side: ConnectionSide { chain: BaseChainHandle { chain_id: ChainId { id: "theta-testnet-001", version: 0, }, runtime_sender: Sender { .. }, }, client_id: ClientId( "07-tendermint-3737", ), connection_id: Some( ConnectionId( "connection-3788", ), ), }, }
-
Create an ICA
gaiad tx interchain-accounts controller register connection-3788 --from key-cosmos --chain-id theta-testnet-001 --fees 100000uatom --gas 2000000 --node tcp://localhost:27000 --version '{"version":"ics27-1","controller_connection_id":"connection-3788","host_connection_id":"connection-3","address":"cosmos1epqzuh6myrwrp4zr8zjamcye4nvkkg9xd8ywak","encoding":"proto3","tx_type":"sdk_multi_msg"}' --ordering ORDER_ORDERED
-
Send a msg send tx with cosmos addresses in to/from
cat msg-send.json // Output {"type":"TYPE_EXECUTE_TX","data":"eyJtZXNzYWdlcyI6W3siQHR5cGUiOiIvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kIiwiZnJvbV9hZGRyZXNzIjoiY29zbW9zMTVjY3NoaG1wMGdzeDI5cXBxcTZnNHptbHRubnZnbXl1OXVldWFkaDl5Mm5jNXpqMHN6bHM1Z3RkZHoiLCJ0b19hZGRyZXNzIjoiY29zbW9zMTBoOXN0YzV2Nm50Z2V5Z2Y1eGY5NDVuanFxNWgzMnI1M3VxdXZ3IiwiYW1vdW50IjpbeyJkZW5vbSI6InN0YWtlIiwiYW1vdW50IjoiMTAwMCJ9XX1dfQ==","memo":"memo"} gaiad tx interchain-accounts controller send-tx connection-3788 msg-send.json --from key-cosmos --chain-id theta-testnet-001 --fees 100000uatom --gas 2000000 --node tcp://localhost:27000
-
Query the Celestia address that got created
root@rootulp-arabica:~# gaiad query ica controller interchain-account cosmos1epqzuh6myrwrp4zr8zjamcye4nvkkg9xd8ywak connection-3788 --node tcp://localhost:27000 // Output address: celestia1xzsdn65hyljcmenlxyjmdmvghhd0w4ut27k3fx56jp2p69eh6srs8p3rss
-
Create a msg-send-celestia.json
root@rootulp-arabica:~# celestia-appd tx interchain-accounts host generate-packet-data '{ > "@type":"/cosmos.bank.v1beta1.MsgSend", > "from_address":"celestia1xzsdn65hyljcmenlxyjmdmvghhd0w4ut27k3fx56jp2p69eh6srs8p3rss", > "to_address":"celestia1dsmnzz8qvn343lxq2ew6739sd02gsspyesa4ju", > "amount": [ > { > "denom": "utia", > "amount": "1" > } > ] > }' --memo "rootulp" // Output {"type":"TYPE_EXECUTE_TX","data":"CqIBChwvY29zbW9zLmJhbmsudjFiZXRhMS5Nc2dTZW5kEoEBCkNjZWxlc3RpYTF4enNkbjY1aHlsamNtZW5seHlqbWRtdmdoaGQwdzR1dDI3azNmeDU2anAycDY5ZWg2c3JzOHAzcnNzEi9jZWxlc3RpYTFkc21ueno4cXZuMzQzbHhxMmV3NjczOXNkMDJnc3NweWVzYTRqdRoJCgR1dGlhEgEx","memo":"rootulp"}
-
Put the output from the previous command into msg-send-celestia.json
-
Send a msg send tx with Celestia addresses in to/from
gaiad tx interchain-accounts controller send-tx connection-3788 msg-send-celestia.json --from key-cosmos --chain-id theta-testnet-001 --fees 100000uatom --gas 2000000 --node tcp://localhost:27000
https://arabica.celenium.io/tx/277e956d00beb8dd9c93a190e27c9948492b5859442596ccdef203ce1d05c3d2?tab=messages https://arabica.celenium.io/tx/eafcae7c11c0293cea2c855ce4e11d99357ba93d87d9203e146ae0a2af8f67a6?tab=messages
Observe that no event is emitted for the 1utia transfer from celestia1xzsdn65hyljcmenlxyjmdmvghhd0w4ut27k3fx56jp2p69eh6srs8p3rss to celestia1dsmnzz8qvn343lxq2ew6739sd02gsspyesa4ju
-
Create a msg-pfb.json
celestia-appd tx interchain-accounts host generate-packet-data '{"@type":"/celestia.blob.v1.MsgPayForBlobs"}' --memo "rootulp" 2> msg-pfb.json cat msg-pfb.json {"type":"TYPE_EXECUTE_TX","data":"CiIKIC9jZWxlc3RpYS5ibG9iLnYxLk1zZ1BheUZvckJsb2Jz","memo":"rootulp"}
-
Send the msg-pfb
gaiad tx interchain-accounts controller send-tx connection-3788 msg-pfb.json --from key-cosmos --chain-id theta-testnet-001 --fees 100000uatom --gas 2000000 --node tcp://localhost:27000
Hermes errors with
2024-09-03T17:15:28.664756Z ERROR ThreadId(451) worker.batch{chain=theta-testnet-001}:supervisor.handle_batch{chain=theta-testnet-001}:supervisor.process_batch{chain=theta-testnet-001}:worker.packet.cmd{src_chain=theta-testnet-001 src_port=icacontroller-cosmos1epqzuh6myrwrp4zr8zjamcye4nvkkg9xd8ywak src_channel=channel-4311 dst_chain=arabica-11}: will retry: schedule execution encountered error: link failed with underlying error: gRPC call `send_tx_simulate` failed with status: status: Unknown, message: "recovered: empty address string is not allowed\nstack:\ngoroutine 14849751 [running]:\nruntime/debug.Stack()\n\t/root/go/pkg/mod/golang.org/[email protected]/src/runtime/debug/stack.go:24 +0x64\ngithub.com/cosmos/cosmos-sdk/baseapp.NewBaseApp.newDefaultRecoveryMiddleware.func1({0x1addea0, 0x402b3c43d0})\n\t/root/go/pkg/mod/github.com/celestiaorg/[email protected]/baseapp/recovery.go:71 +0x24\ngithub.com/cosmos/cosmos-sdk/baseapp.NewBaseApp.newDefaultRecoveryMiddleware.newRecoveryMiddleware.func2({0x1addea0?, 0x402b3c43d0?})\n\t/root/go/pkg/mod/github.com/celestiaorg/[email protected]/baseapp/recovery.go:39 +0x38\ngithub.com/cosmos/cosmos-sdk/baseapp.processRecovery({0x1addea0, 0x402b3c43d0}, 0x400419a5b8?)\n\t/root/go/pkg/mod/github.com/celestiaorg/[email protected]/baseapp/recovery.go:28 +0x38\ngithub.com/cosmos/cosmos-sdk/baseapp.processRecovery({0x1addea0, 0x402b3c43d0}, 0x400419a6b8?)\n\t/root/go/pkg/mod/github.com/celestiaorg/[email protected]/baseapp/recovery.go:33 +0x60\ngithub.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).runTx.func1()\n\t/root/go/pkg/mod/github.com/celestiaorg/[email protected]/baseapp/baseapp.go:719 +0xe0\npanic({0x1addea0?, 0x402b3c43d0?})\n\t/root/go/pkg/mod/golang.org/[email protected]/src/runtime/panic.go:770 +0x124\ngithub.com/celestiaorg/celestia-app/v2/x/blob/types.(*MsgPayForBlobs).GetSigners(0x402b3c43a0?)\n\t/root/celestia-app/x/blob/types/payforblob.go:206 +0xa0\ngithub.com/cosmos/ibc-go/v6/modules/apps/27-interchain-accounts/host/keeper.Keeper.authenticateTx({{0x2ab7fb0, 0x4000352bf0}, {0x2ae43e0, 0x4000352670}, {{0x2ae43e0, 0x4000352670}, 0x40007b2048, {0x2ab7fb0, 0x4000352b60}, {0x2ab7fd8, ...}, ...}, ...}, ...)\n\t/root/go/pkg/mod/github.com/cosmos/ibc-go/[email protected]/modules/apps/27-interchain-accounts/host/keeper/relay.go:100 +0x29c\ngithub.com/cosmos/ibc-go/v6/modules/apps/27-interchain-accounts/host/keeper.Keeper.executeTx({{0x2ab7fb0, 0x4000352bf0}, {0x2ae43e0, 0x4000352670}, {{0x2ae43e0, 0x4000352670}, 0x40007b2048, {0x2ab7fb0, 0x4000352b60}, {0x2ab7fd8, ...}, ...}, ...}, ...)\n\t/root/go/pkg/mod/github.com/cosmos/ibc-go/[email protected]/modules/apps/27-interchain-accounts/host/keeper/relay.go:52 +0x138\ngithub.com/cosmos/ibc-go/v6/modules/apps/27-interchain-accounts/host/keeper.Keeper.OnRecvPacket({{0x2ab7fb0, 0x4000352bf0}, {0x2ae43e0, 0x4000352670}, {{0x2ae43e0, 0x4000352670}, 0x40007b2048, {0x2ab7fb0, 0x4000352b60}, {0x2ab7fd8, ...}, ...}, ...}, ...)\n\t/root/go/pkg/mod/github.com/cosmos/ibc-go/[email protected]/modules/apps/27-interchain-accounts/host/keeper/relay.go:31 +0x168\ngithub.com/cosmos/ibc-go/v6/modules/apps/27-interchain-accounts/host.IBCModule.OnRecvPacket({{{0x2ab7fb0, 0x4000352bf0}, {0x2ae43e0, 0x4000352670}, {{0x2ae43e0, 0x4000352670}, 0x40007b2048, {0x2ab7fb0, 0x4000352b60}, {0x2ab7fd8, ...}, ...}, ...}}, ...)\n\t/root/go/pkg/mod/github.com/cosmos/ibc-go/[email protected]/modules/apps/27-interchain-accounts/host/ibc_module.go:112 +0x1d4\ngithub.com/cosmos/ibc-go/v6/modules/core/keeper.Keeper.RecvPacket({{0x0, 0x0}, {0x2ae43e0, 0x4000352670}, {{0x2ab7fb0, 0x4000352bd0}, {0x2ae43e0, 0x4000352670}, {{0x2ae43e0, 0x4000352670}, ...}, ...}, ...}, ...)\n\t/root/go/pkg/mod/github.com/cosmos/ibc-go/[email protected]/modules/core/keeper/msg_server.go:410 +0x51c\ngithub.com/cosmos/ibc-go/v6/modules/core/04-channel/types._Msg_RecvPacket_Handler.func1({0x2ad2c30?, 0x40202a5440?}, {0x1daa100?, 0x40222cc8f0?})\n\t/root/go/pkg/mod/github.com/cosmos/ibc-go/[email protected]/modules/core/04-channel/types/tx.pb.go:1322 +0xd0\ngithub.com/cosmos/cosmos-sdk/baseapp.(*MsgServiceRouter).RegisterService.func2.1({0x2ad2798, 0x4003c9e008}, {0x400419e418?, 0xc13234?}, 0x2a0?, 0x4040633e18)\n\t/root/go/pkg/mod/github.com/celestiaorg/[email protected]/baseapp/msg_service_router.go:118 +0x98\ngithub.com/cosmos/ibc-go/v6/modules/core/04-channel/types._Msg_RecvPacket_Handler({0x1e3c0a0, 0x4000126b40}, {0x2ad2798, 0x4003c9e008}, 0x2531ed8, 0x401aa530c0)\n\t/root/go/pkg/mod/github.com/cosmos/ibc-go/[email protected]/modules/core/04-channel/types/tx.pb.go:1324 +0x148\ngithub.com/cosmos/cosmos-sdk/baseapp.(*MsgServiceRouter).RegisterService.func2({{0x2ad26b8, 0x3f1b460}, {0x2ae4ae0, 0x402bb00fc0}, {{0xb, 0x2}, {0x40419e8916, 0xa}, 0x1c7d57, {0x2703aa7a, ...}, ...}, ...}, ...)\n\t/root/go/pkg/mod/github.com/celestiaorg/[email protected]/baseapp/msg_service_router.go:145 +0x254\ngithub.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).runMsgs(_, {{0x2ad26b8, 0x3f1b460}, {0x2ae4ae0, 0x402bb00fc0}, {{0xb, 0x2}, {0x40419e8916, 0xa}, 0x1c7d57, ...}, ...}, ...)\n\t/root/go/pkg/mod/github.com/celestiaorg/[email protected]/baseapp/baseapp.go:865 +0x20c\ngithub.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).runTx(0x4000126960, 0x2, {0x4002d7d000, 0x15cb, 0x1800})\n\t/root/go/pkg/mod/github.com/celestiaorg/[email protected]/baseapp/baseapp.go:805 +0x974\ngithub.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).Simulate(...)\n\t/root/go/pkg/mod/github.com/celestiaorg/[email protected]/baseapp/test_helpers.go:25\ngithub.com/cosmos/cosmos-sdk/x/auth/tx.txServer.Simulate({{{0x0, 0x0, 0x0}, {0x2af8238, 0x4001115520}, 0x0, {0x400000fe10, 0xa}, {0x2aebb60, 0x400078a390}, ...}, ...}, ...)\n\t/root/go/pkg/mod/github.com/celestiaorg/[email protected]/x/auth/tx/service.go:132 +0x10c\ngithub.com/cosmos/cosmos-sdk/types/tx._Service_Simulate_Handler.func1({0x2ad2c30?, 0x4014d67440?}, {0x1d90600?, 0x4005ec77c0?})\n\t/root/go/pkg/mod/github.com/celestiaorg/[email protected]/types/tx/service.pb.go:933 +0xd0\ngithub.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).RegisterGRPCServer.func1({0x2ad2c30, 0x400afac270}, {0x1d90600, 0x4005ec77c0}, 0x4005ec77e0?, 0x4005eedde8)\n\t/root/go/pkg/mod/github.com/celestiaorg/[email protected]/baseapp/grpcserver.go:68 +0x2d4\ngithub.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).RegisterGRPCServer.func2.ChainUnaryServer.1.1.1({0x2ad2c30?, 0x400afac270?}, {0x1d90600?, 0x4005ec77c0?})\n\t/root/go/pkg/mod/github.com/grpc-ecosystem/[email protected]/chain.go:25 +0x3c\ngithub.com/grpc-ecosystem/go-grpc-middleware/recovery.UnaryServerInterceptor.func1({0x2ad2c30?, 0x400afac270?}, {0x1d90600?, 0x4005ec77c0?}, 0x18?, 0x4005ec77e0?)\n\t/root/go/pkg/mod/github.com/grpc-ecosystem/[email protected]/recovery/interceptors.go:33 +0x98\ngithub.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).RegisterGRPCServer.func2.ChainUnaryServer.1.1.1({0x2ad2c30?, 0x400afac270?}, {0x1d90600?, 0x4005ec77c0?})\n\t/root/go/pkg/mod/github.com/grpc-ecosystem/[email protected]/chain.go:25 +0x3c\ngithub.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).RegisterGRPCServer.func2.ChainUnaryServer.1({0x2ad2c30, 0x400afac270}, {0x1d90600, 0x4005ec77c0}, 0x28?, 0x1c27e40?)\n\t/root/go/pkg/mod/github.com/grpc-ecosystem/[email protected]/chain.go:34 +0xb8\ngithub.com/cosmos/cosmos-sdk/types/tx._Service_Simulate_Handler({0x1d1c3a0, 0x4000602700}, {0x2ad2c30, 0x400afac270}, 0x4039eae000, 0x400afad5c0)\n\t/root/go/pkg/mod/github.com/celestiaorg/[email protected]/types/tx/service.pb.go:935 +0x148\ngithub.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).RegisterGRPCServer.func2({0x1d1c3a0, 0x4000602700}, {0x2ad2c30, 0x400afac270}, 0x4039eae000, 0x40034565a0?)\n\t/root/go/pkg/mod/github.com/celestiaorg/[email protected]/baseapp/grpcserver.go:82 +0x104\ngoogle.golang.org/grpc.(*Server).processUnaryRPC(0x400159c200, {0x2ad2c30, 0x4038e8f890}, {0x2ae25c0, 0x403f5a5380}, 0x40034565a0, 0x4005647b30, 0x4003b5ba00, 0x0)\n\t/root/go/pkg/mod/google.golang.org/[email protected]/server.go:1379 +0xb58\ngoogle.golang.org/grpc.(*Server).handleStream(0x400159c200, {0x2ae25c0, 0x403f5a5380}, 0x40034565a0)\n\t/root/go/pkg/mod/google.golang.org/[email protected]/server.go:1790 +0xb20\ngoogle.golang.org/grpc.(*Server).serveStreams.func2.1()\n\t/root/go/pkg/mod/google.golang.org/[email protected]/server.go:1029 +0x8c\ncreated by google.golang.org/grpc.(*Server).serveStreams.func2 in goroutine 14849696\n\t/root/go/pkg/mod/google.golang.org/[email protected]/server.go:1040 +0x13c\n: panic [celestiaorg/[email protected]/baseapp/recovery.go:69] With gas wanted: '18446744073709551615' and gas used: '183188' ", details: [], metadata: MetadataMap { headers: {"content-type": "application/grpc", "x-cosmos-block-height": "1867095"} }
-
Create a msg-pfb.json
celestia-appd tx interchain-accounts host generate-packet-data '{"@type":"/celestia.blob.v1.MsgPayForBlobs", "signer":"celestia1xzsdn65hyljcmenlxyjmdmvghhd0w4ut27k3fx56jp2p69eh6srs8p3rss"}' --memo "rootulp" 2> msg-pfb-2.json cat msg-pfb-2.json {"type":"TYPE_EXECUTE_TX","data":"CmkKIC9jZWxlc3RpYS5ibG9iLnYxLk1zZ1BheUZvckJsb2JzEkUKQ2NlbGVzdGlhMXh6c2RuNjVoeWxqY21lbmx4eWptZG12Z2hoZDB3NHV0MjdrM2Z4NTZqcDJwNjllaDZzcnM4cDNyc3M=","memo":"rootulp"}
-
Send the msg PFB
gaiad tx interchain-accounts controller send-tx connection-3788 msg-pfb-2.json --from key-cosmos --chain-id theta-testnet-001 --fees 100000uatom --gas 2000000 --node tcp://localhost:27000
-
Create another
gaiad tx interchain-accounts controller register connection-3790 --from key-cosmos --chain-id theta-testnet-001 --fees 100000uatom --gas 2000000 --node tcp://localhost:27000 --version '{"version":"ics27-1","controller_connection_id":"connection-3790","host_connection_id":"connection-4","address":"cosmos1epqzuh6myrwrp4zr8zjamcye4nvkkg9xd8ywak","encoding":"proto3","tx_type":"sdk_multi_msg"}' --ordering ORDER_ORDERED root@rootulp-arabica:~# gaiad query ica controller interchain-account cosmos1epqzuh6myrwrp4zr8zjamcye4nvkkg9xd8ywak connection-3790 --node tcp://localhost:27000 address: celestia1a7jh5agpdy8hhu2e4x90l8a5l3er88rpjmnl3g0zcq5sxc6sz23sv8u8r9 celestia-appd tx interchain-accounts host generate-packet-data '{"@type":"/celestia.blob.v1.MsgPayForBlobs", "signer":"celestia1a7jh5agpdy8hhu2e4x90l8a5l3er88rpjmnl3g0zcq5sxc6sz23sv8u8r9"}' --memo "rootulp" 2> msg-pfb-4.json gaiad tx interchain-accounts controller send-tx connection-3790 msg-pfb-4.json --from key-cosmos --chain-id theta-testnet-001 --fees 100000uatom --gas 2000000 --node tcp://localhost:27000
https://www.mintscan.io/cosmos-testnet/tx/291537BD96CBCE766B5563B01BA4BC9F3312CB183B1C5EE3C88911D9067FFAE4?sector=logs https://arabica.celenium.io/tx/6e806bf01247371643faf2706805261c0bb810903bb7c5fbcf073c2779ab9f7b?tab=messages
root@rootulp-arabica:~# celestia-appd query tx 6e806bf01247371643faf2706805261c0bb810903bb7c5fbcf073c2779ab9f7b > msg-pfb-4-output.log
-
Query the packet events
rootulp-arabica:~# celestia-appd query interchain-accounts host packet-events channel-3 2 - coin_received - receiver: celestia17xpfvakm2amg962yls6f84z3kell8c5lpnjs3s - amount: 21184utia - coin_spent - spender: celestia1dsmnzz8qvn343lxq2ew6739sd02gsspyesa4ju - amount: 21184utia - message - sender: celestia1dsmnzz8qvn343lxq2ew6739sd02gsspyesa4ju - action: /ibc.core.client.v1.MsgUpdateClient - module: ibc_client - action: /ibc.core.channel.v1.MsgRecvPacket - module: ibc_channel - module: ibc_channel - recv_packet - packet_data: {"data":"ClUKIC9jZWxlc3RpYS5ibG9iLnYxLk1zZ1BheUZvckJsb2JzEjEKL2NlbGVzdGlhMWRzbW56ejhxdm4zNDNseHEyZXc2NzM5c2QwMmdzc3B5ZXNhNGp1","memo":"","type":"TYPE_EXECUTE_TX"} - packet_data_hex: 7b2264617461223a22436c554b4943396a5a57786c6333527059533569624739694c6e59784c6b317a5a31426865555a76636b4a7362324a7a456a454b4c324e6c6247567a64476c684d57527a62573536656a6878646d347a4e444e73654845795a5863324e7a4d35633251774d6d647a633342355a584e684e477031222c226d656d6f223a22222c2274797065223a22545950455f455845435554455f5458227d - packet_timeout_height: 0-0 - packet_timeout_timestamp: 1725387671067592677 - packet_sequence: 2 - packet_src_port: icacontroller-cosmos1epqzuh6myrwrp4zr8zjamcye4nvkkg9xd8ywak - packet_src_channel: channel-4312 - packet_dst_port: icahost - packet_dst_channel: channel-3 - packet_channel_ordering: ORDER_ORDERED - packet_connection: connection-4 - transfer - recipient: celestia17xpfvakm2amg962yls6f84z3kell8c5lpnjs3s - sender: celestia1dsmnzz8qvn343lxq2ew6739sd02gsspyesa4ju - amount: 21184utia - tx - fee: 21184utia - fee_payer: celestia1dsmnzz8qvn343lxq2ew6739sd02gsspyesa4ju - acc_seq: celestia1dsmnzz8qvn343lxq2ew6739sd02gsspyesa4ju/63 - signature: fA7bu9/k4TBvB0CNCBSs0X9Rn4HtrVsmdO699G/md2h025kwW4Xb2PsiKuThBRqfrButIduc9br0rS0jgbgLYg== - update_client - client_id: 07-tendermint-8 - client_type: 07-tendermint - consensus_height: 0-23397679 - header: 0a262f6962632e6c69676874636c69656e74732e74656e6465726d696e742e76312e48656164657212cc1a0a9a080a9a030a02080b121174686574612d746573746e65742d30303118af8a940b220c08c4a2ddb60610dac2b5b6012a480a20c168ae4a9784320b808acfec556144181602899d3b4add62174f6d5e262402cc122408011220e78de225aaa900ba5bc9fcf3bc7d2f1f179ed1e6b61ddba1f442573074f005b83220603e211d1fcee42f34eb17e839dca11fbd38eaa5634a128c4b1cc9d6342f99eb3a20e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8554220ee83e68479e3500b999b42322c55bd7cb860cb34397e9dcdd2b3260bf49c38754a20ee83e68479e3500b999b42322c55bd7cb860cb34397e9dcdd2b3260bf49c387552200c71a481c6151e5fe9df617f5e8374f61a49ea07885794eea940adfd2993d9fe5a203993182dadc077e4a84b4540600c87d2752fbac15319965395c82f54dba8ecc862205b5664158a5e866d09851a0950f0bf599cbfbb409f7142559fcd6deaf26098406a20e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855721483fa417adbd2de24c0fd587f09109fe5f31788da12fa0408af8a940b10011a480a20057f961c4568de593bd6378565038c9b1c0a5390c45b39783cc990b80103af34122408011220b981c5cd1c6e7f262759f4aab88c53730386082c46317772ae526b4862aff3d6226708021214a8a7a64d1f8ffaf2a5332177f777a5816036d65a1a0b08cea2ddb606108dd3bb2122406291b72a4a7336ebd0cd234ca38afb89a3066a252eb363475c24627b88d9757719ba604f73cb66e27c7b8f184c9bd17abc26b6fe8c5c095658877c243e3a8a0a22670802121483fa417adbd2de24c0fd587f09109fe5f31788da1a0b08cea2ddb60610c4c6a022224056544b843992f8584477bc40dc3df6e3987b7241683af689c176e7a9487ab1e0ff27bde01a9e8710429e24f7e7313179bb2945f95181d7f1b055510b8b819a0d220f08011a0b088092b8c398feffffff012267080212147b8d7a34ec3eb1179f14fdde3f10c22928775d381a0b08cea2ddb606109eaf8a2022404d35da6459e7d959c2b26090537a2eadfbceb79b63d332acd4ed27c752230a8c55f3852c382eea26541b4b5d6441e5a14a651fe06a3f18abc3de105c4326a501220f08011a0b088092b8c398feffffff01220f08011a0b088092b8c398feffffff01220f08011a0b088092b8c398feffffff01220f08011a0b088092b8c398feffffff01220f08011a0b088092b8c398feffffff01220f08011a0b088092b8c398feffffff01220f08011a0b088092b8c398feffffff01220f08011a0b088092b8c398feffffff01220f08011a0b088092b8c398feffffff01220f08011a0b088092b8c398feffffff01220f08011a0b088092b8c398feffffff01220f08011a0b088092b8c398feffffff01220f08011a0b088092b8c398feffffff011291090a400a14a8a7a64d1f8ffaf2a5332177f777a5816036d65a12220a20da3f8d90a407031bb7eaf76ecb5b031c96487998e2ee7c67995222cefd3b32911898fe888f010a400a1483fa417adbd2de24c0fd587f09109fe5f31788da12220a20c2ff0111b8526de85510bbf940afdb64c45375e609069ffaeea1b1a2f3cde20418e6d3f587010a400a1430da2ac9b9a34bca21b3514cbdb1a9e6de3ceae012220a20fd97a559c958bb6ec8bf440f4a4c08724e659d08c99f4d0b420e107ad0b5e3ea188dbf9483010a3f0a147b8d7a34ec3eb1179f14fdde3f10c22928775d3812220a2091d5511c19bbc0e8de42e2b9ee60998df4ee8170ec7273b2cfeef3fa2c8cf91f18dfc8db4e0a3f0a141ced30733d1625c89ab698677606d0e37b3676a912220a20761843dc8e506ed0bcef4225e08ccc2f94360305438929fdfc727dc34f5181d81886b3a7040a3f0a14279adbe5f6292e740201c1aa3e90e1b10755f33f12220a2046119bbee9394a2847a9f8094ce8a7a8cc984f2eb54c70b204d58b7c138868f018a4e4a4040a3f0a1405420f030b0ea20194743831cdae841e0fdfaba212220a202dc64cfb2d30365ec7e6f1c0fea45ac757f9caf61ea03af91c267f078a283a1118a496ff030a3f0a14633706fa3a3029e68d72ec24e1b6b50e69533dd212220a202e3efae3ec1cfc36a1d1adc0519e9bd4ea81c6a293bb3033a144074cdbea5efa18a3f0e9030a3f0a142418ccdd5a1ba729c8cf82dd0d0732fff9626d1512220a209b25fb417962659ab72db73cade019996386a3aee47ac719d70e389118cc4849189580e9030a3f0a1473b97484a5803bdef3305c1d73e25516c5a6cd2012220a2000572bda6cb7b229baae2468d8a036743da48f52155721f69570116ce60fae5418efa5e8030a3f0a14ae8f583288a168d56720ea6695a3ae9abb8735cd12220a20ebb37d6197d96fa8f56e0253d5fc39825afe79ed2b7e8adce26750af1cf657df189e92e8030a3f0a14d8c29f5ab8fd9e25d518860b8ea7b8b65345e1c212220a207384e39a4a6f740b8f20cd985163c0e7bf9ade5efdacbf9de4d2361eaeb95e2118e0dbb1020a3f0a14b97904e1431dbc2cdf58670f9067ee0936c3819712220a201e54c7ec1a1321cc655e010d84b882b3c1f3e759b1cfde68aaefb06646b058e418bbbcb1020a3d0a143f7a42c7ce1bd8d1032390b76018a865bc8efdaf12220a2037c7dadba260ce50944c256badce6f3258488477b279c38df143fc593d5ec57b18fa030a3c0a146dd0339008daa03a7ee1f406831b87e24638ebe912220a2043736b6ad2dc531a52a50db2eb111cdd60fa5546a2cdb6c9fef549ae549b440f18360a3c0a143e82ade2627f88632c222e59b704be14b07be02912220a209850a674d1436767bb2b6f36de95be8a506df8088f24ced8c4fa561834fcf27318170a3c0a14d08e5f65297e43d60320b6eef801e435908ef51212220a20d7706244b215092ef595288177fab804b63207d0368e8bec8236285254e7a2b4180112400a1483fa417adbd2de24c0fd587f09109fe5f31788da12220a20c2ff0111b8526de85510bbf940afdb64c45375e609069ffaeea1b1a2f3cde20418e6d3f5870118e0ccc089041a0510998a940b2291090a400a14a8a7a64d1f8ffaf2a5332177f777a5816036d65a12220a20da3f8d90a407031bb7eaf76ecb5b031c96487998e2ee7c67995222cefd3b32911898fe888f010a400a1483fa417adbd2de24c0fd587f09109fe5f31788da12220a20c2ff0111b8526de85510bbf940afdb64c45375e609069ffaeea1b1a2f3cde20418e6d3f587010a400a1430da2ac9b9a34bca21b3514cbdb1a9e6de3ceae012220a20fd97a559c958bb6ec8bf440f4a4c08724e659d08c99f4d0b420e107ad0b5e3ea188dbf9483010a3f0a147b8d7a34ec3eb1179f14fdde3f10c22928775d3812220a2091d5511c19bbc0e8de42e2b9ee60998df4ee8170ec7273b2cfeef3fa2c8cf91f18dfc8db4e0a3f0a141ced30733d1625c89ab698677606d0e37b3676a912220a20761843dc8e506ed0bcef4225e08ccc2f94360305438929fdfc727dc34f5181d81886b3a7040a3f0a14279adbe5f6292e740201c1aa3e90e1b10755f33f12220a2046119bbee9394a2847a9f8094ce8a7a8cc984f2eb54c70b204d58b7c138868f018a4e4a4040a3f0a1405420f030b0ea20194743831cdae841e0fdfaba212220a202dc64cfb2d30365ec7e6f1c0fea45ac757f9caf61ea03af91c267f078a283a1118a496ff030a3f0a14633706fa3a3029e68d72ec24e1b6b50e69533dd212220a202e3efae3ec1cfc36a1d1adc0519e9bd4ea81c6a293bb3033a144074cdbea5efa18a3f0e9030a3f0a142418ccdd5a1ba729c8cf82dd0d0732fff9626d1512220a209b25fb417962659ab72db73cade019996386a3aee47ac719d70e389118cc4849189580e9030a3f0a1473b97484a5803bdef3305c1d73e25516c5a6cd2012220a2000572bda6cb7b229baae2468d8a036743da48f52155721f69570116ce60fae5418efa5e8030a3f0a14ae8f583288a168d56720ea6695a3ae9abb8735cd12220a20ebb37d6197d96fa8f56e0253d5fc39825afe79ed2b7e8adce26750af1cf657df189e92e8030a3f0a14d8c29f5ab8fd9e25d518860b8ea7b8b65345e1c212220a207384e39a4a6f740b8f20cd985163c0e7bf9ade5efdacbf9de4d2361eaeb95e2118e0dbb1020a3f0a14b97904e1431dbc2cdf58670f9067ee0936c3819712220a201e54c7ec1a1321cc655e010d84b882b3c1f3e759b1cfde68aaefb06646b058e418bbbcb1020a3d0a143f7a42c7ce1bd8d1032390b76018a865bc8efdaf12220a2037c7dadba260ce50944c256badce6f3258488477b279c38df143fc593d5ec57b18fa030a3c0a146dd0339008daa03a7ee1f406831b87e24638ebe912220a2043736b6ad2dc531a52a50db2eb111cdd60fa5546a2cdb6c9fef549ae549b440f18360a3c0a143e82ade2627f88632c222e59b704be14b07be02912220a209850a674d1436767bb2b6f36de95be8a506df8088f24ced8c4fa561834fcf27318170a3c0a14d08e5f65297e43d60320b6eef801e435908ef51212220a20d7706244b215092ef595288177fab804b63207d0368e8bec8236285254e7a2b4180112400a1430da2ac9b9a34bca21b3514cbdb1a9e6de3ceae012220a20fd97a559c958bb6ec8bf440f4a4c08724e659d08c99f4d0b420e107ad0b5e3ea188dbf94830118e0ccc08904 - write_acknowledgement - packet_data: {"data":"ClUKIC9jZWxlc3RpYS5ibG9iLnYxLk1zZ1BheUZvckJsb2JzEjEKL2NlbGVzdGlhMWRzbW56ejhxdm4zNDNseHEyZXc2NzM5c2QwMmdzc3B5ZXNhNGp1","memo":"","type":"TYPE_EXECUTE_TX"} - packet_data_hex: 7b2264617461223a22436c554b4943396a5a57786c6333527059533569624739694c6e59784c6b317a5a31426865555a76636b4a7362324a7a456a454b4c324e6c6247567a64476c684d57527a62573536656a6878646d347a4e444e73654845795a5863324e7a4d35633251774d6d647a633342355a584e684e477031222c226d656d6f223a22222c2274797065223a22545950455f455845435554455f5458227d - packet_timeout_height: 0-0 - packet_timeout_timestamp: 1725387671067592677 - packet_sequence: 2 - packet_src_port: icacontroller-cosmos1epqzuh6myrwrp4zr8zjamcye4nvkkg9xd8ywak - packet_src_channel: channel-4312 - packet_dst_port: icahost - packet_dst_channel: channel-3 - packet_ack: {"error":"ABCI code: 4: error handling packet: see events for details"} - packet_ack_hex: 7b226572726f72223a224142434920636f64653a20343a206572726f722068616e646c696e67207061636b65743a20736565206576656e747320666f722064657461696c73227d - packet_connection: connection-4
- ICA generated addresses are not visible on Celenium. Create issue.
- Create a docs page on how to do this b/c not trivial