Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test and upgrade to wasmd 0.51 in CI #1579

Merged
merged 9 commits into from
Apr 22, 2024
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"
Loading