From 4a4e54b1ce7627e15c8ece17b8f1c048350f3ce4 Mon Sep 17 00:00:00 2001 From: Milan Steiner Date: Thu, 7 Apr 2022 15:48:29 +0200 Subject: [PATCH] Adding more tests --- .../src/modules/vesting/aminomessages.spec.ts | 44 +++++++++++++++++- .../src/modules/vesting/messages.spec.ts | 45 +++++++++++++++++++ 2 files changed, 87 insertions(+), 2 deletions(-) create mode 100644 packages/stargate/src/modules/vesting/messages.spec.ts diff --git a/packages/stargate/src/modules/vesting/aminomessages.spec.ts b/packages/stargate/src/modules/vesting/aminomessages.spec.ts index a498efcc..ef31e2fd 100644 --- a/packages/stargate/src/modules/vesting/aminomessages.spec.ts +++ b/packages/stargate/src/modules/vesting/aminomessages.spec.ts @@ -1,12 +1,21 @@ /* eslint-disable @typescript-eslint/naming-convention */ -import { AminoMsg, coins } from "@cosmjs/amino"; +import { coins, Secp256k1HdWallet } from "@cosmjs/amino"; import { MsgCreateVestingAccount } from "cosmjs-types/cosmos/vesting/v1beta1/tx"; import Long from "long"; import { AminoTypes } from "../../aminotypes"; +import { SigningStargateClient } from "../../signingstargateclient"; +import { isDeliverTxSuccess } from "../../stargateclient"; +import { + defaultSigningClientOptions, + faucet, + pendingWithoutSimapp, + simapp, + unused, +} from "../../testutils.spec"; import { AminoMsgCreateVestingAccount, createVestingAminoConverters } from "./aminomessages"; -describe("AminoTypes", () => { +describe("VestingExtension Amino", () => { describe("toAmino", () => { it("works for MsgCreateVestingAccount", () => { const msg: MsgCreateVestingAccount = { @@ -61,3 +70,34 @@ describe("AminoTypes", () => { }); }); }); + +describe("Signing and broadcasting", () => { + it("works with Amino Signing", async () => { + pendingWithoutSimapp(); + const wallet = await Secp256k1HdWallet.fromMnemonic(faucet.mnemonic); + const client = await SigningStargateClient.connectWithSigner( + simapp.tendermintUrl, + wallet, + defaultSigningClientOptions, + ); + const memo = "Vesting is cool!"; + const fee = { + amount: coins(2000, "ucosm"), + gas: "180000", // 180k + }; + + const vestingMsg = { + typeUrl: "/cosmos.vesting.v1beta1.MsgCreateVestingAccount", + value: MsgCreateVestingAccount.fromPartial({ + fromAddress: faucet.address0, + toAddress: unused.address, + amount: coins(1234, "ucosm"), + endTime: Long.fromString("1838718434"), + delayed: true, + }), + }; + + const result = await client.signAndBroadcast(faucet.address0, [vestingMsg], fee, memo); + expect(isDeliverTxSuccess(result)).toEqual(true); + }); +}); diff --git a/packages/stargate/src/modules/vesting/messages.spec.ts b/packages/stargate/src/modules/vesting/messages.spec.ts new file mode 100644 index 00000000..54ae1397 --- /dev/null +++ b/packages/stargate/src/modules/vesting/messages.spec.ts @@ -0,0 +1,45 @@ +import { coins } from "@cosmjs/amino"; +import { DirectSecp256k1HdWallet } from "@cosmjs/proto-signing"; +import { MsgCreateVestingAccount } from "cosmjs-types/cosmos/vesting/v1beta1/tx"; +import Long from "long"; + +import { SigningStargateClient } from "../../signingstargateclient"; +import { isDeliverTxSuccess } from "../../stargateclient"; +import { + defaultSigningClientOptions, + faucet, + makeRandomAddress, + pendingWithoutSimapp, + simapp, +} from "../../testutils.spec"; + +describe("VestingExtension direct", () => { + it("works with direct signing", async () => { + pendingWithoutSimapp(); + const wallet = await DirectSecp256k1HdWallet.fromMnemonic(faucet.mnemonic); + const client = await SigningStargateClient.connectWithSigner( + simapp.tendermintUrl, + wallet, + defaultSigningClientOptions, + ); + const memo = "Vesting is cool!"; + const fee = { + amount: coins(2000, "ucosm"), + gas: "180000", // 180k + }; + + const vestingMsg = { + typeUrl: "/cosmos.vesting.v1beta1.MsgCreateVestingAccount", + value: MsgCreateVestingAccount.fromPartial({ + fromAddress: faucet.address0, + toAddress: makeRandomAddress(), + amount: coins(1234, "ucosm"), + endTime: Long.fromString("1838718434"), + delayed: true, + }), + }; + + const result = await client.signAndBroadcast(faucet.address0, [vestingMsg], fee, memo); + expect(isDeliverTxSuccess(result)).toEqual(true); + }); +});