Skip to content

Commit

Permalink
Merge pull request #1579 from cosmos/wasmd-0.51
Browse files Browse the repository at this point in the history
Test and upgrade to wasmd 0.51 in CI
  • Loading branch information
webmaster128 committed Apr 22, 2024
2 parents f944892 + e6361e9 commit 5c1ec56
Show file tree
Hide file tree
Showing 6 changed files with 126 additions and 47 deletions.
157 changes: 118 additions & 39 deletions packages/cosmwasm-stargate/src/signingcosmwasmclient.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -126,24 +126,75 @@ describe("SigningCosmWasmClient", () => {
client.disconnect();
});

it("works with legacy Amino signer access type", async () => {
it("works with Amino JSON signer", async () => {
pendingWithoutWasmd();
pending("wasmd 0.50 does not work with Amino JSON signing");
const wallet = await Secp256k1HdWallet.fromMnemonic(alice.mnemonic, { prefix: wasmd.prefix });
const options = { ...defaultSigningClientOptions, prefix: wasmd.prefix };
const client = await SigningCosmWasmClient.connectWithSigner(wasmd.endpoint, wallet, options);
const client = await SigningCosmWasmClient.connectWithSigner(
wasmd.endpoint,
wallet,
defaultSigningClientOptions,
);
const wasm = getHackatom().data;
const { codeId, checksum, originalSize, compressedSize } = await client.upload(
alice.address0,
wasm,
defaultUploadFee,
);
expect(checksum).toEqual(toHex(sha256(wasm)));
expect(originalSize).toEqual(wasm.length);
expect(compressedSize).toBeLessThan(wasm.length * 0.5);
expect(codeId).toBeGreaterThanOrEqual(1);
client.disconnect();
});

it("works with Amino JSON signer (instantiatePermission set to one address)", async () => {
pending("Known issue: https://github.com/CosmWasm/wasmd/issues/1863");
pendingWithoutWasmd();
const wallet = await Secp256k1HdWallet.fromMnemonic(alice.mnemonic, { prefix: wasmd.prefix });
const client = await SigningCosmWasmClient.connectWithSigner(
wasmd.endpoint,
wallet,
defaultSigningClientOptions,
);
const wasm = getHackatom().data;
const instantiatePermission = AccessConfig.fromPartial({
permission: AccessType.ACCESS_TYPE_ANY_OF_ADDRESSES,
addresses: [makeRandomAddress()],
});
const { codeId, checksum, originalSize, compressedSize } = await client.upload(
alice.address0,
wasm,
defaultUploadFee,
"test memo",
instantiatePermission,
);
expect(checksum).toEqual(toHex(sha256(wasm)));
expect(originalSize).toEqual(wasm.length);
expect(compressedSize).toBeLessThan(wasm.length * 0.5);
expect(codeId).toBeGreaterThanOrEqual(1);
client.disconnect();
});

it("works with Amino JSON signer (instantiatePermission set to everybody)", async () => {
pending("Known issue: https://github.com/CosmWasm/wasmd/issues/1863");
pendingWithoutWasmd();
const wallet = await Secp256k1HdWallet.fromMnemonic(alice.mnemonic, { prefix: wasmd.prefix });
const client = await SigningCosmWasmClient.connectWithSigner(
wasmd.endpoint,
wallet,
defaultSigningClientOptions,
);
const wasm = getHackatom().data;
const accessConfig: AccessConfig = {
const instantiatePermission = AccessConfig.fromPartial({
permission: AccessType.ACCESS_TYPE_EVERYBODY,
address: "",
addresses: [],
};
});
const { codeId, checksum, originalSize, compressedSize } = await client.upload(
alice.address0,
wasm,
defaultUploadFee,
"test memo",
accessConfig,
instantiatePermission,
);
expect(checksum).toEqual(toHex(sha256(wasm)));
expect(originalSize).toEqual(wasm.length);
Expand Down Expand Up @@ -262,17 +313,17 @@ describe("SigningCosmWasmClient", () => {
client.disconnect();
});

it("works with legacy Amino signer", async () => {
it("works with Amino JSON signer", async () => {
pendingWithoutWasmd();
pending("wasmd 0.50 does not work with Amino JSON signing");
const wallet = await Secp256k1HdWallet.fromMnemonic(alice.mnemonic, { prefix: wasmd.prefix });
const client = await SigningCosmWasmClient.connectWithSigner(
wasmd.endpoint,
wallet,
defaultSigningClientOptions,
);
const funds = [coin(1234, "ucosm"), coin(321, "ustake")];

// With admin
// Without admin
await client.instantiate(
alice.address0,
deployedHackatom.codeId,
Expand All @@ -282,10 +333,13 @@ describe("SigningCosmWasmClient", () => {
},
"contract 1",
defaultInstantiateFee,
{ admin: makeRandomAddress() },
{
funds: funds,
memo: "instantiate it",
},
);

// Without admin
// With admin
await client.instantiate(
alice.address0,
deployedHackatom.codeId,
Expand All @@ -295,6 +349,10 @@ describe("SigningCosmWasmClient", () => {
},
"contract 1",
defaultInstantiateFee,
{
funds: funds,
admin: makeRandomAddress(),
},
);

client.disconnect();
Expand Down Expand Up @@ -346,42 +404,65 @@ describe("SigningCosmWasmClient", () => {
client.disconnect();
});

it("works with Amino JSON signing", async () => {
it("works with Amino JSON signer", async () => {
pendingWithoutWasmd();
pending("wasmd 0.50 does not work with Amino JSON signing");
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();
});
Expand Down Expand Up @@ -528,9 +609,8 @@ describe("SigningCosmWasmClient", () => {
client.disconnect();
});

it("works with legacy Amino signer", async () => {
it("works with Amino JSON signer", async () => {
pendingWithoutWasmd();
pending("wasmd 0.50 does not work with Amino JSON signing");
const wallet = await Secp256k1HdWallet.fromMnemonic(alice.mnemonic, { prefix: wasmd.prefix });
const client = await SigningCosmWasmClient.connectWithSigner(
wasmd.endpoint,
Expand Down Expand Up @@ -632,9 +712,8 @@ describe("SigningCosmWasmClient", () => {
client.disconnect();
});

it("works with legacy Amino signer", async () => {
it("works with Amino JSON signer", async () => {
pendingWithoutWasmd();
pending("wasmd 0.50 does not work with Amino JSON signing");
const wallet = await Secp256k1HdWallet.fromMnemonic(alice.mnemonic, { prefix: wasmd.prefix });
const client = await SigningCosmWasmClient.connectWithSigner(
wasmd.endpoint,
Expand Down Expand Up @@ -794,7 +873,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(
Expand Down
4 changes: 2 additions & 2 deletions packages/stargate/src/modules/gov/messages.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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");
Expand Down Expand Up @@ -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);
Expand Down
4 changes: 2 additions & 2 deletions packages/stargate/src/modules/staking/messages.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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");

Expand Down Expand Up @@ -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");

Expand Down
2 changes: 1 addition & 1 deletion packages/stargate/src/modules/vesting/messages.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down
4 changes: 2 additions & 2 deletions packages/stargate/src/signingstargateclient.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down Expand Up @@ -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(
Expand Down
2 changes: 1 addition & 1 deletion scripts/wasmd/env
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Choose from https://hub.docker.com/r/cosmwasm/wasmd/tags
REPOSITORY="cosmwasm/wasmd"
VERSION="v0.50.0"
VERSION="v0.51.0-rc.5"

CONTAINER_NAME="wasmd"

0 comments on commit 5c1ec56

Please sign in to comment.