maxonrow / maxonrow-go

Maxonrow Blockchain
https://www.maxonrow.com/
5 stars 6 forks source link

Failed to create multisig transaction for createFungibleToken #105

Closed jeansoonsik closed 4 years ago

jeansoonsik commented 4 years ago

What happened: Encountered error when create multisig transaction for createFungibleToken recovered: Cannot encode unregistered concrete type fungible.MsgCreateFungibleToken.

What you expected to happen: Able to create multisig transaction for createFungibleToken.

How to reproduce it (as minimally and precisely as possible): signedTransaction:

{
    "type": "cosmos-sdk/StdTx",
    "value": {
        "fee": {
            "amount": [
                {
                    "amount": "10000000000000000",
                    "denom": "cin"
                }
            ],
            "gas": "0"
        },
        "memo": "",
        "msg": [
            {
                "type": "mxw/msgCreateMultiSigTx",
                "value": {
                    "groupAddress": "mxw1rwhlac8s9u0lww8dmltj8t4mh4rpkakpsx5vr8",
                    "sender": "mxw163gpxlqtgcexpal0wuth9zx789mq0qfsctjnyx",
                    "stdTx": {
                        "fee": {
                            "amount": [
                                {
                                    "amount": "10000000000000000",
                                    "denom": "cin"
                                }
                            ],
                            "gas": "0"
                        },
                        "memo": "",
                        "msg": [
                            {
                                "type": "token/createFungibleToken",
                                "value": {
                                    "decimals": "18",
                                    "fee": {
                                        "to": "mxw1qgwzdxf66tp5mjpkpfe593nvsst7qzfxzqq73d",
                                        "value": "1"
                                    },
                                    "fixedSupply": true,
                                    "maxSupply": "100000000000000000000000000",
                                    "metadata": "",
                                    "name": "MY FIX18b10d89",
                                    "owner": "mxw1rwhlac8s9u0lww8dmltj8t4mh4rpkakpsx5vr8",
                                    "symbol": "FIX18b10d89"
                                }
                            }
                        ],
                        "signatures": [
                            {
                                "pub_key": {
                                    "type": "tendermint/PubKeySecp256k1",
                                    "value": "AozR0mDawJJzS5rLQQLAYtuJkuV4vR/I88wykmabirz2"
                                },
                                "signature": "gNVyKiXtlWyDqMk2eXXrX9r9OyLbyVRmS0D67LrXqag/8LbkbkAH/GZUnUW6gc3nW+i7lbVBT5P9KX0vGpB0xQ=="
                            }
                        ]
                    }
                }
            }
        ],
        "signatures": [
            {
                "pub_key": {
                    "type": "tendermint/PubKeySecp256k1",
                    "value": "AozR0mDawJJzS5rLQQLAYtuJkuV4vR/I88wykmabirz2"
                },
                "signature": "J8aj9U19hGN6ukb7H61mKxBn1g/CgZNf/OoR0qM06FZX5sOzm7yTNt4jO0WrqRGoVb5RtSCCNo+7ZOfamYl8PA=="
            }
        ]
    }
}

Error: recovered: Cannot encode unregistered concrete type fungible.MsgCreateFungibleToken. stack: goroutine 22531165 [running]: runtime/debug.Stack(0xc0072bcad8, 0x10b4640, 0xc00720aa70) /usr/local/go/src/runtime/debug/stack.go:24 +0x9d github.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).runTx.func1(0xc0072c0d70, 0xc0072c13c0, 0xc0072c2bd8) /go/src/gitlab.com/mxw-blockchain/maxonrow-go/vendor/github.com/cosmos/cosmos-sdk/baseapp/baseapp.go:544 +0x90 panic(0x10b4640, 0xc00720aa70) /usr/local/go/src/runtime/panic.go:967 +0x15d github.com/tendermint/go-amino.(*Codec).MustMarshalJSON(...) /go/src/gitlab.com/mxw-blockchain/maxonrow-go/vendor/github.com/tendermint/go-amino/amino.go:406 github.com/maxonrow/maxonrow-go/x/auth.MsgCreateMultiSigTx.GetSignBytes(0xc008a7d0c0, 0x14, 0x14, 0xc00720a910, 0x1, 0x1, 0xc0070fdd00, 0x1, 0x1, 0x0, ...) /go/src/gitlab.com/mxw-blockchain/maxonrow-go/x/auth/msgs.go:169 +0x13b github.com/cosmos/cosmos-sdk/x/auth/types.StdSignBytes(0xc006c8bdb0, 0x6, 0xe, 0x55f, 0xc0070fdea0, 0x1, 0x1, 0x0, 0xc00720a950, 0x1, ...) /go/src/gitlab.com/mxw-blockchain/maxonrow-go/vendor/github.com/cosmos/cosmos-sdk/x/auth/types/stdtx.go:220 +0xbb github.com/maxonrow/maxonrow-go/utils.GetSignBytes(0x16516a0, 0xc00012a020, 0x1663960, 0xc0070bc900, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, ...) /go/src/gitlab.com/mxw-blockchain/maxonrow-go/utils/utils.go:41 +0x612 github.com/maxonrow/maxonrow-go/utils.CheckTxSig(0x16516a0, 0xc00012a020, 0x1663960, 0xc0070bc900, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, ...) /go/src/gitlab.com/mxw-blockchain/maxonrow-go/utils/utils.go:109 +0x61f github.com/maxonrow/maxonrow-go/app.(*mxwApp).NewAnteHandler.func1(0x16516a0, 0xc00012a020, 0x1663960, 0xc0070bc900, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, ...) /go/src/gitlab.com/mxw-blockchain/maxonrow-go/app/ante.go:75 +0x59a github.com/maxonrow/maxonrow-go/app.(*mxwApp).anteHandler(0xc000143b00, 0x16516a0, 0xc00012a020, 0x1663960, 0xc0070bc900, 0xa, 0x0, 0x0, 0x0, 0x0, ...) /go/src/gitlab.com/mxw-blockchain/maxonrow-go/app/app.go:393 +0x1cc github.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).runTx(0xc000dd7cc0, 0x100, 0xc0070c2d80, 0x1c1, 0x23f, 0x16440c0, 0xc00721c600, 0x0, 0x0, 0x0, ...) /go/src/gitlab.com/mxw-blockchain/maxonrow-go/vendor/github.com/cosmos/cosmos-sdk/baseapp/baseapp.go:589 +0x629 github.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).CheckTx(0xc000dd7cc0, 0xc0070c2d80, 0x1c1, 0x23f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...) /go/src/gitlab.com/mxw-blockchain/maxonrow-go/vendor/github.com/cosmos/cosmos-sdk/baseapp/abci.go:169 +0x2f6 github.com/tendermint/tendermint/abci/client.(*localClient).CheckTxAsync(0xc000da7440, 0xc0070c2d80, 0x1c1, 0x23f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0) /go/src/gitlab.com/mxw-blockchain/maxonrow-go/vendor/github.com/tendermint/tendermint/abci/client/local_client.go:99 +0xdc github.com/tendermint/tendermint/proxy.(*appConnMempool).CheckTxAsync(0xc0004d3080, 0xc0070c2d80, 0x1c1, 0x23f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x60) /go/src/gitlab.com/mxw-blockchain/maxonrow-go/vendor/github.com/tendermint/tendermint/proxy/app_conn.go:114 +0x61 github.com/tendermint/tendermint/mempool.(*CListMempool).CheckTx(0xc0001fb200, 0xc0070c2d80, 0x1c1, 0x23f, 0xc00720a8b0, 0xe10000, 0x0, 0x0, 0x0, 0x0) /go/src/gitlab.com/mxw-blockchain/maxonrow-go/vendor/github.com/tendermint/tendermint/mempool/clist_mempool.go:280 +0x2d9 github.com/tendermint/tendermint/rpc/core.BroadcastTxSync(0xc0070fce20, 0xc0070c2d80, 0x1c1, 0x23f, 0x23f, 0x0, 0x0) /go/src/gitlab.com/mxw-blockchain/maxonrow-go/vendor/github.com/tendermint/tendermint/rpc/core/mempool.go:37 +0xcc github.com/maxonrow/maxonrow-go/app.(*mxwApp).EncodeAndBroadcastTxSync(0xc000143b00, 0xc0070fce20, 0xc00721a000, 0x5f8, 0xc000d22000, 0xc000bc1298, 0x415c23) /go/src/gitlab.com/mxw-blockchain/maxonrow-go/app/rpc.go:131 +0x1ab reflect.Value.call(0x10bf880, 0xc000da36e0, 0x13, 0x1233958, 0x4, 0xc0086a6570, 0x2, 0x2, 0x2, 0x18, ...) /usr/local/go/src/reflect/value.go:460 +0x8ab reflect.Value.Call(0x10bf880, 0xc000da36e0, 0x13, 0xc0086a6570, 0x2, 0x2, 0x1, 0x1, 0x0) /usr/local/go/src/reflect/value.go:321 +0xb4 github.com/tendermint/tendermint/rpc/lib/server.makeJSONRPCHandler.func1(0x164ca20, 0xc0070fcde0, 0xc0070f0600) /go/src/gitlab.com/mxw-blockchain/maxonrow-go/vendor/github.com/tendermint/tendermint/rpc/lib/server/handlers.go:180 +0x8f9 github.com/tendermint/tendermint/rpc/lib/server.handleInvalidJSONRPCPaths.func1(0x164ca20, 0xc0070fcde0, 0xc0070f0600) /go/src/gitlab.com/mxw-blockchain/maxonrow-go/vendor/github.com/tendermint/tendermint/rpc/lib/server/handlers.go:204 +0x9c net/http.HandlerFunc.ServeHTTP(0xc000da3af0, 0x164ca20, 0xc0070fcde0, 0xc0070f0600) /usr/local/go/src/net/http/server.go:2012 +0x44 net/http.(*ServeMux).ServeHTTP(0xc000e31900, 0x164ca20, 0xc0070fcde0, 0xc0070f0600) /usr/local/go/src/net/http/server.go:2387 +0x1a5 github.com/rs/cors.(*Cors).Handler.func1(0x164ca20, 0xc0070fcde0, 0xc0070f0600) /go/src/gitlab.com/mxw-blockchain/maxonrow-go/vendor/github.com/rs/cors/cors.go:219 +0x1b8 net/http.HandlerFunc.ServeHTTP(0xc000c93920, 0x164ca20, 0xc0070fcde0, 0xc0070f0600) /usr/local/go/src/net/http/server.go:2012 +0x44 github.com/tendermint/tendermint/rpc/lib/server.maxBytesHandler.ServeHTTP(0x1634800, 0xc000c93920, 0xf4240, 0x164ca20, 0xc0070fcde0, 0xc0070f0600) /go/src/gitlab.com/mxw-blockchain/maxonrow-go/vendor/github.com/tendermint/tendermint/rpc/lib/server/http_server.go:210 +0xcf github.com/tendermint/tendermint/rpc/lib/server.RecoverAndLogHandler.func1(0x164d120, 0xc006ce7a40, 0xc0070f0600) /go/src/gitlab.com/mxw-blockchain/maxonrow-go/vendor/github.com/tendermint/tendermint/rpc/lib/server/http_server.go:183 +0x360 net/http.HandlerFunc.ServeHTTP(0xc000c9e090, 0x164d120, 0xc006ce7a40, 0xc0070f0600) /usr/local/go/src/net/http/server.go:2012 +0x44 net/http.serverHandler.ServeHTTP(0xc000158380, 0x164d120, 0xc006ce7a40, 0xc0070f0600) /usr/local/go/src/net/http/server.go:2807 +0xa3 net/http.(*conn).serve(0xc0043dc3c0, 0x1651660, 0xc003641440) /usr/local/go/src/net/http/server.go:1895 +0x86c created by net/http.(*Server).Serve /usr/local/go/src/net/http/server.go:2933 +0x35c

Anything else we need to know?:

Environment:

jeansoonsik commented 4 years ago

Hi @b00f, can you have a look?

b00f commented 4 years ago

@yenkhoon Can you check if we have registered the FungibleToken concretes?

b00f commented 4 years ago

@githubckgoh1439 Do we have any Tests for FungibleToken using MultiSig?

githubckgoh1439 commented 4 years ago

Mostafa,

I not yet start the Fungible Token Test. Currently only NFTs and Fund Transfer for the test-cases.

b00f commented 4 years ago

It looks that we forgot to register FT interfaces. Looks here:https://github.com/maxonrow/maxonrow-go/commit/709a56bcca0cc035dc92bce999b470a2e335036f#diff-3262be067671055cd67e1e8025ece31b

@githubckgoh1439 can you work on this bug?

yenkhoon commented 4 years ago

currently the concrete is not registered! thats the issue.

yenkhoon commented 4 years ago

we agreed to not open it yet right?

b00f commented 4 years ago

Please make sure all the interfaces are registered and this bug fixes.

yenkhoon commented 4 years ago

I close this issue first. The codec is enabled for all transaction beside we need to add more for nft as in latest patch we released the nft feature.