From 3721b0219662cccca9fbd1b86c62e5c0e94571f4 Mon Sep 17 00:00:00 2001 From: mmsqe Date: Thu, 26 Sep 2024 16:08:09 +0800 Subject: [PATCH 1/5] Problem: marshal error get overwritten by unexpected end of JSON input --- go.mod | 8 ++++---- go.sum | 16 ++++++++-------- gomod2nix.toml | 20 ++++++++++---------- types/account_test.go | 21 ++++++++++++++++++++- 4 files changed, 42 insertions(+), 23 deletions(-) diff --git a/go.mod b/go.mod index a01f282b91..a12e75924a 100644 --- a/go.mod +++ b/go.mod @@ -243,10 +243,10 @@ require ( replace ( // release/v0.50.x - cosmossdk.io/client/v2 => github.com/crypto-org-chain/cosmos-sdk/client/v2 v2.0.0-20240911084450-6870ba130be2 - cosmossdk.io/store => github.com/crypto-org-chain/cosmos-sdk/store v0.0.0-20240911084450-6870ba130be2 - cosmossdk.io/x/tx => github.com/crypto-org-chain/cosmos-sdk/x/tx v0.0.0-20240911084450-6870ba130be2 - github.com/cosmos/cosmos-sdk => github.com/crypto-org-chain/cosmos-sdk v0.50.6-0.20240911084450-6870ba130be2 + cosmossdk.io/client/v2 => github.com/mmsqe/cosmos-sdk/client/v2 v2.0.0-20240926072432-2a329c06bee2 + cosmossdk.io/store => github.com/mmsqe/cosmos-sdk/store v0.0.0-20240926072432-2a329c06bee2 + cosmossdk.io/x/tx => github.com/mmsqe/cosmos-sdk/x/tx v0.0.0-20240926072432-2a329c06bee2 + github.com/cosmos/cosmos-sdk => github.com/mmsqe/cosmos-sdk v0.46.0-beta2.0.20240926072432-2a329c06bee2 ) replace ( diff --git a/go.sum b/go.sum index 1cc14f5b31..084172193a 100644 --- a/go.sum +++ b/go.sum @@ -411,14 +411,6 @@ github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7Do github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/crypto-org-chain/btree v0.0.0-20240406140148-2687063b042c h1:MOgfS4+FBB8cMkDE2j2VBVsbY+HCkPIu0YsJ/9bbGeQ= github.com/crypto-org-chain/btree v0.0.0-20240406140148-2687063b042c/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY= -github.com/crypto-org-chain/cosmos-sdk v0.50.6-0.20240911084450-6870ba130be2 h1:4SoAvnxDaiIWcgm6XOmPDIdCf4/WNhNYLXGbij1eaA0= -github.com/crypto-org-chain/cosmos-sdk v0.50.6-0.20240911084450-6870ba130be2/go.mod h1:Rb43DdB0i/rKcCN69Tg2X3+zA4WhJ7MC8K3a6Ezh38E= -github.com/crypto-org-chain/cosmos-sdk/client/v2 v2.0.0-20240911084450-6870ba130be2 h1:5oGZtOUcauk9dtv+8BCfj2PEQyXEEEV+K3sP4OSvBmg= -github.com/crypto-org-chain/cosmos-sdk/client/v2 v2.0.0-20240911084450-6870ba130be2/go.mod h1:W5sR4asmVDUhJpEmuXTUBkk/yEefKlXTjVWcNciVSR0= -github.com/crypto-org-chain/cosmos-sdk/store v0.0.0-20240911084450-6870ba130be2 h1:CGh5I0L6IYhe0AJevb4vf5TE3ru+qAgMs437BlWCwo8= -github.com/crypto-org-chain/cosmos-sdk/store v0.0.0-20240911084450-6870ba130be2/go.mod h1:gjE3DZe4t/+VeIk6CmrouyqiuDbZ7QOVDDq3nLqBTpg= -github.com/crypto-org-chain/cosmos-sdk/x/tx v0.0.0-20240911084450-6870ba130be2 h1:mxlOSCru7YgmX055rrlkCSUu0D8lAqJ8Dnhp0yXCBuM= -github.com/crypto-org-chain/cosmos-sdk/x/tx v0.0.0-20240911084450-6870ba130be2/go.mod h1:RTiTs4hkXG6IvYGknvB8p79YgjYJdcbzLUOGJChsPnY= github.com/crypto-org-chain/go-block-stm v0.0.0-20240912024944-1cd89976aa5e h1:FFpE6+Y4o5GxkeGwUcETM6amgohh7msWvWf1MDqueVc= github.com/crypto-org-chain/go-block-stm v0.0.0-20240912024944-1cd89976aa5e/go.mod h1:iwQTX9xMX8NV9k3o2BiWXA0SswpsZrDk5q3gA7nWYiE= github.com/crypto-org-chain/go-ethereum v1.10.20-0.20240925072350-e05e994a492f h1:jR3nEDZMhGtZODqWFVbaTJ2X26k5r7nkiRk39i+SJ10= @@ -882,6 +874,14 @@ github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyua github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/pointerstructure v1.2.0 h1:O+i9nHnXS3l/9Wu7r4NrEdwA2VFTicjUEN1uBnDo34A= github.com/mitchellh/pointerstructure v1.2.0/go.mod h1:BRAsLI5zgXmw97Lf6s25bs8ohIXc3tViBH44KcwB2g4= +github.com/mmsqe/cosmos-sdk v0.46.0-beta2.0.20240926072432-2a329c06bee2 h1:aphpEkt5vGb1tGQHzATdNbuQf0jer8LMnhwgrBIgmNk= +github.com/mmsqe/cosmos-sdk v0.46.0-beta2.0.20240926072432-2a329c06bee2/go.mod h1:Rb43DdB0i/rKcCN69Tg2X3+zA4WhJ7MC8K3a6Ezh38E= +github.com/mmsqe/cosmos-sdk/client/v2 v2.0.0-20240926072432-2a329c06bee2 h1:W1M70iuJu2vp/lCdjMG5PEz1eZrVwpUXhfjSnVZBEyU= +github.com/mmsqe/cosmos-sdk/client/v2 v2.0.0-20240926072432-2a329c06bee2/go.mod h1:W5sR4asmVDUhJpEmuXTUBkk/yEefKlXTjVWcNciVSR0= +github.com/mmsqe/cosmos-sdk/store v0.0.0-20240926072432-2a329c06bee2 h1:Ov69kMGaDXgA4ZXzhilWTGfen/oetAI+odXwYhcVIj0= +github.com/mmsqe/cosmos-sdk/store v0.0.0-20240926072432-2a329c06bee2/go.mod h1:gjE3DZe4t/+VeIk6CmrouyqiuDbZ7QOVDDq3nLqBTpg= +github.com/mmsqe/cosmos-sdk/x/tx v0.0.0-20240926072432-2a329c06bee2 h1:h9W3s9qyBlu8uBpwBM6ifn+kl6+C0vjAk/277Xkh0YA= +github.com/mmsqe/cosmos-sdk/x/tx v0.0.0-20240926072432-2a329c06bee2/go.mod h1:RTiTs4hkXG6IvYGknvB8p79YgjYJdcbzLUOGJChsPnY= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= diff --git a/gomod2nix.toml b/gomod2nix.toml index 21f1e828e2..1147a72ccd 100644 --- a/gomod2nix.toml +++ b/gomod2nix.toml @@ -20,9 +20,9 @@ schema = 3 version = "v0.7.5" hash = "sha256-Nuw697sJr56kU3EU7DV1eYNkyI76psznIVqYAV6RfbQ=" [mod."cosmossdk.io/client/v2"] - version = "v2.0.0-20240911084450-6870ba130be2" + version = "v2.0.0-20240926072432-2a329c06bee2" hash = "sha256-60hmufv3Ml4Pv3zNwgn8eeqlEINOR6n9MKr2QHddoxo=" - replaced = "github.com/crypto-org-chain/cosmos-sdk/client/v2" + replaced = "github.com/mmsqe/cosmos-sdk/client/v2" [mod."cosmossdk.io/collections"] version = "v0.4.0" hash = "sha256-minFyzgO/D+Oda4E3B1qvOAN5qd65SjS6nmjca4cp/8=" @@ -42,9 +42,9 @@ schema = 3 version = "v1.3.0" hash = "sha256-EEFK43Cr0g0ndhQhkIKher0FqV3mvkmE9z0sP7uVSHg=" [mod."cosmossdk.io/store"] - version = "v0.0.0-20240911084450-6870ba130be2" + version = "v0.0.0-20240926072432-2a329c06bee2" hash = "sha256-Dm3sSZNJBcnBF33PULoTpK4rkNQbsZl0DfTqH1GPCQM=" - replaced = "github.com/crypto-org-chain/cosmos-sdk/store" + replaced = "github.com/mmsqe/cosmos-sdk/store" [mod."cosmossdk.io/tools/confix"] version = "v0.1.1" hash = "sha256-/Et2FFhb4XfakbLFvGQK3QxN5Y7alzO+DGfi2/EWbxo=" @@ -55,9 +55,9 @@ schema = 3 version = "v0.1.0" hash = "sha256-/gWvrqvy6bW90+NU66T+9QysYgvG1VbwfYJZ8tkqpeA=" [mod."cosmossdk.io/x/tx"] - version = "v0.0.0-20240911084450-6870ba130be2" - hash = "sha256-xT5IdapEx1h46ofBpxcBQfzGF2EntmC8xZl7aym/6xE=" - replaced = "github.com/crypto-org-chain/cosmos-sdk/x/tx" + version = "v0.0.0-20240926072432-2a329c06bee2" + hash = "sha256-/KS4Tw8nlY9TeQRInICFs0LkjAIjyMflHvp7LztrJxs=" + replaced = "github.com/mmsqe/cosmos-sdk/x/tx" [mod."cosmossdk.io/x/upgrade"] version = "v0.1.1" hash = "sha256-bM9ybpaibMH7k4M6/QAXCZ3fJcADfJHxvMgp4AVUihs=" @@ -163,9 +163,9 @@ schema = 3 version = "v1.0.0-beta.5" hash = "sha256-Fy/PbsOsd6iq0Njy3DVWK6HqWsogI+MkE8QslHGWyVg=" [mod."github.com/cosmos/cosmos-sdk"] - version = "v0.50.6-0.20240911084450-6870ba130be2" - hash = "sha256-kl2sLe8vITIguRGtdeviDeP3R5JIbRg+eDsheGd4PqM=" - replaced = "github.com/crypto-org-chain/cosmos-sdk" + version = "v0.46.0-beta2.0.20240926072432-2a329c06bee2" + hash = "sha256-/5W/4n6getoWtj/MIotvel86dcJUD7jm9a4aDdDD95w=" + replaced = "github.com/mmsqe/cosmos-sdk" [mod."github.com/cosmos/go-bip39"] version = "v1.0.0" hash = "sha256-Qm2aC2vaS8tjtMUbHmlBSagOSqbduEEDwc51qvQaBmA=" diff --git a/types/account_test.go b/types/account_test.go index 9afac71ebc..c2391d147b 100644 --- a/types/account_test.go +++ b/types/account_test.go @@ -7,15 +7,18 @@ import ( "github.com/ethereum/go-ethereum/crypto" "github.com/stretchr/testify/suite" + "cosmossdk.io/x/tx/signing/aminojson" "github.com/cosmos/cosmos-sdk/codec" codectypes "github.com/cosmos/cosmos-sdk/codec/types" sdk "github.com/cosmos/cosmos-sdk/types" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" - cryptocodec "github.com/evmos/ethermint/crypto/codec" "github.com/evmos/ethermint/crypto/ethsecp256k1" ethermintcodec "github.com/evmos/ethermint/encoding/codec" "github.com/evmos/ethermint/types" + ethermint "github.com/evmos/ethermint/types" + "github.com/stretchr/testify/require" + "google.golang.org/protobuf/types/known/anypb" ) func init() { @@ -56,3 +59,19 @@ func (suite *AccountTestSuite) TestAccountType() { suite.account.CodeHash = common.BytesToHash(crypto.Keccak256([]byte{1, 2, 3})).Hex() suite.Require().Equal(types.AccountTypeContract, suite.account.Type()) } + +func TestAminoMarshal(t *testing.T) { + registry := codectypes.NewInterfaceRegistry() + ethermint.RegisterInterfaces(registry) + value := "\n\x86\x02\n+tcrc1l8h07yxmwvc963tg08at7k9882d5ha4t34guxe\x12\xd2\x01\n)/cosmos.crypto.multisig.LegacyAminoPubKey\x12\xa4\x01\x08\x02\x12O\n(/ethermint.crypto.v1.ethsecp256k1.PubKey\x12#\n!\x03һ\xfb\x81\x1a\xb40E\xc0\x16\xf4\x17\xfba\xe5V\x10\xfd]\x8d\x19m\x08\xe0\xc6i\x83\xf9S\x9e\x1b\xd8\x12O\n(/ethermint.crypto.v1.ethsecp256k1.PubKey\x12#\n!\x02\x19]\xed\xa5\x84:\xae\xa2\x0fȌ\xb6MKR\xfc\xc5\xc8SD1\x0cSn\x83|P\xad'\xf7\xa8\x8d\x18\x12 \x02\x12B0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + msg := &anypb.Any{ + TypeUrl: "/ethermint.types.v1.EthAccount", + Value: []byte(value), + } + aj := aminojson.NewEncoder(aminojson.EncoderOptions{ + FileResolver: registry, + Indent: " ", + }) + _, err := aj.Marshal(msg) + require.ErrorContains(t, err, "thresholdStringEncoder: msg not a multisig.LegacyAminoPubKey") +} From f2181f7bdce4ab19637690d70087069d13d1ed60 Mon Sep 17 00:00:00 2001 From: mmsqe Date: Thu, 26 Sep 2024 16:10:21 +0800 Subject: [PATCH 2/5] test multisig --- .../integration_tests/configs/default.jsonnet | 2 +- tests/integration_tests/cosmoscli.py | 59 ++++++++++++++++++- tests/integration_tests/test_batch.py | 53 +++++++++++++++++ 3 files changed, 111 insertions(+), 3 deletions(-) diff --git a/tests/integration_tests/configs/default.jsonnet b/tests/integration_tests/configs/default.jsonnet index 1345ee682a..3deb185229 100644 --- a/tests/integration_tests/configs/default.jsonnet +++ b/tests/integration_tests/configs/default.jsonnet @@ -43,7 +43,7 @@ mnemonic: '${COMMUNITY_MNEMONIC}', }, { name: 'signer1', - coins: '20000000000000000000000aphoton', + coins: '100multi,20000000000000000000000aphoton', mnemonic: '${SIGNER1_MNEMONIC}', }, { name: 'signer2', diff --git a/tests/integration_tests/cosmoscli.py b/tests/integration_tests/cosmoscli.py index e6435997c6..fbc15d75a5 100644 --- a/tests/integration_tests/cosmoscli.py +++ b/tests/integration_tests/cosmoscli.py @@ -204,6 +204,18 @@ def account(self, addr): ) ) + def account_by_num(self, num): + return json.loads( + self.raw( + "q", + "auth", + "address-by-acc-num", + num, + output="json", + node=self.node_rpc, + ) + ) + def tx_search(self, events: str): "/tx_search" return json.loads( @@ -264,7 +276,7 @@ def staking_pool(self, bonded=True): def transfer(self, from_, to, coins, generate_only=False, **kwargs): kwargs.setdefault("gas_prices", DEFAULT_GAS_PRICE) - return json.loads( + rsp = json.loads( self.raw( "tx", "bank", @@ -278,6 +290,9 @@ def transfer(self, from_, to, coins, generate_only=False, **kwargs): **kwargs, ) ) + if not generate_only and rsp["code"] == 0: + rsp = self.event_query_tx_for(rsp["txhash"]) + return rsp def get_delegated_amount(self, which_addr): return json.loads( @@ -384,7 +399,7 @@ def withdraw_all_rewards(self, from_delegator): ) def make_multisig(self, name, signer1, signer2): - self.raw( + return self.raw( "keys", "add", name, @@ -857,3 +872,43 @@ def submit_gov_proposal(self, proposal, **kwargs): **(default_kwargs | kwargs), ) ) + + def query_grant(self, granter, grantee): + "query grant details by granter and grantee addresses" + res = json.loads( + self.raw( + "query", + "feegrant", + "grant", + granter, + grantee, + home=self.data_dir, + node=self.node_rpc, + output="json", + ) + ) + res = res.get("allowance") or res + return res + + def grant(self, granter, grantee, limit, **kwargs): + default_kwargs = self.get_default_kwargs() + rsp = json.loads( + self.raw( + "tx", + "feegrant", + "grant", + granter, + grantee, + "--period", + "60", + "--period-limit", + limit, + "-y", + home=self.data_dir, + stderr=subprocess.DEVNULL, + **(default_kwargs | kwargs), + ) + ) + if rsp["code"] == 0: + rsp = self.event_query_tx_for(rsp["txhash"]) + return rsp diff --git a/tests/integration_tests/test_batch.py b/tests/integration_tests/test_batch.py index ce006669a3..ddf41d14c5 100644 --- a/tests/integration_tests/test_batch.py +++ b/tests/integration_tests/test_batch.py @@ -72,3 +72,56 @@ def test_batch_tx(ethermint): txs = w3.eth.get_block(receipts[0].blockNumber, True).transactions for i in range(3): assert txs[i].transactionIndex == i + + +def test_multisig(ethermint, tmp_path): + cli = ethermint.cosmos_cli() + cli.make_multisig("multitest1", "signer1", "signer2") + multi_addr = cli.address("multitest1") + signer1 = cli.address("signer1") + signer2 = cli.address("signer2") + max_gas = 1000000 + gas_price = 10000000000000000 + limit = f"{max_gas*gas_price*2}aphoton" + rsp = cli.grant(signer1, multi_addr, limit) + assert rsp["code"] == 0, rsp["raw_log"] + grant_detail = cli.query_grant(signer1, multi_addr) + assert grant_detail["granter"] == signer1 + assert grant_detail["grantee"] == multi_addr + + denom = "multi" + amt = 10 + rsp = cli.transfer(signer1, multi_addr, f"{amt}{denom}") + assert rsp["code"] == 0, rsp["raw_log"] + assert cli.balance(multi_addr, denom=denom) == amt + + acc = cli.account(multi_addr) + res = cli.account_by_num(acc["account"]["value"]["base_account"]["account_number"]) + assert res["account_address"] == multi_addr + + m_txt = tmp_path / "m.txt" + p1_txt = tmp_path / "p1.txt" + p2_txt = tmp_path / "p2.txt" + tx_txt = tmp_path / "tx.txt" + amt = 1 + multi_tx = cli.transfer( + multi_addr, + signer2, + f"{amt}{denom}", + generate_only=True, + fee_granter=signer1, + ) + json.dump(multi_tx, m_txt.open("w")) + signature1 = cli.sign_multisig_tx(m_txt, multi_addr, "signer1") + json.dump(signature1, p1_txt.open("w")) + signature2 = cli.sign_multisig_tx(m_txt, multi_addr, "signer2") + json.dump(signature2, p2_txt.open("w")) + final_multi_tx = cli.combine_multisig_tx( + m_txt, + "multitest1", + p1_txt, + p2_txt, + ) + json.dump(final_multi_tx, tx_txt.open("w")) + rsp = cli.broadcast_tx(tx_txt) + assert rsp["code"] == 0, rsp["raw_log"] From d7dc6943c4288e3df5285b0414ab4a952b4f81b5 Mon Sep 17 00:00:00 2001 From: mmsqe Date: Fri, 27 Sep 2024 13:11:58 +0800 Subject: [PATCH 3/5] fix threshold encode --- go.mod | 8 +++---- go.sum | 16 +++++++------- gomod2nix.toml | 10 ++++----- .../integration_tests/configs/default.jsonnet | 2 +- tests/integration_tests/cosmoscli.py | 5 ++++- tests/integration_tests/test_batch.py | 21 ++++++------------- 6 files changed, 28 insertions(+), 34 deletions(-) diff --git a/go.mod b/go.mod index a12e75924a..aa32d5f1b5 100644 --- a/go.mod +++ b/go.mod @@ -243,10 +243,10 @@ require ( replace ( // release/v0.50.x - cosmossdk.io/client/v2 => github.com/mmsqe/cosmos-sdk/client/v2 v2.0.0-20240926072432-2a329c06bee2 - cosmossdk.io/store => github.com/mmsqe/cosmos-sdk/store v0.0.0-20240926072432-2a329c06bee2 - cosmossdk.io/x/tx => github.com/mmsqe/cosmos-sdk/x/tx v0.0.0-20240926072432-2a329c06bee2 - github.com/cosmos/cosmos-sdk => github.com/mmsqe/cosmos-sdk v0.46.0-beta2.0.20240926072432-2a329c06bee2 + cosmossdk.io/client/v2 => github.com/mmsqe/cosmos-sdk/client/v2 v2.0.0-20240927050756-4d8162ae3f7a + cosmossdk.io/store => github.com/mmsqe/cosmos-sdk/store v0.0.0-20240927050756-4d8162ae3f7a + cosmossdk.io/x/tx => github.com/mmsqe/cosmos-sdk/x/tx v0.0.0-20240927050756-4d8162ae3f7a + github.com/cosmos/cosmos-sdk => github.com/mmsqe/cosmos-sdk v0.46.0-beta2.0.20240927050756-4d8162ae3f7a ) replace ( diff --git a/go.sum b/go.sum index 084172193a..00e26f628c 100644 --- a/go.sum +++ b/go.sum @@ -874,14 +874,14 @@ github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyua github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/pointerstructure v1.2.0 h1:O+i9nHnXS3l/9Wu7r4NrEdwA2VFTicjUEN1uBnDo34A= github.com/mitchellh/pointerstructure v1.2.0/go.mod h1:BRAsLI5zgXmw97Lf6s25bs8ohIXc3tViBH44KcwB2g4= -github.com/mmsqe/cosmos-sdk v0.46.0-beta2.0.20240926072432-2a329c06bee2 h1:aphpEkt5vGb1tGQHzATdNbuQf0jer8LMnhwgrBIgmNk= -github.com/mmsqe/cosmos-sdk v0.46.0-beta2.0.20240926072432-2a329c06bee2/go.mod h1:Rb43DdB0i/rKcCN69Tg2X3+zA4WhJ7MC8K3a6Ezh38E= -github.com/mmsqe/cosmos-sdk/client/v2 v2.0.0-20240926072432-2a329c06bee2 h1:W1M70iuJu2vp/lCdjMG5PEz1eZrVwpUXhfjSnVZBEyU= -github.com/mmsqe/cosmos-sdk/client/v2 v2.0.0-20240926072432-2a329c06bee2/go.mod h1:W5sR4asmVDUhJpEmuXTUBkk/yEefKlXTjVWcNciVSR0= -github.com/mmsqe/cosmos-sdk/store v0.0.0-20240926072432-2a329c06bee2 h1:Ov69kMGaDXgA4ZXzhilWTGfen/oetAI+odXwYhcVIj0= -github.com/mmsqe/cosmos-sdk/store v0.0.0-20240926072432-2a329c06bee2/go.mod h1:gjE3DZe4t/+VeIk6CmrouyqiuDbZ7QOVDDq3nLqBTpg= -github.com/mmsqe/cosmos-sdk/x/tx v0.0.0-20240926072432-2a329c06bee2 h1:h9W3s9qyBlu8uBpwBM6ifn+kl6+C0vjAk/277Xkh0YA= -github.com/mmsqe/cosmos-sdk/x/tx v0.0.0-20240926072432-2a329c06bee2/go.mod h1:RTiTs4hkXG6IvYGknvB8p79YgjYJdcbzLUOGJChsPnY= +github.com/mmsqe/cosmos-sdk v0.46.0-beta2.0.20240927050756-4d8162ae3f7a h1:4afbdA2U7FZbGBwgISAaXYPMDgNOGHlkeJwvaCTZNVQ= +github.com/mmsqe/cosmos-sdk v0.46.0-beta2.0.20240927050756-4d8162ae3f7a/go.mod h1:Rb43DdB0i/rKcCN69Tg2X3+zA4WhJ7MC8K3a6Ezh38E= +github.com/mmsqe/cosmos-sdk/client/v2 v2.0.0-20240927050756-4d8162ae3f7a h1:GGjqRkX8WZa0T0lQ+Ox4Lab1NwOwqzh9BgnGMG6B0Jw= +github.com/mmsqe/cosmos-sdk/client/v2 v2.0.0-20240927050756-4d8162ae3f7a/go.mod h1:W5sR4asmVDUhJpEmuXTUBkk/yEefKlXTjVWcNciVSR0= +github.com/mmsqe/cosmos-sdk/store v0.0.0-20240927050756-4d8162ae3f7a h1:echGnYz/jaw948wNvvbokO6sy9YJv8kPYUOp1xxw4xo= +github.com/mmsqe/cosmos-sdk/store v0.0.0-20240927050756-4d8162ae3f7a/go.mod h1:gjE3DZe4t/+VeIk6CmrouyqiuDbZ7QOVDDq3nLqBTpg= +github.com/mmsqe/cosmos-sdk/x/tx v0.0.0-20240927050756-4d8162ae3f7a h1:7R2bl/UvKZRXnXFzDaY5cYVku8x/V//zj8VH2ilWn+o= +github.com/mmsqe/cosmos-sdk/x/tx v0.0.0-20240927050756-4d8162ae3f7a/go.mod h1:RTiTs4hkXG6IvYGknvB8p79YgjYJdcbzLUOGJChsPnY= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= diff --git a/gomod2nix.toml b/gomod2nix.toml index 1147a72ccd..b46ad0fb73 100644 --- a/gomod2nix.toml +++ b/gomod2nix.toml @@ -20,7 +20,7 @@ schema = 3 version = "v0.7.5" hash = "sha256-Nuw697sJr56kU3EU7DV1eYNkyI76psznIVqYAV6RfbQ=" [mod."cosmossdk.io/client/v2"] - version = "v2.0.0-20240926072432-2a329c06bee2" + version = "v2.0.0-20240927050756-4d8162ae3f7a" hash = "sha256-60hmufv3Ml4Pv3zNwgn8eeqlEINOR6n9MKr2QHddoxo=" replaced = "github.com/mmsqe/cosmos-sdk/client/v2" [mod."cosmossdk.io/collections"] @@ -42,7 +42,7 @@ schema = 3 version = "v1.3.0" hash = "sha256-EEFK43Cr0g0ndhQhkIKher0FqV3mvkmE9z0sP7uVSHg=" [mod."cosmossdk.io/store"] - version = "v0.0.0-20240926072432-2a329c06bee2" + version = "v0.0.0-20240927050756-4d8162ae3f7a" hash = "sha256-Dm3sSZNJBcnBF33PULoTpK4rkNQbsZl0DfTqH1GPCQM=" replaced = "github.com/mmsqe/cosmos-sdk/store" [mod."cosmossdk.io/tools/confix"] @@ -55,8 +55,8 @@ schema = 3 version = "v0.1.0" hash = "sha256-/gWvrqvy6bW90+NU66T+9QysYgvG1VbwfYJZ8tkqpeA=" [mod."cosmossdk.io/x/tx"] - version = "v0.0.0-20240926072432-2a329c06bee2" - hash = "sha256-/KS4Tw8nlY9TeQRInICFs0LkjAIjyMflHvp7LztrJxs=" + version = "v0.0.0-20240927050756-4d8162ae3f7a" + hash = "sha256-5HPcm3oCWAC9oKOGMP+PVMdCPF7ELVHmxpN1FasUgAY=" replaced = "github.com/mmsqe/cosmos-sdk/x/tx" [mod."cosmossdk.io/x/upgrade"] version = "v0.1.1" @@ -163,7 +163,7 @@ schema = 3 version = "v1.0.0-beta.5" hash = "sha256-Fy/PbsOsd6iq0Njy3DVWK6HqWsogI+MkE8QslHGWyVg=" [mod."github.com/cosmos/cosmos-sdk"] - version = "v0.46.0-beta2.0.20240926072432-2a329c06bee2" + version = "v0.46.0-beta2.0.20240927050756-4d8162ae3f7a" hash = "sha256-/5W/4n6getoWtj/MIotvel86dcJUD7jm9a4aDdDD95w=" replaced = "github.com/mmsqe/cosmos-sdk" [mod."github.com/cosmos/go-bip39"] diff --git a/tests/integration_tests/configs/default.jsonnet b/tests/integration_tests/configs/default.jsonnet index 3deb185229..1345ee682a 100644 --- a/tests/integration_tests/configs/default.jsonnet +++ b/tests/integration_tests/configs/default.jsonnet @@ -43,7 +43,7 @@ mnemonic: '${COMMUNITY_MNEMONIC}', }, { name: 'signer1', - coins: '100multi,20000000000000000000000aphoton', + coins: '20000000000000000000000aphoton', mnemonic: '${SIGNER1_MNEMONIC}', }, { name: 'signer2', diff --git a/tests/integration_tests/cosmoscli.py b/tests/integration_tests/cosmoscli.py index fbc15d75a5..2b2e96c2eb 100644 --- a/tests/integration_tests/cosmoscli.py +++ b/tests/integration_tests/cosmoscli.py @@ -513,9 +513,12 @@ def combine_batch_multisig_tx( def broadcast_tx(self, tx_file, **kwargs): kwargs.setdefault("broadcast_mode", "sync") kwargs.setdefault("output", "json") - return json.loads( + rsp = json.loads( self.raw("tx", "broadcast", tx_file, node=self.node_rpc, **kwargs) ) + if rsp["code"] == 0: + rsp = self.event_query_tx_for(rsp["txhash"]) + return rsp def broadcast_tx_json(self, tx, **kwargs): with tempfile.NamedTemporaryFile("w") as fp: diff --git a/tests/integration_tests/test_batch.py b/tests/integration_tests/test_batch.py index ddf41d14c5..0a481e3546 100644 --- a/tests/integration_tests/test_batch.py +++ b/tests/integration_tests/test_batch.py @@ -79,24 +79,14 @@ def test_multisig(ethermint, tmp_path): cli.make_multisig("multitest1", "signer1", "signer2") multi_addr = cli.address("multitest1") signer1 = cli.address("signer1") - signer2 = cli.address("signer2") - max_gas = 1000000 - gas_price = 10000000000000000 - limit = f"{max_gas*gas_price*2}aphoton" - rsp = cli.grant(signer1, multi_addr, limit) - assert rsp["code"] == 0, rsp["raw_log"] - grant_detail = cli.query_grant(signer1, multi_addr) - assert grant_detail["granter"] == signer1 - assert grant_detail["grantee"] == multi_addr - - denom = "multi" - amt = 10 + denom = "aphoton" + amt = 2000000000000000000 rsp = cli.transfer(signer1, multi_addr, f"{amt}{denom}") assert rsp["code"] == 0, rsp["raw_log"] assert cli.balance(multi_addr, denom=denom) == amt - acc = cli.account(multi_addr) - res = cli.account_by_num(acc["account"]["value"]["base_account"]["account_number"]) + acc = cli.account(multi_addr)["account"]["value"]["base_account"] + res = cli.account_by_num(acc["account_number"]) assert res["account_address"] == multi_addr m_txt = tmp_path / "m.txt" @@ -104,12 +94,12 @@ def test_multisig(ethermint, tmp_path): p2_txt = tmp_path / "p2.txt" tx_txt = tmp_path / "tx.txt" amt = 1 + signer2 = cli.address("signer2") multi_tx = cli.transfer( multi_addr, signer2, f"{amt}{denom}", generate_only=True, - fee_granter=signer1, ) json.dump(multi_tx, m_txt.open("w")) signature1 = cli.sign_multisig_tx(m_txt, multi_addr, "signer1") @@ -125,3 +115,4 @@ def test_multisig(ethermint, tmp_path): json.dump(final_multi_tx, tx_txt.open("w")) rsp = cli.broadcast_tx(tx_txt) assert rsp["code"] == 0, rsp["raw_log"] + assert cli.account(multi_addr)["account"]["value"]["base_account"]["address"] == acc["address"] From 5b9d75f2a93ae5b09e5251595d0b689a268c3bcf Mon Sep 17 00:00:00 2001 From: mmsqe Date: Fri, 27 Sep 2024 13:12:59 +0800 Subject: [PATCH 4/5] pass --- types/account_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/account_test.go b/types/account_test.go index c2391d147b..21458827a6 100644 --- a/types/account_test.go +++ b/types/account_test.go @@ -73,5 +73,5 @@ func TestAminoMarshal(t *testing.T) { Indent: " ", }) _, err := aj.Marshal(msg) - require.ErrorContains(t, err, "thresholdStringEncoder: msg not a multisig.LegacyAminoPubKey") + require.NoError(t, err) } From afff256012b45e3fa40982c7a0d2c9cb30712222 Mon Sep 17 00:00:00 2001 From: mmsqe Date: Fri, 27 Sep 2024 13:49:09 +0800 Subject: [PATCH 5/5] update deps --- go.mod | 8 ++++---- go.sum | 16 ++++++++-------- gomod2nix.toml | 16 ++++++++-------- tests/integration_tests/test_batch.py | 5 ++++- 4 files changed, 24 insertions(+), 21 deletions(-) diff --git a/go.mod b/go.mod index aa32d5f1b5..8b0153ff76 100644 --- a/go.mod +++ b/go.mod @@ -243,10 +243,10 @@ require ( replace ( // release/v0.50.x - cosmossdk.io/client/v2 => github.com/mmsqe/cosmos-sdk/client/v2 v2.0.0-20240927050756-4d8162ae3f7a - cosmossdk.io/store => github.com/mmsqe/cosmos-sdk/store v0.0.0-20240927050756-4d8162ae3f7a - cosmossdk.io/x/tx => github.com/mmsqe/cosmos-sdk/x/tx v0.0.0-20240927050756-4d8162ae3f7a - github.com/cosmos/cosmos-sdk => github.com/mmsqe/cosmos-sdk v0.46.0-beta2.0.20240927050756-4d8162ae3f7a + cosmossdk.io/client/v2 => github.com/crypto-org-chain/cosmos-sdk/client/v2 v2.0.0-20240927054437-c2a1e0678f4b + cosmossdk.io/store => github.com/crypto-org-chain/cosmos-sdk/store v0.0.0-20240927054437-c2a1e0678f4b + cosmossdk.io/x/tx => github.com/crypto-org-chain/cosmos-sdk/x/tx v0.0.0-20240927054437-c2a1e0678f4b + github.com/cosmos/cosmos-sdk => github.com/crypto-org-chain/cosmos-sdk v0.50.6-0.20240927054437-c2a1e0678f4b ) replace ( diff --git a/go.sum b/go.sum index 00e26f628c..9cb024ce7c 100644 --- a/go.sum +++ b/go.sum @@ -411,6 +411,14 @@ github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7Do github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/crypto-org-chain/btree v0.0.0-20240406140148-2687063b042c h1:MOgfS4+FBB8cMkDE2j2VBVsbY+HCkPIu0YsJ/9bbGeQ= github.com/crypto-org-chain/btree v0.0.0-20240406140148-2687063b042c/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY= +github.com/crypto-org-chain/cosmos-sdk v0.50.6-0.20240927054437-c2a1e0678f4b h1:praAPgsPxIr/bcnUalyH6i+VG7o4tbNc5hhqJsUVBEU= +github.com/crypto-org-chain/cosmos-sdk v0.50.6-0.20240927054437-c2a1e0678f4b/go.mod h1:Rb43DdB0i/rKcCN69Tg2X3+zA4WhJ7MC8K3a6Ezh38E= +github.com/crypto-org-chain/cosmos-sdk/client/v2 v2.0.0-20240927054437-c2a1e0678f4b h1:fBJcK1IbrS/GKfPAKNFBdm2aY59Zuruop+8jf2dOFP4= +github.com/crypto-org-chain/cosmos-sdk/client/v2 v2.0.0-20240927054437-c2a1e0678f4b/go.mod h1:W5sR4asmVDUhJpEmuXTUBkk/yEefKlXTjVWcNciVSR0= +github.com/crypto-org-chain/cosmos-sdk/store v0.0.0-20240927054437-c2a1e0678f4b h1:DsLD76+ndjkh/yIXD3l9t0l+6H8ZLUK7d8q3Avi3gEo= +github.com/crypto-org-chain/cosmos-sdk/store v0.0.0-20240927054437-c2a1e0678f4b/go.mod h1:gjE3DZe4t/+VeIk6CmrouyqiuDbZ7QOVDDq3nLqBTpg= +github.com/crypto-org-chain/cosmos-sdk/x/tx v0.0.0-20240927054437-c2a1e0678f4b h1:qwJufXFJ8dt+swi5p8SmTgLTr9ClHIO9GZh1XlO78mE= +github.com/crypto-org-chain/cosmos-sdk/x/tx v0.0.0-20240927054437-c2a1e0678f4b/go.mod h1:RTiTs4hkXG6IvYGknvB8p79YgjYJdcbzLUOGJChsPnY= github.com/crypto-org-chain/go-block-stm v0.0.0-20240912024944-1cd89976aa5e h1:FFpE6+Y4o5GxkeGwUcETM6amgohh7msWvWf1MDqueVc= github.com/crypto-org-chain/go-block-stm v0.0.0-20240912024944-1cd89976aa5e/go.mod h1:iwQTX9xMX8NV9k3o2BiWXA0SswpsZrDk5q3gA7nWYiE= github.com/crypto-org-chain/go-ethereum v1.10.20-0.20240925072350-e05e994a492f h1:jR3nEDZMhGtZODqWFVbaTJ2X26k5r7nkiRk39i+SJ10= @@ -874,14 +882,6 @@ github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyua github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/pointerstructure v1.2.0 h1:O+i9nHnXS3l/9Wu7r4NrEdwA2VFTicjUEN1uBnDo34A= github.com/mitchellh/pointerstructure v1.2.0/go.mod h1:BRAsLI5zgXmw97Lf6s25bs8ohIXc3tViBH44KcwB2g4= -github.com/mmsqe/cosmos-sdk v0.46.0-beta2.0.20240927050756-4d8162ae3f7a h1:4afbdA2U7FZbGBwgISAaXYPMDgNOGHlkeJwvaCTZNVQ= -github.com/mmsqe/cosmos-sdk v0.46.0-beta2.0.20240927050756-4d8162ae3f7a/go.mod h1:Rb43DdB0i/rKcCN69Tg2X3+zA4WhJ7MC8K3a6Ezh38E= -github.com/mmsqe/cosmos-sdk/client/v2 v2.0.0-20240927050756-4d8162ae3f7a h1:GGjqRkX8WZa0T0lQ+Ox4Lab1NwOwqzh9BgnGMG6B0Jw= -github.com/mmsqe/cosmos-sdk/client/v2 v2.0.0-20240927050756-4d8162ae3f7a/go.mod h1:W5sR4asmVDUhJpEmuXTUBkk/yEefKlXTjVWcNciVSR0= -github.com/mmsqe/cosmos-sdk/store v0.0.0-20240927050756-4d8162ae3f7a h1:echGnYz/jaw948wNvvbokO6sy9YJv8kPYUOp1xxw4xo= -github.com/mmsqe/cosmos-sdk/store v0.0.0-20240927050756-4d8162ae3f7a/go.mod h1:gjE3DZe4t/+VeIk6CmrouyqiuDbZ7QOVDDq3nLqBTpg= -github.com/mmsqe/cosmos-sdk/x/tx v0.0.0-20240927050756-4d8162ae3f7a h1:7R2bl/UvKZRXnXFzDaY5cYVku8x/V//zj8VH2ilWn+o= -github.com/mmsqe/cosmos-sdk/x/tx v0.0.0-20240927050756-4d8162ae3f7a/go.mod h1:RTiTs4hkXG6IvYGknvB8p79YgjYJdcbzLUOGJChsPnY= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= diff --git a/gomod2nix.toml b/gomod2nix.toml index b46ad0fb73..ea99361b37 100644 --- a/gomod2nix.toml +++ b/gomod2nix.toml @@ -20,9 +20,9 @@ schema = 3 version = "v0.7.5" hash = "sha256-Nuw697sJr56kU3EU7DV1eYNkyI76psznIVqYAV6RfbQ=" [mod."cosmossdk.io/client/v2"] - version = "v2.0.0-20240927050756-4d8162ae3f7a" + version = "v2.0.0-20240927054437-c2a1e0678f4b" hash = "sha256-60hmufv3Ml4Pv3zNwgn8eeqlEINOR6n9MKr2QHddoxo=" - replaced = "github.com/mmsqe/cosmos-sdk/client/v2" + replaced = "github.com/crypto-org-chain/cosmos-sdk/client/v2" [mod."cosmossdk.io/collections"] version = "v0.4.0" hash = "sha256-minFyzgO/D+Oda4E3B1qvOAN5qd65SjS6nmjca4cp/8=" @@ -42,9 +42,9 @@ schema = 3 version = "v1.3.0" hash = "sha256-EEFK43Cr0g0ndhQhkIKher0FqV3mvkmE9z0sP7uVSHg=" [mod."cosmossdk.io/store"] - version = "v0.0.0-20240927050756-4d8162ae3f7a" + version = "v0.0.0-20240927054437-c2a1e0678f4b" hash = "sha256-Dm3sSZNJBcnBF33PULoTpK4rkNQbsZl0DfTqH1GPCQM=" - replaced = "github.com/mmsqe/cosmos-sdk/store" + replaced = "github.com/crypto-org-chain/cosmos-sdk/store" [mod."cosmossdk.io/tools/confix"] version = "v0.1.1" hash = "sha256-/Et2FFhb4XfakbLFvGQK3QxN5Y7alzO+DGfi2/EWbxo=" @@ -55,9 +55,9 @@ schema = 3 version = "v0.1.0" hash = "sha256-/gWvrqvy6bW90+NU66T+9QysYgvG1VbwfYJZ8tkqpeA=" [mod."cosmossdk.io/x/tx"] - version = "v0.0.0-20240927050756-4d8162ae3f7a" + version = "v0.0.0-20240927054437-c2a1e0678f4b" hash = "sha256-5HPcm3oCWAC9oKOGMP+PVMdCPF7ELVHmxpN1FasUgAY=" - replaced = "github.com/mmsqe/cosmos-sdk/x/tx" + replaced = "github.com/crypto-org-chain/cosmos-sdk/x/tx" [mod."cosmossdk.io/x/upgrade"] version = "v0.1.1" hash = "sha256-bM9ybpaibMH7k4M6/QAXCZ3fJcADfJHxvMgp4AVUihs=" @@ -163,9 +163,9 @@ schema = 3 version = "v1.0.0-beta.5" hash = "sha256-Fy/PbsOsd6iq0Njy3DVWK6HqWsogI+MkE8QslHGWyVg=" [mod."github.com/cosmos/cosmos-sdk"] - version = "v0.46.0-beta2.0.20240927050756-4d8162ae3f7a" + version = "v0.50.6-0.20240927054437-c2a1e0678f4b" hash = "sha256-/5W/4n6getoWtj/MIotvel86dcJUD7jm9a4aDdDD95w=" - replaced = "github.com/mmsqe/cosmos-sdk" + replaced = "github.com/crypto-org-chain/cosmos-sdk" [mod."github.com/cosmos/go-bip39"] version = "v1.0.0" hash = "sha256-Qm2aC2vaS8tjtMUbHmlBSagOSqbduEEDwc51qvQaBmA=" diff --git a/tests/integration_tests/test_batch.py b/tests/integration_tests/test_batch.py index 0a481e3546..80181d45c0 100644 --- a/tests/integration_tests/test_batch.py +++ b/tests/integration_tests/test_batch.py @@ -115,4 +115,7 @@ def test_multisig(ethermint, tmp_path): json.dump(final_multi_tx, tx_txt.open("w")) rsp = cli.broadcast_tx(tx_txt) assert rsp["code"] == 0, rsp["raw_log"] - assert cli.account(multi_addr)["account"]["value"]["base_account"]["address"] == acc["address"] + assert ( + cli.account(multi_addr)["account"]["value"]["base_account"]["address"] + == acc["address"] + )