Code Monkey home page Code Monkey logo

composable-cosmos's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

composable-cosmos's Issues

Set Bech32 prefix in interchaintest

Interchaintest is failing due to an incorrectly set bech32 prefix.

... is not a permanent solution. We should likely configure in interchaintest's test chains.

Standard Cosmos Chain Test

Need complete:

  • Validator - accrue enough token to join active validator set, gets slashed for missing or tombstoned for double signing
  • Delegator - stake, restake, claim, unstake with unbonding time
  • Relayers - spin up channel & relay packets
  • Governance - create gov prop, vote and check quorum settings
  • Upgrade chain

IBC Transfer

Need complete in Interchain Test:

  • Osmosis<> Banksy <> Picasso
  • Escrow + mint are correct balances
  • Dotsama transfers apart from PICA are all Ibc tokens on Cosmos

version 7 tracking issue

Across:

  • wasmd
  • packet forward middleware
  • async-icq

There've been some changes to make how we interact with governance more conventional, and the ability to refund unforwardable forwards has been added.

Given that PFM in particular has made fairly big changes, and it doesn't make sense to stay on retracted code, v7 will stay on v0.47.x while using the mainine wasm client and hopefully mainline IBC.

Version 7


nice to haves

  • remove alliance
  • change bech32 prefix

Support CLI query commands for the other query services for `ratelimit` module

At the moment, CLI query commands only support the AllRateLimits query. I suggest to add the other query commands.

type QueryServer interface {
	AllRateLimits(context.Context, *QueryAllRateLimitsRequest) (*QueryAllRateLimitsResponse, error)
	RateLimit(context.Context, *QueryRateLimitRequest) (*QueryRateLimitResponse, error)
	RateLimitsByChainID(context.Context, *QueryRateLimitsByChainIDRequest) (*QueryRateLimitsByChainIDResponse, error)
	RateLimitsByChannelID(context.Context, *QueryRateLimitsByChannelIDRequest) (*QueryRateLimitsByChannelIDResponse, error)
	AllWhitelistedAddresses(context.Context, *QueryAllWhitelistedAddressesRequest) (*QueryAllWhitelistedAddressesResponse, error)
}

Epoch module

Separate epoch handle in rate-limit module into standalone module

Proposal 6 breaks querying list of proposals

Cross posting from Discord

Querying proposal 6 directly or any list of proposals containing it panics:
Error: rpc error: code = Unknown desc = proto: wrong wireType = 0 for field MinRateLimitAmount: panic
it even breaks querying list of active proposals even though prop #6 is not active
https://api-composable-ia.cosmosia.notional.ventures/cosmos/gov/v1/proposals?proposal_status=2&pagination.limit=20&pagination.count_total=true&pagination.reverse=true

@vuong177

Transaction Failed (banksy-testnet-2)

Hi. My validator status BOND_STATUS_UNBONDING, jailed: false
When I try to make a transaction (tx staking delegate, tx distribution withdraw-all-rewards) I get an error:

recovered: calculated final stake for delegator banksy1ynazq7vemekv3lswdq57kfae2vay4fhge8tgq3 greater than current stake final stake: 1000000.000000000000000000 current stake: 990000.000000000000000000 stack: goroutine 823 [running]: runtime/debug.Stack() runtime/debug/stack.go:24 +0x65 github.com/cosmos/cosmos-sdk/baseapp.newDefaultRecoveryMiddleware.func1({0x2132f80, 0xc0f39cc5b0}) github.com/cosmos/[email protected]/baseapp/recovery.go:71 +0x27 github.com/cosmos/cosmos-sdk/baseapp.newRecoveryMiddleware.func1({0x2132f80?, 0xc0f39cc5b0?}) github.com/cosmos/[email protected]/baseapp/recovery.go:39 +0x30 github.com/cosmos/cosmos-sdk/baseapp.processRecovery({0x2132f80, 0xc0f39cc5b0}, 0xc00021b080?) github.com/cosmos/[email protected]/baseapp/recovery.go:28 +0x37 github.com/cosmos/cosmos-sdk/baseapp.processRecovery({0x2132f80, 0xc0f39cc5b0}, 0x30b2140?) github.com/cosmos/[email protected]/baseapp/recovery.go:33 +0x5e github.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).runTx.func1() github.com/cosmos/[email protected]/baseapp/baseapp.go:631 +0xf0 panic({0x2132f80, 0xc0f39cc5b0}) runtime/panic.go:844 +0x258 github.com/cosmos/cosmos-sdk/x/distribution/keeper.Keeper.CalculateDelegationRewards({{0x3086db8, 0xc000cfe580}, {0x30b1730, 0xc00039fab0}, {0x30a2f48, 0xc000ca0230}, {0x30a95a8, 0xc0000010e0}, {0x30aecc8, 0xc0004e9200}, ...}, ...) github.com/cosmos/[email protected]/x/distribution/keeper/delegation.go:129 +0x568 github.com/cosmos/cosmos-sdk/x/distribution/keeper.Keeper.withdrawDelegationRewards({{0x3086db8, 0xc000cfe580}, {0x30b1730, 0xc00039fab0}, {0x30a2f48, 0xc000ca0230}, {0x30a95a8, 0xc0000010e0}, {0x30aecc8, 0xc0004e9200}, ...}, ...) github.com/cosmos/[email protected]/x/distribution/keeper/delegation.go:149 +0x1db github.com/cosmos/cosmos-sdk/x/distribution/keeper.Keeper.WithdrawDelegationRewards({{0x3086db8, 0xc000cfe580}, {0x30b1730, 0xc00039fab0}, {0x30a2f48, 0xc000ca0230}, {0x30a95a8, 0xc0000010e0}, {0x30aecc8, 0xc0004e9200}, ...}, ...) github.com/cosmos/[email protected]/x/distribution/keeper/keeper.go:95 +0x18e github.com/cosmos/cosmos-sdk/x/distribution/keeper.msgServer.WithdrawDelegatorReward({{{0x3086db8, 0xc000cfe580}, {0x30b1730, 0xc00039fab0}, {0x30a2f48, 0xc000ca0230}, {0x30a95a8, 0xc0000010e0}, {0x30aecc8, 0xc0004e9200}, ...}}, ...) github.com/cosmos/[email protected]/x/distribution/keeper/msg_server.go:57 +0x330 github.com/cosmos/cosmos-sdk/x/distribution/types.Msg_WithdrawDelegatorReward_Handler.func1({0x30a1b28, 0xc0c6f151a0}, {0x248ebe0?, 0xc0253bc2a0}) github.com/cosmos/[email protected]/x/distribution/types/tx.pb.go:1037 +0x78 github.com/cosmos/cosmos-sdk/baseapp.(*MsgServiceRouter).RegisterService.func2.1({0x30a2ea0, 0xc00021ab00}, {0xc003be17e0?, 0x412bab?}, 0x2513840?, 0xc0ee2a6150) github.com/cosmos/[email protected]/baseapp/msg_service_router.go:113 +0xd2 github.com/cosmos/cosmos-sdk/x/distribution/types.Msg_WithdrawDelegatorReward_Handler({0x250e820?, 0xc0006209a0}, {0x30a2ea0, 0xc00021ab00}, 0x2be1d00, 0xc0253bc900) github.com/cosmos/[email protected]/x/distribution/types/tx.pb.go:1039 +0x138 github.com/cosmos/cosmos-sdk/baseapp.(*MsgServiceRouter).RegisterService.func2({{0x30a1ab8, 0xc000052060}, {0x30b2140, 0xc0fc2d9a00}, {{0xb, 0x0}, {0xc0a84503d0, 0x10}, 0x9fb8, {0x1a23f0a7, ...}, ...}, ...}, ...) github.com/cosmos/[email protected]/baseapp/msg_service_router.go:121 +0x2e4 github.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).runMsgs(, {{0x30a1ab8, 0xc000052060}, {0x30b2140, 0xc0fc2d9a00}, {{0xb, 0x0}, {0xc0a84503d0, 0x10}, 0x9fb8, ...}, ...}, ...) github.com/cosmos/[email protected]/baseapp/baseapp.go:790 +0x60b github.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).runTx(0xc000000b40, 0x3, {0xc04442d080, 0x153, 0x153}) github.com/cosmos/[email protected]/baseapp/baseapp.go:733 +0xe25 github.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).DeliverTx(0xc000000b40, {{0xc04442d080?, 0x10?, 0x7fd2eebadb48?}}) github.com/cosmos/[email protected]/baseapp/abci.go:407 +0x17a github.com/cometbft/cometbft/abci/client.(*localClient).DeliverTxAsync(0xc00337c600, {{0xc04442d080?, 0x0?, 0x0?}}) github.com/cometbft/[email protected]/abci/client/local_client.go:82 +0x105 github.com/cometbft/cometbft/proxy.(*appConnConsensus).DeliverTxAsync(0xc00000fe90, {{0xc04442d080?, 0x20?, 0xb?}}) github.com/cometbft/[email protected]/proxy/app_conn.go:106 +0x102 github.com/cometbft/cometbft/state.execBlockOnProxyApp({0x30a1ce8?, 0xc00020d460}, {0x30af420, 0xc00000fe90}, 0xc07059c3c0, {0x30b2c50, 0xc003074060}, 0x9fb7?) github.com/cometbft/[email protected]/state/execution.go:376 +0x7ef github.com/cometbft/cometbft/state.(*BlockExecutor).ApplyBlock(, {{{0xb, 0x0}, {0xc003305516, 0x6}}, {0xc003305590, 0x10}, 0x1, 0x9fb7, {{0xc06d27f3a0, ...}, ...}, ...}, ...) github.com/cometbft/[email protected]/state/execution.go:197 +0x151 github.com/cometbft/cometbft/consensus.(*State).finalizeCommit(0xc000cc9500, 0x9fb8) github.com/cometbft/[email protected]/consensus/state.go:1700 +0xa85 github.com/cometbft/cometbft/consensus.(*State).tryFinalizeCommit(0xc000cc9500, 0x9fb8) github.com/cometbft/[email protected]/consensus/state.go:1609 +0x2ff github.com/cometbft/cometbft/consensus.(*State).enterCommit.func1() github.com/cometbft/[email protected]/consensus/state.go:1544 +0xa5 github.com/cometbft/cometbft/consensus.(*State).enterCommit(0xc000cc9500, 0x9fb8, 0x0) github.com/cometbft/[email protected]/consensus/state.go:1582 +0xcb7 github.com/cometbft/cometbft/consensus.(*State).addVote(0xc000cc9500, 0xc038e41720, {0xc0f0685410, 0x28}) github.com/cometbft/[email protected]/consensus/state.go:2213 +0xcbf github.com/cometbft/cometbft/consensus.(*State).tryAddVote(0xc000cc9500, 0xc038e41720, {0xc0f0685410?, 0xc0ddf97900?}) github.com/cometbft/[email protected]/consensus/state.go:2002 +0x2c github.com/cometbft/cometbft/consensus.(*State).handleMsg(0xc000cc9500, {{0x307e5c0?, 0xc0ebf269a8?}, {0xc0f0685410?, 0x0?}}) github.com/cometbft/[email protected]/consensus/state.go:861 +0x44b github.com/cometbft/cometbft/consensus.(*State).receiveRoutine(0xc000cc9500, 0x0) github.com/cometbft/[email protected]/consensus/state.go:768 +0x419 created by github.com/cometbft/cometbft/consensus.(*State).OnStart github.com/cometbft/[email protected]/consensus/state.go:379 +0x12d : panic

How can you fix it?

async-icq

I'd like to use async-icq, because it is being deployed in many places and having it will let us test for compatibility and security problems.

x/wasm

this is also so that we can test for any issues that could occur from crosstalk between components

feat: increase CosmWasm contract size for default 800kb to 1.6 MB like in Neutron 2.0 release

Problem is that I am trying to add innocent code to cvm contract and get over default limit 819200 bytes. Neutron increased the size in release to 1.6MB (2x)

image

image

That makes code to be 824K which is over limit.

As you can see not a lot of changes. I observer than sometimes removing code, like some dependency may increase size of wasm. So hardly predictable.

Improvement blocked by:

  • Astroport/Osmosis - they depend on tenderint-rs
  • ibc-rs, also I use only app types, they use tenderimnt-rs time, may be of different version
  • still on forks, leading to duplication of code

So cannot fix fast.

token factory

same reasoning: for the public testnet we're going to want to use the token factory so that we can check for issues that might only show up when using the token factory

Readme

The readme file should be more descriptive, and include:

Acknowledgements

  • IBC-Go team and Strangelove Ventures for work on the WASM ibc client
  • Confio for the CosmWasm standard
  • The polkadot and cosmos communities for years of hard work
  • Juno for some aspects of the interchaintest implementation

Local Centauri

To facilitate ease of testing, we need to provide a quick and easy-to-run local node. There are two types of local nodes we need to provide:

  • Local node with state from main/testnet
  • Fresh local node

We can reference the Osmosis and Terra2 approach to accomplish this.

possibly incompatible ppica handling for CW and IBC contracts

I am trying to get grasp ppica native hack for mapping tokens. I tried to send ppica
When I try to send PPICA to Osmosis via IBC get something like this

{"level":"info","process":"centauri","replica":1,"message":"xcvm::gateway::ibc::ics20:: payload {\"stargate\":{\"type_url\":\"/ibc.applications.transfer.v1.MsgTransfer\",\"value\":\"Cgh0cmFuc2ZlchIJY2hhbm5lbC0wGhMKBXBwaWNhEgoxMDAwMDAwMDAwIkNjZW50YXVyaTFrYTU2NzZrMDR6YzN5OTN5ajB5bWptc21xY253OTZyeGF6Y2o4cG4wZjlzc2RkdGF0dnlxdGo0OGQ3Kj9vc21vMWNseWZsM2xmdGg5ZzJhdjh5cnNqY3U0dXJleGdkdzA1NGszczB2Y3Y1bXM2MHh3eHY5OHFkNnd4NXlCywR7Indhc20iOnsiY29udHJhY3QiOiJvc21vMWNseWZsM2xmdGg5ZzJhdjh5cnNqY3U0dXJleGdkdzA1NGszczB2Y3Y1bXM2MHh3eHY5OHFkNnd4NXkiLCJtc2ciOnsiZnJvbV9uZXR3b3JrX2lkIjoyLCJwYWNrZXQiOnsiYXNzZXRzIjpbWyIxNTg0NTYzMjUwMjg1Mjg2NzUxODcwODc5MDA2NzMiLCIxMDAwMDAwMDAwIl1dLCJpbnRlcnByZXRlciI6IjYzNjU2ZTc0NjE3NTcyNjkzMTcyMzQ2ODcxNjM2MTM0Nzg2YzMwNjM2MTYzMzAzMjM2NzUzMDM4NzQzNjZhNzgzMjM5NzQzNTM2Njg2NDM2NmM3NjMyNzQ3OTcxNzk3NDM5MzI2ZTY0NzMzNDdhNzAzMzcxNzE3YTcxNzkzNjM4NjQ2ZTcxIiwicHJvZ3JhbSI6eyJpbnN0cnVjdGlvbnMiOltdLCJ0YWciOiI3MzcwNjE3NzZlNWY3NzY5NzQ2ODVmNjE3MzczNjU3NCJ9LCJzYWx0IjoiNzM3MDYxNzc2ZTVmNzc2OTc0Njg1ZjYxNzM3MzY1NzQiLCJ1c2VyX29yaWdpbiI6eyJuZXR3b3JrX2lkIjoyLCJ1c2VyX2lkIjoiNjM2NTZlNzQ2MTc1NzI2OTMxNzE3MTMwNmIzNzY0MzUzNjZhNzU3NTM3NjgzNDM5NjE3MjY1NmM3YTY3NzczMDM5NmE2MzYzNjQ2YjM4NzM3NTZhNzI2MzcyNmE2NCJ9fX19fQ==\"}}"}
{"level":"info","process":"centauri","replica":1,"message":"[90m9:00PM INF burned tokens from module account amount=1000000000ppica from=transfer module=bank"}
{"level":"info","process":"centauri","replica":1,"message":"[90m9:00PM INF Redacting submessage error cause="dispatch: submessages: dispatch: submessages: spendable balance  is smaller than 1000000000ibc/632DBFDB06584976F1351A66E873BF0F7A19FAA083425FEC9890C90993E5F0A4: insufficient funds" module=wasm"}

So ICS20 app burns ppica, and tries to transfer some ibc/ asset.
I have this config

            jq-genesis '.app_state.transmiddleware.token_infos[0].ibc_denom |= "ibc/632DBFDB06584976F1351A66E873BF0F7A19FAA083425FEC9890C90993E5F0A4"'            
            jq-genesis '.app_state.transmiddleware.token_infos[0].channel_id |= "channel-0"'  
            jq-genesis '.app_state.transmiddleware.token_infos[0].native_denom |= "ppica"'
            jq-genesis '.app_state.transmiddleware.token_infos[0].asset_id |= "1"'

Difference from production mainnet is channel number is zero.
Here is production:

bash-5.1$ nix run .#centaurid -- query  transfermiddleware para-token-info "ppica"  --node [https://rpc-composable-ia.cosmosia.notional.ventures:443](https://rpc-composable-ia.cosmosia.notional.ventures/)
asset_id: "1"
channel_id: channel-2
ibc_denom: ibc/F4DD4690EC7F061DA2D86CB0081A4FF5AC94406E886B77D1685EA3C3995C8D5A
native_denom: ppica

So thing is I write CW contract. Contract gets bank assets. Bank asset works well with ppica. But when I send ppica denom via ibc, it fails, but still burns PPICA.

So question, given mapping like it was done, what are rules for CW contracts to recevie and send PPICA?

My assumption that any CW contracts if it received PPICA and wants to send it, it can do that, without error. So current implrementation of mapping is issue in Notional code which makes bank and ibc host extension handling on Centauri incompatible with any contracts which will operate on ppica. And that to be fixed.

ppica handling must be compatible with any CW and Cosmos SDK compatible contract out there

CometBFT

we should not use tendermint for this, that way it will better resemble real world deployments

Duplicate proto type registered

After a series of version changes at go.mod. We get this error when we run Interchain Test in Local with go.work

cd tests/interchaintest && go test -timeout=25m -race -v -run TestBanksyPicassoIBCTransfer .
2023/05/23 18:02:05 proto: duplicate proto type registered: ibc.lightclients.wasm.v1.MsgPushNewWasmCode
2023/05/23 18:02:05 proto: duplicate proto type registered: ibc.lightclients.wasm.v1.MsgPushNewWasmCodeResponse
2023/05/23 18:02:05 proto: duplicate proto type registered: ibc.lightclients.wasm.v1.ClientState
2023/05/23 18:02:05 proto: duplicate proto type registered: ibc.lightclients.wasm.v1.ConsensusState
2023/05/23 18:02:05 proto: duplicate proto type registered: ibc.lightclients.wasm.v1.Header
2023/05/23 18:02:05 proto: duplicate proto type registered: ibc.lightclients.wasm.v1.Misbehaviour
=== RUN   TestBanksyPicassoIBCTransfer
=== PAUSE TestBanksyPicassoIBCTransfer
=== CONT  TestBanksyPicassoIBCTransfer
    logger.go:130: 2023-05-23T18:02:05.476+0700 INFO    Using embedded configured chains
    setup.go:231: Pruned unused networks: [interchaintest-gwrrdiqd]
--- FAIL: TestBanksyPicassoIBCTransfer (0.45s)
panic: concrete type *types.Misbehaviour has already been registered under typeURL /, cannot register *types.Header under same typeURL. This usually means that there are conflicting modules registering different concrete types for a same interface implementation [recovered]
        panic: concrete type *types.Misbehaviour has already been registered under typeURL /, cannot register *types.Header under same typeURL. This usually means that there are conflicting modules registering different concrete types for a same interface implementation

goroutine 12 [running]:
testing.tRunner.func1.2({0x352aec0, 0xc000d672c0})
        /usr/local/go/src/testing/testing.go:1526 +0x372
testing.tRunner.func1()
        /usr/local/go/src/testing/testing.go:1529 +0x650
panic({0x352aec0, 0xc000d672c0})
        /usr/local/go/src/runtime/panic.go:890 +0x263
github.com/cosmos/cosmos-sdk/codec/types.(*interfaceRegistry).registerImpl(0xc0006894e0, {0x3451d00, 0x0}, {0x5315044, 0x1}, {0x533a400?, 0xc000d88ba0})
        /home/duc/go/pkg/mod/github.com/cosmos/cosmos-sdk@v0.47.2/codec/types/interface_registry.go:171 +0x5cf
github.com/cosmos/cosmos-sdk/codec/types.(*interfaceRegistry).RegisterImplementations(0x37b1a80?, {0x3451d00, 0x0}, {0xc000d672a0, 0x1, 0xc0006894e0?})
        /home/duc/go/pkg/mod/github.com/cosmos/cosmos-sdk@v0.47.2/codec/types/interface_registry.go:135 +0xd7
github.com/strangelove-ventures/interchaintest/v7/chain/cosmos/08-wasm-types.RegisterInterfaces({0x5346e40, 0xc0006894e0})
        /home/duc/go/pkg/mod/github.com/notional-labs/interchaintest/v7@v7.1.2/chain/cosmos/08-wasm-types/codec.go:28 +0x410
github.com/strangelove-ventures/interchaintest/v7/chain/cosmos/08-wasm-types.AppModuleBasic.RegisterInterfaces(...)
        /home/duc/go/pkg/mod/github.com/notional-labs/interchaintest/v7@v7.1.2/chain/cosmos/08-wasm-types/module.go:33
github.com/cosmos/cosmos-sdk/types/module.BasicManager.RegisterInterfaces(...)
        /home/duc/go/pkg/mod/github.com/cosmos/cosmos-sdk@v0.47.2/types/module/module.go:96
github.com/cosmos/cosmos-sdk/types/module/testutil.MakeTestEncodingConfig({0xc00063e8a0, 0x10, 0x0?})
        /home/duc/go/pkg/mod/github.com/cosmos/cosmos-sdk@v0.47.2/types/module/testutil/codec.go:40 +0x75e
github.com/strangelove-ventures/interchaintest/v7/chain/cosmos.DefaultEncoding()
        /home/duc/go/pkg/mod/github.com/notional-labs/interchaintest/v7@v7.1.2/chain/cosmos/codec.go:33 +0x43a
github.com/strangelove-ventures/interchaintest/v7/chain/cosmos.NewCosmosChain({0x38feb31, 0x1c}, {{0x38c8bea, 0x6}, {0xc0004461e8, 0x8}, {0x38ca70e, 0x7}, {0xc000660cc0, 0x1, ...}, ...}, ...)
        /home/duc/go/pkg/mod/github.com/notional-labs/interchaintest/v7@v7.1.2/chain/cosmos/cosmos_chain.go:88 +0x86
github.com/strangelove-ventures/interchaintest/v7.buildChain(0xc00037e150, {0x38feb31, 0x1c}, {{0x38c8bea, 0x6}, {0xc0004461e8, 0x8}, {0x38ca70e, 0x7}, {0xc000660cc0, ...}, ...}, ...)
        /home/duc/go/pkg/mod/github.com/notional-labs/interchaintest/v7@v7.1.2/chainfactory.go:139 +0x673
github.com/strangelove-ventures/interchaintest/v7.(*BuiltinChainFactory).Chains(0xc00063f518, {0x38feb31, 0x1c})
        /home/duc/go/pkg/mod/github.com/notional-labs/interchaintest/v7@v7.1.2/chainfactory.go:112 +0x27b
github.com/notional-labs/composable-testnet/tests/interchaintest.TestBanksyPicassoIBCTransfer(0xc000478d00)
        /home/duc/Notional/composable-testnet/tests/interchaintest/ibc_transfer_test.go:121 +0x125e
testing.tRunner(0xc000478d00, 0x40c97e0)
        /usr/local/go/src/testing/testing.go:1576 +0x217
created by testing.(*T).Run
        /usr/local/go/src/testing/testing.go:1629 +0x806
FAIL    github.com/notional-labs/composable-testnet/tests/interchaintest        0.819s
FAIL
make: *** [Makefile:138: ictest-ibc] Error 1

#DRAFT #WIP feels like if wasmd module does not have access to ibc capability

  1. run devnet with centaur and osmosis, hermes amid them
    image

  2. than i run cli transfer of ppica from centauri to osmosis on channel 0

image

  1. osmosis channel
bash-5.1$ nix run .#osmosisd -- query ibc channel channels --home /tmp/composable-devnet/
channels:
- channel_id: channel-0
  connection_hops:
  - connection-0
  counterparty:
    channel_id: channel-0
    port_id: transfer
  ordering: ORDER_UNORDERED
  port_id: transfer
  state: STATE_OPEN
  version: ics20-1
height:
  revision_height: "44"
  revision_number: "0"
pagination:
  next_key: null
  total: "0"

and cenauri

bash-5.1$ ^C
bash-5.1$ nix run .#centaurid -- query ibc channel channels --home /tmp/composable-devnet/
channels:
- channel_id: channel-0
  connection_hops:
  - connection-0
  counterparty:
    channel_id: channel-0
    port_id: transfer
  ordering: ORDER_UNORDERED
  port_id: transfer
  state: STATE_OPEN
  version: ics20-1
height:
  revision_height: "50"
  revision_number: "0"
pagination:
  next_key: null
  total: "0"

so both are open, and relayed well.

  1. as per logs of osmosis (sorry for some weird chars, see pica and channel and other ibc symbols)
[0mtransfer"}
{"level":"error","process":"osmosis","replica":1,"message":"\u001b[90m6:40PM\u001b[0m \u001b[33mDBG\u001b[0m packetForwardMiddleware OnRecvPacket \u001b[36mamount=\u001b[0m10000000000 \u001b[36mdenom=\u001b[0mppica \u001b[36mdst-channel=\u001b[0mchannel-0 \u001b[36mdst-port=\u001b[0mtransfer \u001b[36mmodule=\u001b[0mx/ibc-packetfowardmiddleware \u001b[36msequence=\u001b[0m1 \u001b[36msrc-channel=\u001b[0mchannel-0 \u001b[36msrc-port=\u001b[0mtransfer"}
{"level":"error","process":"osmosis","replica":1,"message":"\u001b[90m6:40PM\u001b[0m \u001b[33mDBG\u001b[0m packetForwardMiddleware OnRecvPacket forward metadata does not exist \u001b[36mmodule=\u001b[0mx/ibc-packetfowardmiddleware"}
{"level":"error","process":"osmosis","replica":1,"message":"\u001b[90m6:40PM\u001b[0m \u001b[32mINF\u001b[0m acknowledgement written \u001b[36mdst_channel=\u001b[0mchannel-0 \u001b[36mdst_port=\u001b[0mtransfer \u001b[36mmodule=\u001b[0mx/ibc/channel \u001b[36msequence=\u001b[0m1 \u001b[36msrc_channel=\u001b[0mchannel-0 \u001b[36msrc_port=\u001b[0mtransfer"}
{"level":"error","process":"osmosis","replica":1,"message":"\u001b[90m6:40PM\u001b[0m \u001b[33mDBG\u001b[0m (msg service router) Finished executing msg"}
{"level":"error","process":"osmosis","replica":1,"message":"\u001b[90m6:40PM\u001b[0m \u001b[33mDBG\u001b[0m finished executing tx"}
{"level":"error","process":"osmosis","replica":1,"message":"\u001b[90m6:40PM\u001b[0m \u001b[33mDBG\u001b[0m beginning to execute tx"}
{"level":"error","process":"osmosis","replica":1,"message":"\u001b[90m6:40PM\u001b[0m \u001b[32mINF\u001b[0m client state updated \u001b[36mclient-id=\u001b[0m07-tendermint-0 \u001b[36mheight=\u001b[0m0-34 \u001b[36mmodule=\u001b[0mx/ibc/client"}
{"level":"info","process":"osmosis","replica":1,"message":"Dragonberry Active"}
{"level":"error","process":"osmosis","replica":1,"message":"\u001b[90m6:40PM\u001b[0m \u001b[32mINF\u001b[0m packet received \u001b[36mdst_channel=\u001b[0mchannel-0 \u001b[36mdst_port=\u001b[0mtransfer \u001b[36mmodule=\u001b[0mx/ibc/channel \u001b[36msequence=\u001b[0m1 \u001b[36msrc_channel=\u001b[0mchannel-0 \u001b[36msrc_port=\u001b[0mtransfer"}
{"level":"error","process":"osmosis","replica":1,"message":"\u001b[90m6:40PM\u001b[0m \u001b[33mDBG\u001b[0m packetForwardMiddleware OnRecvPacket \u001b[36mamount=\u001b[0m10000000000 \u001b[36mdenom=\u001b[0mppica \u001b[36mdst-channel=\u001b[0mchannel-0 \u001b[36mdst-port=\u001b[0mtransfer \u001b[36mmodule=\u001b[0mx/ibc-packetfowardmiddleware \u001b[36msequence=\u001b[0m1 \u001b[36msrc-channel=\u001b[0mchannel-0 \u001b[36msrc-port=\u001b[0mtransfer"}
{"level":"error","process":"osmosis","replica":1,"message":"\u001b[90m6:40PM\u001b[0m \u001b[33mDBG\u001b[0m packetForwardMiddleware OnRecvPacket forward metadata does not exist \u001b[36mmodule=\u001b[0mx/ibc-packetfowardmiddleware"}
{"level":"error","process":"osmosis","replica":1,"message":"\u001b[90m6:40PM\u001b[0m \u001b[32mINF\u001b[0m acknowledgement written \u001b[36mdst_channel=\u001b[0mchannel-0 \u001b[36mdst_port=\u001b[0mtransfer \u001b[36mmodule=\u001b[0mx/ibc/channel \u001b[36msequence=\u001b[0m1 \u001b[36msrc_channel=\u001b[0mchannel-0 \u001b[36msrc_port=\u001b[0mtransfer"}
{"level":"error","process":"osmosis","replica":1,"message":"\u001b[90m6:40PM\u001b[0m \u001b[33mDBG\u001b[0m finished executing tx"}

token received on channel-0, denom ppica.

on centaurr, sender, logs are

{"level":"info","process":"centauri","replica":1,"message":"\u001b[90m6:40PM\u001b[0m \u001b[32mINF\u001b[0m packet acknowledged \u001b[36mdst_channel=\u001b[0mchannel-0 \u001b[36mdst_port=\u001b[0mtransfer \u001b[36mmodule=\u001b[0mx/ibc/channel \u001b[36msequence=\u001b[0m1 \u001b[36msrc_channel=\u001b[0mchannel-0 \u001b[36msrc_port=\u001b[0mtransfer"}
{"level":"info","process":"centauri","replica":1,"message":"\u001b[90m6:40PM\u001b[0m \u001b[33mDBG\u001b[0m packetForwardMiddleware OnAcknowledgementPacket \u001b[36mamount=\u001b[0m10000000000 \u001b[36mdenom=\u001b[0mppica \u001b[36mdst-channel=\u001b[0mchannel-0 \u001b[36mdst-port=\u001b[0mtransfer \u001b[36mmodule=\u001b[0mx/ibc-packetfowardmiddleware \u001b[36msequence=\u001b[0m1 \u001b[36msrc-channel=\u001b[0mchannel-0 \u001b[36msrc-port=\u001b[0mtransfer"}
{"level":"info","process":"centauri","replica":1,"message":"\u001b[90m6:40PM\u001b[0m \u001b[32mINF\u001b[0m acknowledgement succeeded \u001b[36mchannel-id=\u001b[0mchannel-0 \u001b[36mmodule=\u001b[0mserver \u001b[36mport-id=\u001b[0mtransfer \u001b[36mresult=\u001b[0mRESPONSE_RESULT_TYPE_SUCCESS"}
{"level":"info","process":"centauri","replica":1,"message":"\u001b[90m6:40PM\u001b[0m \u001b[32mINF\u001b[0m client state updated \u001b[36mclient-id=\u001b[0m07-tendermint-0 \u001b[36mheights=\u001b[0m[{\"revision_height\":36}] \u001b[36mmodule=\u001b[0mx/ibc/client"}
{"level":"info","process":"centauri","replica":1,"message":"\u001b[90m6:40PM\u001b[0m \u001b[32mINF\u001b[0m packet acknowledged \u001b[36mdst_channel=\u001b[0mchannel-0 \u001b[36mdst_port=\u001b[0mtransfer \u001b[36mmodule=\u001b[0mx/ibc/channel \u001b[36msequence=\u001b[0m1 \u001b[36msrc_channel=\u001b[0mchannel-0 \u001b[36msrc_port=\u001b[0mtransfer"}
{"level":"info","process":"centauri","replica":1,"message":"\u001b[90m6:40PM\u001b[0m \u001b[33mDBG\u001b[0m packetForwardMiddleware OnAcknowledgementPacket \u001b[36mamount=\u001b[0m10000000000 \u001b[36mdenom=\u001b[0mppica \u001b[36mdst-channel=\u001b[0mchannel-0 \u001b[36mdst-port=\u001b[0mtransfer \u001b[36mmodule=\u001b[0mx/ibc-packetfowardmiddleware \u001b[36msequence=\u001b[0m1 \u001b[36msrc-channel=\u001b[0mchannel-0 \u001b[36msrc-port=\u001b[0mtransfer"}
{"level":"info","process":"centauri","replica":1,"message":"\u001b[90m6:40PM\u001b[0m \u001b[32mINF\u001b[0m acknowledgement succeeded \u001b[36mchannel-id=\u001b[0mchannel-0 \u001b[36mmodule=\u001b[0mserver \u001b[36mport-id=\u001b[0mtransfer \u001b[36mresult=\u001b[0mRESPONSE_RESULT_TYPE_SUCCESS"}

so packet acked for transfer

{"level":"info","process":"centauri","replica":1,"message":"\u001b[90m6:40PM\u001b[0m \u001b[32mINF\u001b[0m packet sent \u001b[36mdst_channel=\u001b[0mchannel-0 \u001b[36mdst_port=\u001b[0mtransfer \u001b[36mmodule=\u001b[0mx/ibc/channel \u001b[36msequence=\u001b[0m1 \u001b[36msrc_channel=\u001b[0mchannel-0 \u001b[36msrc_port=\u001b[0mtransfer"}
{"level":"info","process":"centauri","replica":1,"message":"\u001b[90m6:40PM\u001b[0m \u001b[32mINF\u001b[0m IBC fungible token transfer \u001b[36mamount=\u001b[0m10000000000 \u001b[36mmodule=\u001b[0mx/ibc-transfer \u001b[36mreceiver=\u001b[0mosmo12smx2wdlyttvyzvzg54y2vnqwq2qjatescq89n \u001b[36msender=\u001b[0mcentauri1qq0k7d56juu7h49arelzgw09jccdk8sujrcrjd \u001b[36mtoken=\u001b[0mppica"}

and hermes log

{\"height\":\"33\",\"tx\":\"CskBCsYBCikvaWJjLmFwcGxpY2F0aW9ucy50cmFuc2Zlci52MS5Nc2dUcmFuc2ZlchKYAQoIdHJhbnNmZXISCWNoYW5uZWwtMBoUCgVwcGljYRILMTAwMDAwMDAwMDAiL2NlbnRhdXJpMXFxMGs3ZDU2anV1N2g0OWFyZWx6Z3cwOWpjY2RrOHN1anJjcmpkKitvc21vMTJzbXgyd2RseXR0dnl6dnpnNTR5MnZucXdxMnFqYXRlc2NxODluMgMQhAg4sNT8m+mwmb0XEm0KUApGCh8vY29zbW9zLmNyeXB0by5zZWNwMjU2azEuUHViS2V5EiMKIQNN5kSY8yimvPuCDYkg0nSM2jLgNZ4WzbPwdHzlS5WDSBIECgIIARgMEhkKEgoFcHBpY2ESCTkyMDAwMDE2NhDA8PULGkDB/UN2pks/sAz6XsvYHNn+A13yxpAZnyt/iRdDdAr34DyA3CCLwTEFuNwWvau+QjRmL1EXaFc4SkxnFYsIhbjb\",\"result\":{\"data\":\"EjcKMS9pYmMuYXBwbGljYXRpb25zLnRyYW5zZmVyLnYxLk1zZ1RyYW5zZmVyUmVzcG9uc2USAggB\",\"log\":\"[{\\\"msg_index\\\":0,\\\"events\\\":[{\\\"type\\\":\\\"message\\\",\\\"attributes\\\":[{\\\"key\\\":\\\"action\\\",\\\"value\\\":\\\"/ibc.applications.transfer.v1.MsgTransfer\\\"},{\\\"key\\\":\\\"sender\\\",\\\"value\\\":\\\"centauri1qq0k7d56juu7h49arelzgw09jccdk8sujrcrjd\\\"}]},{\\\"type\\\":\\\"coin_spent\\\",\\\"attributes\\\":[{\\\"key\\\":\\\"spender\\\",\\\"value\\\":\\\"centauri1qq0k7d56juu7h49arelzgw09jccdk8sujrcrjd\\\"},{\\\"key\\\":\\\"amount\\\",\\\"value\\\":\\\"10000000000ppica\\\"}]},{\\\"type\\\":\\\"coin_received\\\",\\\"attributes\\\":[{\\\"key\\\":\\\"receiver\\\",\\\"value\\\":\\\"centauri1a53udazy8ayufvy0s434pfwjcedzqv34jx0e0a\\\"},{\\\"key\\\":\\\"amount\\\",\\\"value\\\":\\\"10000000000ppica\\\"}]},{\\\"type\\\":\\\"transfer\\\",\\\"attributes\\\":[{\\\"key\\\":\\\"recipient\\\",\\\"value\\\":\\\"centauri1a53udazy8ayufvy0s434pfwjcedzqv34jx0e0a\\\"},{\\\"key\\\":\\\"sender\\\",\\\"value\\\":\\\"centauri1qq0k7d56juu7h49arelzgw09jccdk8sujrcrjd\\\"},{\\\"key\\\":\\\"amount\\\",\\\"value\\\":\\\"10000000000ppica\\\"}]},{\\\"type\\\":\\\"message\\\",\\\"attributes\\\":[{\\\"key\\\":\\\"sender\\\",\\\"value\\\":\\\"centauri1qq0k7d56juu7h49arelzgw09jccdk8sujrcrjd\\\"}]},{\\\"type\\\":\\\"send_packet\\\",\\\"attributes\\\":[{\\\"key\\\":\\\"packet_data\\\",\\\"value\\\":\\\"{\\\\\\\"amount\\\\\\\":\\\\\\\"10000000000\\\\\\\",\\\\\\\"denom\\\\\\\":\\\\\\\"ppica\\\\\\\",\\\\\\\"receiver\\\\\\\":\\\\\\\"osmo12smx2wdlyttvyzvzg54y2vnqwq2qjatescq89n\\\\\\\",\\\\\\\"sender\\\\\\\":\\\\\\\"centauri1qq0k7d56juu7h49arelzgw09jccdk8sujrcrjd\\\\\\\"}\\\"},{\\\"key\\\":\\\"packet_data_hex\\\",\\\"value\\\":\\\"7b22616d6f756e74223a223130303030303030303030222c2264656e6f6d223a227070696361222c227265636569766572223a226f736d6f3132736d783277646c79747476797a767a6735347932766e71777132716a61746573637138396e222c2273656e646572223a2263656e7461757269317171306b376435366a7575376834396172656c7a677730396a6363646b3873756a7263726a64227d\\\"},{\\\"key\\\":\\\"packet_timeout_height\\\",\\\"value\\\":\\\"0-1028\\\"},{\\\"key\\\":\\\"packet_timeout_timestamp\\\",\\\"value\\\":\\\"1691776238705650224\\\"},{\\\"key\\\":\\\"packet_sequence\\\",\\\"value\\\":\\\"1\\\"},{\\\"key\\\":\\\"packet_src_port\\\",\\\"value\\\":\\\"transfer\\\"},{\\\"key\\\":\\\"packet_src_channel\\\",\\\"value\\\":\\\"channel-0\\\"},{\\\"key\\\":\\\"packet_dst_port\\\",\\\"value\\\":\\\"transfer\\\"},{\\\"key\\\":\\\"packet_dst_channel\\\",\\\"value\\\":\\\"channel-0\\\"},{\\\"key\\\":\\\"packet_channel_ordering\\\",\\\"value\\\":\\\"ORDER_UNORDERED\\\"},{\\\"key\\\":\\\"packet_connection\\\",\\\"value\\\":\\\"connection-0\\\"},{\\\"key\\\":\\\"connection_id\\\",\\\"value\\\":\\\"connection-0\\\"}]},{\\\"type\\\":\\\"message\\\",\\\"attributes\\\":[{\\\"key\\\":\\\"module\\\",\\\"value\\\":\\\"ibc_channel\\\"}]},{\\\"type\\\":\\\"ibc_transfer\\\",\\\"attributes\\\":[{\\\"key\\\":\\\"sender\\\",\\\"value\\\":\\\"centauri1qq0k7d56juu7h49arelzgw09jccdk8sujrcrjd\\\"},{\\\"key\\\":\\\"receiver\\\",\\\"value\\\":\\\"osmo12smx2wdlyttvyzvzg54y2vnqwq2qjatescq89n\\\"},{\\\"key\\\":\\\"amount\\\",\\\"value\\\":\\\"10000000000\\\"},{\\\"key\\\":\\\"denom\\\",\\\"value\\\":\\\"ppica\\\"},{\\\"key\\\":\\\"memo\\\"}]},{\\\"type\\\":\\\"message\\\",\\\"attributes\\\":[{\\\"key\\\":\\\"module\\\",\\\"value\\\":\\\"transfer\\\"}]}]}]\",\"gas_wanted\":\"25000000\",\"gas_used\":\"81849\",\"events\":[{\"type\":\"tx\",\"attributes\":[{\"key\":\"acc_seq\",\"value\":\"centauri1qq0k7d56juu7h49arelzgw09jccdk8sujrcrjd/12\",\"index\":true}]},{\"type\":\"tx\",\"attributes\":[{\"key\":\"signature\",\"value\":\"wf1DdqZLP7AM+l7L2BzZ/gNd8saQGZ8rf4kXQ3QK9+A8gNwgi8ExBbjcFr2rvkI0Zi9RF2hXOEpMZxWLCIW42w==\",\"index\":true}]},{\"type\":\"message\",\"attributes\":[{\"key\":\"action\",\"value\":\"/ibc.applications.transfer.v1.MsgTransfer\",\"index\":true},{\"key\":\"sender\",\"value\":\"centauri1qq0k7d56juu7h49arelzgw09jccdk8sujrcrjd\",\"index\":true}]},{\"type\":\"coin_spent\",\"attributes\":[{\"key\":\"spender\",\"value\":\"centauri1qq0k7d56juu7h49arelzgw09jccdk8sujrcrjd\",\"index\":true},{\"key\":\"amount\",\"value\":\"10000000000ppica\",\"index\":true}]},{\"type\":\"coin_received\",\"attributes\":[{\"key\":\"receiver\",\"value\":\"centauri1a53udazy8ayufvy0s434pfwjcedzqv34jx0e0a\",\"index\":true},{\"key\":\"amount\",\"value\":\"10000000000ppica\",\"index\":true}]},{\"type\":\"transfer\",\"attributes\":[{\"key\":\"recipient\",\"value\":\"centauri1a53udazy8ayufvy0s434pfwjcedzqv34jx0e0a\",\"index\":true},{\"key\":\"sender\",\"value\":\"centauri1qq0k7d56juu7h49arelzgw09jccdk8sujrcrjd\",\"index\":true},{\"key\":\"amount\",\"value\":\"10000000000ppica\",\"index\":true}]},{\"type\":\"message\",\"attributes\":[{\"key\":\"sender\",\"value\":\"centauri1qq0k7d56juu7h49arelzgw09jccdk8sujrcrjd\",\"index\":true}]},{\"type\":\"send_packet\",\"attributes\":[{\"key\":\"packet_data\",\"value\":\"{\\\"amount\\\":\\\"10000000000\\\",\\\"denom\\\":\\\"ppica\\\",\\\"receiver\\\":\\\"osmo12smx2wdlyttvyzvzg54y2vnqwq2qjatescq89n\\\",\\\"sender\\\":\\\"centauri1qq0k7d56juu7h49arelzgw09jccdk8sujrcrjd\\\"}\",\"index\":true},{\"key\":\"packet_data_hex\",

transfer/channel-0 everywhere

please not i disabled ppica ibc mapping because with it i cannot use ppica in CW #219

  1. so let do send IBC packet from CW

sdk 50 and mainline wasm client

So, we've accumulated some technical debt, and this issue will help to solve it. It is broken into sub-issues so that we can approach it in pieces.

Version 8 tracking issue

In version 8 we will be putting the last pieces of infrastructure in place for ethereum IBC, namely:

Nice to haves:

  • upgrade to ibc-go v8
  • upgrade to sdk v0.50.x

enable set of modules to operate production grade ibc enabled wasm contracts

estimate

when: PLACEHOLDER
total time: PLACEHOLDER

plan

PLACEHOLDER

each step is no more than 1 week with some to check output

overview

add production grade modules to support some ibc enabled production cw contracts

priorities

  • wasmd
  • ibc wasm hook

modules

contracts

deliver

  • non conflict PR from branch sent to main branch
  • question are answered from review
  • script to upload latest version ^^ contracts with success, with features of wasmd enabled to run these contracts. proper version of wasmd chosen to ensure we can run these contracts
  • script with one call to execute to any of these contracts (like cw20 mint)
  • ibc transfer with memo example where memo either port forward OR contract invocation, forward should forward packet to any other chain, contract should try to invoke some contract (we care about attempt to invoke, so no need to invoke real contracts, but could be nice).
  • send from banksy of memo with port forward -> port forward -> cw hook should work, no need to prove if hard, but setup should be here. as per osmosis that works in their modules. prove could be reference to osmosis reply/gh issue/or codebase
  • if any copy paste from original source or fork of notional is used to setup all staff, comment or commit or pr should be provided why we cannot you code as is and need modification and copy pastes
  • description how to fast track uploading contracts without waiting long governance process
  • ibc enabled contracts should be able to call ibc ics 20
  • contract size limit is larger than 200KB and less than 400KB is set

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.