From 5db290f94ce0e1e09fbfdccd3291d56a3bbb3d9f Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Wed, 17 Apr 2024 12:19:32 +0200 Subject: [PATCH] Improve Amino JSON test coverage --- .../src/signingcosmwasmclient.spec.ts | 90 +++++++++++++------ .../stargate/src/modules/gov/messages.spec.ts | 4 +- .../src/modules/staking/messages.spec.ts | 4 +- .../src/modules/vesting/messages.spec.ts | 2 +- .../src/signingstargateclient.spec.ts | 4 +- 5 files changed, 68 insertions(+), 36 deletions(-) diff --git a/packages/cosmwasm-stargate/src/signingcosmwasmclient.spec.ts b/packages/cosmwasm-stargate/src/signingcosmwasmclient.spec.ts index 567fc0707e..c136c5d6eb 100644 --- a/packages/cosmwasm-stargate/src/signingcosmwasmclient.spec.ts +++ b/packages/cosmwasm-stargate/src/signingcosmwasmclient.spec.ts @@ -126,7 +126,7 @@ describe("SigningCosmWasmClient", () => { client.disconnect(); }); - it("works with legacy Amino signer", async () => { + it("works with Amino JSON signer", async () => { pendingWithoutWasmd(); const wallet = await Secp256k1HdWallet.fromMnemonic(alice.mnemonic, { prefix: wasmd.prefix }); const client = await SigningCosmWasmClient.connectWithSigner( @@ -147,7 +147,7 @@ describe("SigningCosmWasmClient", () => { client.disconnect(); }); - it("works with legacy Amino signer (instantiatePermission set)", async () => { + it("works with Amino JSON signer (instantiatePermission set)", async () => { pendingWithoutWasmd(); const wallet = await Secp256k1HdWallet.fromMnemonic(alice.mnemonic, { prefix: wasmd.prefix }); const client = await SigningCosmWasmClient.connectWithSigner( @@ -285,7 +285,7 @@ describe("SigningCosmWasmClient", () => { client.disconnect(); }); - it("works with legacy Amino signer", async () => { + it("works with Amino JSON signer", async () => { pendingWithoutWasmd(); const wallet = await Secp256k1HdWallet.fromMnemonic(alice.mnemonic, { prefix: wasmd.prefix }); const client = await SigningCosmWasmClient.connectWithSigner( @@ -293,8 +293,9 @@ describe("SigningCosmWasmClient", () => { wallet, defaultSigningClientOptions, ); + const funds = [coin(1234, "ucosm"), coin(321, "ustake")]; - // With admin + // Without admin await client.instantiate( alice.address0, deployedHackatom.codeId, @@ -304,10 +305,13 @@ describe("SigningCosmWasmClient", () => { }, "contract 1", defaultInstantiateFee, - { admin: makeRandomAddress() }, + { + funds: funds, + memo: "instantiate it", + }, ); - // Without admin + // With admin await client.instantiate( alice.address0, deployedHackatom.codeId, @@ -317,6 +321,10 @@ describe("SigningCosmWasmClient", () => { }, "contract 1", defaultInstantiateFee, + { + funds: funds, + admin: makeRandomAddress(), + }, ); client.disconnect(); @@ -368,41 +376,65 @@ describe("SigningCosmWasmClient", () => { client.disconnect(); }); - it("works with Amino JSON signing", async () => { + it("works with Amino JSON signer", async () => { pendingWithoutWasmd(); - const aminoJsonWallet = await Secp256k1HdWallet.fromMnemonic(alice.mnemonic, { + const wallet = await Secp256k1HdWallet.fromMnemonic(alice.mnemonic, { prefix: wasmd.prefix, }); const client = await SigningCosmWasmClient.connectWithSigner( wasmd.endpoint, - aminoJsonWallet, + wallet, defaultSigningClientOptions, ); const { codeId } = await client.upload(alice.address0, getHackatom().data, defaultUploadFee); const funds = [coin(1234, "ucosm"), coin(321, "ustake")]; - const salt = Random.getBytes(64); const msg = { verifier: alice.address0, beneficiary: makeRandomAddress(), }; - const { contractAddress } = await client.instantiate2( - alice.address0, - codeId, - salt, - msg, - "My cool label--", - defaultInstantiateFee, - { - memo: "Let's see if the memo is used", - funds: funds, - }, - ); + // Without admin + { + const salt = Random.getBytes(64); + const { contractAddress } = await client.instantiate2( + alice.address0, + codeId, + salt, + msg, + "My cool label--", + defaultInstantiateFee, + { + memo: "Let's see if the memo is used", + funds: funds, + }, + ); + const ucosmBalance = await client.getBalance(contractAddress, "ucosm"); + const ustakeBalance = await client.getBalance(contractAddress, "ustake"); + expect(ucosmBalance).toEqual(funds[0]); + expect(ustakeBalance).toEqual(funds[1]); + } - const ucosmBalance = await client.getBalance(contractAddress, "ucosm"); - const ustakeBalance = await client.getBalance(contractAddress, "ustake"); - expect(ucosmBalance).toEqual(funds[0]); - expect(ustakeBalance).toEqual(funds[1]); + // With admin + { + const salt = Random.getBytes(64); + const { contractAddress } = await client.instantiate2( + alice.address0, + codeId, + salt, + msg, + "My cool label--", + defaultInstantiateFee, + { + memo: "Let's see if the memo is used", + funds: funds, + admin: makeRandomAddress(), + }, + ); + const ucosmBalance = await client.getBalance(contractAddress, "ucosm"); + const ustakeBalance = await client.getBalance(contractAddress, "ustake"); + expect(ucosmBalance).toEqual(funds[0]); + expect(ustakeBalance).toEqual(funds[1]); + } client.disconnect(); }); @@ -549,7 +581,7 @@ describe("SigningCosmWasmClient", () => { client.disconnect(); }); - it("works with legacy Amino signer", async () => { + it("works with Amino JSON signer", async () => { pendingWithoutWasmd(); const wallet = await Secp256k1HdWallet.fromMnemonic(alice.mnemonic, { prefix: wasmd.prefix }); const client = await SigningCosmWasmClient.connectWithSigner( @@ -652,7 +684,7 @@ describe("SigningCosmWasmClient", () => { client.disconnect(); }); - it("works with legacy Amino signer", async () => { + it("works with Amino JSON signer", async () => { pendingWithoutWasmd(); const wallet = await Secp256k1HdWallet.fromMnemonic(alice.mnemonic, { prefix: wasmd.prefix }); const client = await SigningCosmWasmClient.connectWithSigner( @@ -813,7 +845,7 @@ describe("SigningCosmWasmClient", () => { client.disconnect(); }); - it("works with legacy Amino signer", async () => { + it("works with Amino JSON signer", async () => { pendingWithoutWasmd(); const wallet = await Secp256k1HdWallet.fromMnemonic(alice.mnemonic, { prefix: wasmd.prefix }); const client = await SigningCosmWasmClient.connectWithSigner( diff --git a/packages/stargate/src/modules/gov/messages.spec.ts b/packages/stargate/src/modules/gov/messages.spec.ts index da995ad07e..dbd8becf3c 100644 --- a/packages/stargate/src/modules/gov/messages.spec.ts +++ b/packages/stargate/src/modules/gov/messages.spec.ts @@ -148,7 +148,7 @@ describe("gov messages", () => { client.disconnect(); }); - it("works with Amino JSON sign mode", async () => { + it("works with Amino JSON signer", async () => { pendingWithoutSimapp(); assert(voterWalletAmino); assert(proposalId, "Missing proposal ID"); @@ -206,7 +206,7 @@ describe("gov messages", () => { client.disconnect(); }); - it("works with Amino JSON sign mode", async () => { + it("works with Amino JSON signer", async () => { pendingWithoutSimapp(); if (simapp50Enabled()) pending("Not working, see https://github.com/cosmos/cosmos-sdk/issues/18546"); assert(voterWalletAmino); diff --git a/packages/stargate/src/modules/staking/messages.spec.ts b/packages/stargate/src/modules/staking/messages.spec.ts index 1fe96c8569..36c4b5093b 100644 --- a/packages/stargate/src/modules/staking/messages.spec.ts +++ b/packages/stargate/src/modules/staking/messages.spec.ts @@ -94,7 +94,7 @@ describe("staking messages", () => { client.disconnect(); }); - it("works with Amino JSON sign mode", async () => { + it("works with Amino JSON signer", async () => { pendingWithoutSimapp(); if (simapp50Enabled()) pending("Not working, see https://github.com/cosmos/cosmos-sdk/issues/18546"); @@ -235,7 +235,7 @@ describe("staking messages", () => { client.disconnect(); }); - it("works with Amino JSON sign mode", async () => { + it("works with Amino JSON signer", async () => { pendingWithoutSimapp(); if (simapp50Enabled()) pending("Not working, see https://github.com/cosmos/cosmos-sdk/issues/18546"); diff --git a/packages/stargate/src/modules/vesting/messages.spec.ts b/packages/stargate/src/modules/vesting/messages.spec.ts index 64649fef58..8dd553a4b0 100644 --- a/packages/stargate/src/modules/vesting/messages.spec.ts +++ b/packages/stargate/src/modules/vesting/messages.spec.ts @@ -45,7 +45,7 @@ describe("vesting messages", () => { client.disconnect(); }); - it("works with Amino JSON sign mode", async () => { + it("works with Amino JSON signer", async () => { pendingWithoutSimapp46OrHigher(); // Amino JSON broken on chain before Cosmos SDK 0.46 const wallet = await Secp256k1HdWallet.fromMnemonic(faucet.mnemonic); const client = await SigningStargateClient.connectWithSigner( diff --git a/packages/stargate/src/signingstargateclient.spec.ts b/packages/stargate/src/signingstargateclient.spec.ts index 399186c7f0..e8d7f8aedd 100644 --- a/packages/stargate/src/signingstargateclient.spec.ts +++ b/packages/stargate/src/signingstargateclient.spec.ts @@ -133,7 +133,7 @@ describe("SigningStargateClient", () => { expect(after).toEqual(amount[0]); }); - it("works with legacy Amino signer", async () => { + it("works with Amino JSON signer", async () => { pendingWithoutSimapp(); const wallet = await Secp256k1HdWallet.fromMnemonic(faucet.mnemonic); const client = await SigningStargateClient.connectWithSigner( @@ -301,7 +301,7 @@ describe("SigningStargateClient", () => { } }); - it("works with Amino signing", async () => { + it("works with Amino JSON signer", async () => { pending("We cannot test this easily anymore since the IBC module was removed from simapp"); const wallet = await Secp256k1HdWallet.fromMnemonic(faucet.mnemonic); const client = await SigningStargateClient.connectWithSigner(