# CHANGELOG The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] ### Changed - @cosmjs/stargate: change `packetCommitment` parameter `sequence` type from `Long` to `number` ## [0.28.6] - 2022-06-08 ## [0.28.5] - 2022-06-08 ### Added - @cosmjs/math: Add `Decimal.floor` and `Decimal.ceil`. - @cosmjs/tendermint-rpc: Add `num_unconfirmed_txs` endpoint. ([#1150]) [#1150]: https://github.com/cosmos/cosmjs/pull/1150 ### Changed - @cosmjs/stargate: Let `calculateFee` handle fee amounts that exceed the safe integer range. - @cosmjs/cosmwasm-stargate, @cosmjs/stargate, @cosmjs/proto-signing: Upgrade protobufjs to 6.11. ### Fixed - @cosmjs/tendermint-rpc: Fix block results validator update decoder. ([#1151]) [#1151]: https://github.com/cosmos/cosmjs/issues/1151 ## [0.28.4] - 2022-04-15 ### Added - @cosmjs/math: Add `Decimal.zero` and `Decimal.one` ([#1110]). - @cosmjs/amino: Add `addCoins` ([#1116]) - @cosmjs/stargate: Add `StargateClient.getBalanceStaked()` to query the sum of all staked balance. ([#1116]) ### Changed - @cosmjs/faucet: Docker build image is 90 % smaller now (from 500 MB to 50 MB) due to build system optimizations ([#1120], [#1121]). - @cosmjs/cosmwasm-stargate: `CosmWasmClient.connect` and `SigningCosmWasmClient.connectWithSigner` now accept custom HTTP headers ([#1007]) - @cosmjs/stargate: `StargateClient.connect` and `SigningStargateClient.connectWithSigner` now accept custom HTTP headers ([#1007]) - @cosmjs/tendermint-rpc: `Tendermint34Client.connect` now accepts custom HTTP headers ([#1007]). [#1007]: https://github.com/cosmos/cosmjs/issues/1007 [#1110]: https://github.com/cosmos/cosmjs/issues/1110 [#1120]: https://github.com/cosmos/cosmjs/pull/1120 [#1121]: https://github.com/cosmos/cosmjs/pull/1121 [#1116]: https://github.com/cosmos/cosmjs/issues/1116 ## [0.28.3] - 2022-04-11 ### Added - @cosmjs/encoding: Add missing export: `normalizeBech32`. ## [0.28.2] - 2022-04-07 ### Added - @cosmjs/encoding: Create `normalizeBech32`. - @cosmjs/stargate: Added support for `MsgCreateVestingAccount` ([#1074]). Please note that Amino JSON signing is currently not available for this type ([#1115]). [#1074]: https://github.com/cosmos/cosmjs/issues/1074 [#1115]: https://github.com/cosmos/cosmjs/issues/1115 ## [0.28.1] - 2022-03-30 ### Added - @cosmjs/stargate: Added the ability to specify a custom account parser for `StargateClient` ### Fixed - @cosmjs/proto-signing: Add missing runtime dependencies @cosmjs/encoding and @cosmjs/utils. - @cosmjs/tendermint-rpc: Add missing runtime dependency @cosmjs/utils. ## [0.28.0] - 2022-03-17 ### Changed - all: The TypeScript compilation target is now ES2018. - @cosmjs/crypto: Add `Secp256k1.uncompressPubkey`. - @cosmjs/crypto: Replace hashing implementations with @noble/hashes ([#960]). - @cosmjs/faucet: Set default value of `FAUCET_GAS_LIMIT` to 100_000 to better support Cosmos SDK 0.45 chains. - @cosmjs/stargate: The `AminoTypes` now always requires an argument of type `AminoTypesOptions`. This is an object with a required `prefix` field. Before the prefix defaulted to "cosmos" but this is almost never the right choice for CosmJS users that need to add Amino types manually. ([#989]) - @cosmjs/cosmwasm-stargate: `height`, `gasWanted` and `gasUsed` have been added to all result types of `SigningCosmWasmClient` - @cosmjs/stargate: `MsgSend` and `Coin` are now parts of `defaultRegistryTypes`. ([#994]) - @cosmjs/proto-signing: `Registry`'s constructor can now override default types. ([#994]) - @cosmjs/tendermint-rpc: The property `evidence` in the interface `Block` is now non-optional. ([#1011]) - @cosmjs/stargate: Added the following message types to stargate's `defaultRegistryTypes`: ([#1026]) - cosmos.authz.v1beta1.MsgGrant - cosmos.authz.v1beta1.MsgExec - cosmos.authz.v1beta1.MsgRevoke - cosmos.feegrant.v1beta1.MsgGrantAllowance - cosmos.feegrant.v1beta1.MsgRevokeAllowance - @cosmjs/stargate: In `AminoTypes` the uniqueness of the Amino type identifier is checked in `fromAmino` now instead of the constructor. This only affects you if multiple different protobuf type URLs map to the same Amino type identifier which should not be the case anyways. - @cosmjs/stargate: Added support for slashing queries ([#927]) - @cosmjs/ledger-amino: Renamed `LaunchpadLedger` to `LedgerConnector` ([#955]) - @cosmjs/encoding: Created `toBech32()` and `fromBech32()`. Class Bech32 is now deprecated and should not longer be used. ([#1053]) - @cosmjs/crypto: Use a custom BIP-39 implementation to reduce external dependencies. This should also reduce the bundle size as only the English wordlist is shipped. ([#966]) - @cosmjs/cli: Rename binary `cosmwasm-cli` to `cosmjs-cli` ([#1033]). - @cosmjs/stargate: Added Authz queries. ([#1080]). - @cosmjs/stargate & @cosmjs/cosmwasm-stargate: Removed default types from AminoTypes. ([#1079]) - @cosmjs/cosmwasm-stargate: getCodes() automatically loops through all pagination pages now. ([#1077]) - @cosmjs/stargate & @cosmjs/cosmwasm-stargate: Timeout Errors shows more relevant information about the timeout. ([#1066]) [#927]: https://github.com/cosmos/cosmjs/issues/927 [#955]: https://github.com/cosmos/cosmjs/issues/955 [#960]: https://github.com/cosmos/cosmjs/pull/960 [#966]: https://github.com/cosmos/cosmjs/pull/966 [#989]: https://github.com/cosmos/cosmjs/issues/989 [#994]: https://github.com/cosmos/cosmjs/issues/994 [#1011]: https://github.com/cosmos/cosmjs/issues/1011 [#1026]: https://github.com/cosmos/cosmjs/issues/1026 [#1033]: https://github.com/cosmos/cosmjs/issues/1033 [#1053]: https://github.com/cosmos/cosmjs/issues/1053 [#1066]: https://github.com/cosmos/cosmjs/issues/1066 [#1077]: https://github.com/cosmos/cosmjs/issues/1077 [#1078]: https://github.com/cosmos/cosmjs/issues/1078 [#1079]: https://github.com/cosmos/cosmjs/issues/1079 [#1080]: https://github.com/cosmos/cosmjs/issues/1080 ### Removed - @cosmjs/crypto: Remove the SHA1 implementation (`Sha1` and `sha1`) as it is not used in the Cosmos tech stack and not implemented in the hashing lib we want to migrate to ([#1003]). Also it has known weaknesses. - @cosmjs/launchpad: Package was removed as no support for Cosmos SDK 0.37-0.39 is needed anymore ([#947]). [#947]: https://github.com/cosmos/cosmjs/issues/947 [#1003]: https://github.com/cosmos/cosmjs/issues/1003 ## [0.27.1] - 2022-01-26 ### Added - @cosmjs/cosmwasm-stargate: Add `fromBinary`/`toBinary` to convert between JavaScript objects and the JSON representation of `cosmwasm_std::Binary` (base64). - @cosmjs/cosmwasm-stargate: Export `WasmExtension` and `setupWasmExtension`. - @cosmjs/ledger-amino: Added `LedgerSigner.showAddress` and `LaunchpadLedger.showAddress` to show the user's address in the Ledger screen. ### Changed - @cosmjs/stargate: The error messages for missing types in `AminoTypes` now contain the type that was searched for ([#990]). - @cosmjs/tendermint-rpc: Change the `Evidence` type to `any` and avoid decoding it. The structure we had before was outdated and trying to decode it led to exceptions at runtime when a block with actual values was encountered. ([#980]) [#990]: https://github.com/cosmos/cosmjs/pull/990 [#980]: https://github.com/cosmos/cosmjs/issues/980 ## [0.27.0] - 2022-01-10 ### Added - @cosmjs/tendermint-rpc: Add `hash` field to `BroadcastTxAsyncResponse` ([#938]). - @cosmjs/stargate: Add `denomMetadata` and `denomsMetadata` to `BankExtension` ([#932]). - @cosmjs/stargate: Merge `DeliverTxFailure` and `DeliverTxSuccess` into a single `DeliverTxResponse` ([#878], [#949]). Add `assertIsDeliverTxFailure`. - @cosmjs/stargate: Created initial `MintExtension`. - @cosmjs/stargate: Created `types.Dec` decoder function `decodeCosmosSdkDecFromProto`. - @cosmjs/amino: Added `StdTx`, `isStdTx` and `makeStdTx` and removed them from @cosmjs/launchpad. They are re-exported in @cosmjs/launchpad for backwards compatibility. - @cosmjs/stargate: Add `GasPrice.toString`. - @cosmjs/faucet: Added a new functionality to faucet: Each address is only allowed to get credits once every 24h to prevent draining. ([#962])) [#962]: https://github.com/cosmos/cosmjs/issues/962 [#938]: https://github.com/cosmos/cosmjs/issues/938 [#932]: https://github.com/cosmos/cosmjs/issues/932 [#878]: https://github.com/cosmos/cosmjs/issues/878 [#949]: https://github.com/cosmos/cosmjs/issues/949 ### Fixed - @cosmjs/tendermint-rpc: Add missing `BlockSearchResponse` case to `Response`. ### Changed - @cosmjs/stargate: Remove verified queries from `AuthExtension` and `BankExtension` as well as `StargateClient.getAccountVerified` because the storage layout is not stable across multiple Cosmos SDK releases. Verified queries remain available in the `IbcExtension` because for IBC the storage layout is standardized. Such queries can still be implemented in CosmJS caller code that only needs to support one backend. ([#865]) - @cosmjs/tendermint-rpc: Remove default URL from `HttpClient` and `WebsocketClient` constructors ([#897]). - all: Upgrade cosmjs-types to 0.4. This includes the types of the Cosmos SDK 0.44 modules x/authz and x/feegrant. It causes a few breaking changes by adding fields to interfaces as well as changing `Date` to a `Timestamp` object. ([#928]) - @cosmjs/stargate and @cosmjs/cosmwasm-stargate: Add simulation support ([#931]). - @cosmjs/cosmwasm-stargate: Rename `BroadcastTx{Success,Failure}` to `DeliverTx{Success,Failure}`, `BroadcastTxResponse` to `DeliverTxResponse`, `isBroadcastTx{Success,Failure}` to `isDeliverTx{Success,Failure}` and `assertIsBroadcastTxSuccess` to `assertIsDeliverTxSuccess`. ([#946]) - @cosmjs/tendermint-rpc: Remove `Tendermint33Client` and related symbols. - @cosmjs/cosmwasm-stargate: Add support for wasmd 0.21. This changes the AMINO JSON representation of `Msg{Execute,Instantiate,Migrate}Contract.msg` from base64 strings to JSON objects. ([#948]) - @cosmjs/cli: Replace `colors` dependency with `chalk` (see https://snyk.io/blog/open-source-npm-packages-colors-faker/) [#865]: https://github.com/cosmos/cosmjs/issues/865 [#897]: https://github.com/cosmos/cosmjs/issues/897 [#928]: https://github.com/cosmos/cosmjs/issues/928 [#931]: https://github.com/cosmos/cosmjs/pull/931 [#709]: https://github.com/cosmos/cosmjs/issues/709 [#946]: https://github.com/cosmos/cosmjs/pull/946 [#948]: https://github.com/cosmos/cosmjs/pull/948 ## [0.26.6] - 2022-01-10 ### Changed - @cosmjs/cli: Replace `colors` dependency with `chalk` (see https://snyk.io/blog/open-source-npm-packages-colors-faker/) ## [0.26.5] - 2021-11-20 ### Added - @cosmjs/amino: The `coin` and `coins` helpers now support both `number` and `string` as input types for the amount. This is useful if your values exceed the safe integer range. ### Fixed - @cosmjs/tendermint-rpc: Fix undefined `this` in `decodeBroadcastTxAsync` and `broadcastTxAsync` ([#937]). [#937]: https://github.com/cosmos/cosmjs/pull/937 ## [0.26.4] - 2021-10-28 ### Fixed - @cosmjs/cosmwasm-stargate: Fix response error handling for smart queries. ## [0.26.3] - 2021-10-25 ### Added - @cosmjs/ledger-amino: Add support for using forks of the Cosmos Ledger app by adding the fields `LaunchpadLedgerOptions.ledgerAppName` and `.minLedgerAppVersion`. ### Deprecated - @cosmjs/stargate: The verified queries from `AuthExtension` and `BankExtension` as well as `StargateClient.getAccountVerified` are deprecated and will be removed in 0.27 ([#910]). [#910]: https://github.com/cosmos/cosmjs/pull/910 ## [0.26.2] - 2021-10-12 ### Fixed - @cosmjs/stargate: remove extra space in messageTimeout registry. - @cosmjs/cosmwasm-stargate: Fix Amino JSON representation of `MsgInstantiateContract`, `MsgMigrateContract` and `MsgExecuteContract` to match the wasmd expectation. This was broken since the wasmd upgrade to Stargate such that no Ledger signing was possible for those message types in the meantime. ## [0.26.1] - 2021-09-30 ### Added - @cosmjs/amino: `decodeBech32Pubkey` and `decodeAminoPubkey` now support decoding multisig public keys ([#882]). ### Fixed - @cosmjs/stargate: Add missing pagination key arguments to query types in `GovExtension`. [#882]: https://github.com/cosmos/cosmjs/issues/882 ## [0.26.0] - 2021-08-24 ### Added - @cosmjs/tendermint-rpc: `Tendermint34Client.blockSearch` and `Tendermint34Client.blockSearchAll` were added to allow searching blocks in Tendermint 0.34.9+ backends. - @cosmjs/tendermint-rpc: `Tendermint33Client` has been added to provide support for Tendermint v0.33. - @cosmjs/tendermint-rpc: Exports relating to `Tendermint33Client` are now available under `tendermint33`. - @cosmjs/proto-signing and @cosmjs/stargate: Create a Stargate-ready `parseCoins` that replaces the `parseCoins` re-export from `@cosmjs/amino`. - @cosmjs/cosmwasm-stargate: Export `isValidBuilder`, which is a clone of `isValidBuilder` from @cosmjs/cosmwasm-launchpad. - @cosmjs/cosmwasm-stargate: Copy symbols `Code`, `CodeDetails`, `Contract`, `ContractCodeHistoryEntry` and `JsonObject` from @cosmjs/cosmwasm-launchpad and remove dependency on @cosmjs/cosmwasm-launchpad. - @cosmjs/faucet: Add new configuration variable `FAUCET_PATH_PATTERN` to configure the HD path of the faucet accounts ([#832]). - @cosmjs/cosmwasm-stargate: Add field `ibcPortId` to `Contract` ([#836]). - @cosmjs/stargate: Add `GovExtension` for query client. - @cosmjs/stargate: Add support for `MsgDeposit`, `MsgSubmitProposal` and `MsgVote`. [#832]: https://github.com/cosmos/cosmjs/issues/832 [#836]: https://github.com/cosmos/cosmjs/issues/836 ### Changed - @cosmjs/cosmwasm-launchpad: The `transferAmount` property on `InstantiateOptions` (accepted as a parameter to `SigningCosmWasmClient.instantiate`) has been renamed to `funds`. - @cosmjs/cosmwasm-stargate: The `transferAmount` property on `InstantiateOptions` (accepted as a parameter to `SigningCosmWasmClient.instantiate`) has been renamed to `funds`. - @cosmjs/cosmwasm-stargate: Default fee/gas values have been removed. Fees now need to be calculated and passed to `SigningCosmWasmClient` when calling any methods which submit transactions to the blockchain. - @cosmjs/stargate: Default fee/gas values have been removed. Fees now need to be calculated and passed to `SigningStargateClient` when calling any methods which submit transactions to the blockchain. - @cosmjs/tendermint-rpc: Make `tendermint34.Header.lastBlockId` and `tendermint34.Block.lastCommit` optional to better handle the case of height 1 where there is no previous block. - @cosmjs/proto-signing: `makeAuthInfoBytes` now takes an array of pubkey sequence pairs in order to support different sequences for different signers. - @cosmjs/cosmwasm-stargate: Upgraded client to support wasmd 0.18 backends. Other backends are not supported anymore. Update proto types from `cosmwasm.wasm.v1beta1.*` to `cosmwasm.wasm.v1.*`. `MsgStoreCode.source` and `MsgStoreCode.builder` were removed; `MsgInstantiateContract.initMsg` and `MsgMigrateContract.migrateMsg` were renamed to `msg`; `Code.{source,builder}` and `CodeDetails.{source,builder}` were removed; `isValidBuilder` was removed; `UploadMeta` and the `meta` from `SigningCosmWasmClient.upload` were removed. ([#863]) [#863]: https://github.com/cosmos/cosmjs/pull/863 ### Removed - Node.js v10 is no longer supported. Please use v12 or later. - @cosmjs/cosmwasm-stargate: Remove `CosmWasmFeeTable` type and `defaultGasLimits` object. - @cosmjs/stargate: Remove types, objects and functions to do with default fees: `CosmosFeeTable`, `FeeTable`, `GasLimits`, `defaultGasLimits`, `defaultGasPrice` and `buildFeeTable`. - @cosmjs/tendermint-rpc: `Client` has been removed. Please use `Tendermint33Client` or `Tendermint34Client`, depending on your needs. - @cosmjs/cosmwasm: Package removed ([#786]). - @cosmjs/cosmwasm-launchpad: Package removed ([#786]). [#786]: https://github.com/cosmos/cosmjs/issues/786 ### Fixed - @cosmjs/socket: Upgrade dependency "ws" to version 7 to avoid potential security problems. ## [0.25.6] - 2021-07-26 ### Fixed - @cosmjs/stargate: Fix types `AminoMsgTransfer` and `AminoHeight` as well as the encoding of `MsgTransfer` for Amino signing. ## [0.25.5] - 2021-06-23 ### Added - @cosmjs/tendermint-rpc: `Tendermint34Client.blockSearch` and `Tendermint34Client.blockSearchAll` were added to allow searching blocks in Tendermint 0.34.9+ backends. This is a backport of [#815]. Note: Decoding blocks of height 1 is unsupported. This is fixed in [#815] and will be released as part of CosmJS 0.26. [#815]: https://github.com/cosmos/cosmjs/pull/815 ## [0.25.4] - 2021-05-31 ### Fixed - @cosmjs/socket: Upgrade dependency "ws" to version 7 to avoid potential security problems. ## [0.25.3] - 2021-05-18 ### Fixed - @cosmjs/cosmwasm-stargate, @cosmjs/stargate: Fix error propagation in `CosmWasmClient.broadcastTx` and `StargateClient.broadcastTx` ([#800]). This bug was introduced with the switch from broadcast mode "commit" to "sync" in version 0.25.0. - @cosmjs/launchpad, @cosmjs/stargate: Avoid the use of named capture groups in `GasPrice.fromString` to restore ES2017 compatibility and make the library work with Hermes ([#801]; thanks [@AlexBHarley]). - @cosmjs/launchpad: Adapt `GasPrice.fromString` denom pattern to Cosmos SDK 0.39 rules: reduce denom length to 16 and allow digits in denom. - @cosmjs/stargate: Adapt `GasPrice.fromString` denom pattern to Cosmos SDK 0.42 rules: allow lengths up to 128, allow upper case letters and digits. [#800]: https://github.com/cosmos/cosmjs/issues/800 [#801]: https://github.com/cosmos/cosmjs/issues/801 [@alexbharley]: https://github.com/AlexBHarley ## [0.25.2] - 2021-05-11 ### Added - @cosmjs/cosmwasm-stargate: Add `broadcastTimeoutMs` and `broadcastPollIntervalMs` options added to `SigningCosmWasmClientOptions`. - @cosmjs/proto-signing: Add `serialize` and `serializeWithEncryptionKey` methods to `DirectSecp256k1HdWallet`. Also add `deserialize` and `deserializeWithEncryptionKey` static methods. - @cosmjs/proto-signing: Export `extractKdfConfiguration` and `executeKdf` helper functions and `KdfConfiguration` type. - @cosmjs/proto-signing: Export `makeCosmoshubPath` helper. - @cosmjs/stargate: Export `makeCosmoshubPath` helper. - @cosmjs/stargate: Add `broadcastTimeoutMs` and `broadcastPollIntervalMs` options added to `SigningStargateClientOptions`. ## [0.25.1] - 2021-05-06 ### Added - @cosmjs/cosmwasm-stargate: Export types `Code`, `CodeDetails`, `Contract`, `ContractCodeHistoryEntry` and `JsonObject` which are response types of `CosmWasmClient` methods. Export types `ChangeAdminResult`, `ExecuteResult`, `InstantiateOptions`, `InstantiateResult`, `MigrateResult`, `UploadMeta` and `UploadResult` which are argument or response types of `SigningCosmWasmClient` methods. ### Fixed - @cosmjs/cosmwasm-stargate: Use `CosmWasmFeeTable` instead of `CosmosFeeTable` in `SigningCosmWasmClientOptions`; export type `CosmWasmFeeTable`. - @cosmjs/amino, @cosmjs/cli, @cosmjs/ledger-amino, @cosmjs/proto-signing: Fix runtime error caused by passing explicitly undefined options. ## [0.25.0] - 2021-05-05 ### Added - @cosmjs/cosmwasm-launchpad: Expose `SigningCosmWasmClient.fees`. - @cosmjs/cosmwasm-stargate: Expose `SigningCosmWasmClient.fees` and `SigningCosmWasmClient.registry`. - @cosmjs/launchpad: Expose `SigningCosmosClient.fees`. - @cosmjs/stargate: Expose `SigningStargateClient.fees` and `SigningStargateClient.registry`. - @cosmjs/stargate: Add support for different account types in `accountFromAny` and `StargateClient`. Added `ModuleAccount` and vesting accounts `BaseVestingAccount`, `ContinuousVestingAccount`, `DelayedVestingAccount` and `PeriodicVestingAccount`. - @cosmjs/stargate: Add codecs for IBC channel tx, client query/tx, and connection tx, as well as Tendermint. - @cosmjs/stargate: Add support for IBC message types in `SigningStargateClient`. - @cosmjs/stargate: Added new `logs` export with all the functionality from @cosmjs/launchpad. - @cosmjs/stargate: Added new `Coin`, `coin`, `coins` and `parseCoins` exports which have the same functionality as already existed in @cosmjs/launchpad. - @cosmjs/amino: New package created that contains the shared amino signing functionality for @cosmjs/launchpad and @cosmjs/stargate. - @cosmjs/amino: Split public key interfaces into `Pubkey`, `SinglePubkey` and `Secp256k1Pubkey` where `Pubkey` is a generalization of the old `PubKey` that supported nested pubkeys for multisig. `SinglePubkey` is the old `PubKey` in which the `value` is a base64 encoded string. And `Secp256k1Pubkey` is a single secp256k1 pubkey. - @cosmjs/utils: The new `arrayContentStartsWith` works similar to `arrayContentEquals` but only checks the start of an array. - @cosmjs/proto-signing: Added new `Coin`, `coin`, `coins` and `parseCoins` exports which have the same functionality as already existed in @cosmjs/launchpad. - @cosmjs/stargate: Add `SigningStargateClient.sign`, which allows you to create signed transactions without broadcasting them directly. The new type `SignerData` can be passed into `.sign` to skip querying account number, sequence and chain ID - @cosmjs/cosmwasm-stargate: Add `SigningCosmWasmClient.sign`, which allows you to create signed transactions without broadcasting them directly. The new type `SignerData` from @cosmjs/stargate can be passed into `.sign` to skip querying account number, sequence and chain ID. - @cosmjs/stargate: Add constructor `SigningStargateClient.offline` which does not connect to Tendermint. This allows offline signing. - @cosmjs/stargate: Add `makeMultisignedTx` which allows you to assemble a transaction signed by a multisig account. - @cosmjs/stargate: Add `delegateTokens`, `undelegateTokens` and `withdrawRewards` methods to `SigningStargateClient`. - @cosmjs/stargate: Export `defaultGasLimits` and `defaultGasPrice`. - @cosmjs/cosmwasm-stargate: Export `defaultGasLimits`. - @cosmjs/stargate: `SigningStargateClient` constructor is now `protected`. - @cosmjs/cosmwasm-stargate: `SigningCosmWasmClient` constructor is now `protected`. - @cosmjs/cosmwasm-stargate: Add `SigningCosmWasmClient.offline` static method for constructing offline clients without a Tendermint client. - @cosmjs/stargate: Add `SigningStargateClient.sendIbcTokens` method. - @cosmjs/amino: Export `Secp256k1HdWalletOptions` interface. - @cosmjs/amino: Add `bip39Password` option to `Secp256k1HdWallet` options. - @cosmjs/proto-signing: Export `DirectSecp256k1HdWalletOptions` interface. - @cosmjs/proto-signing: Add `bip39Password` option to `DirectSecp256k1HdWallet` options. - @cosmjs/amino: Add `rawEd25519PubkeyToRawAddress` helper function. - @cosmjs/tendermint-rpc: Add `pubkeyToAddress`, `pubkeyToRawAddress`, `rawEd25519PubkeyToRawAddress`, and `rawSecp256k1PubkeyToRawAddress` helper functions. - @cosmjs/stargate: `StargateClient.broadcastTx` and `.getTx` results now include `gasUsed` and `gasWanted` properties. - @cosmjs/cosmwasm-stargate: `CosmWasmClient.broadcastTx` and `.getTx` results now include `gasUsed` and `gasWanted` properties. - @cosmjs/proto-signing: Export `DecodeObject` and `TxBodyEncodeObject` interfaces as well as `isTxBodyEncodeObject` helper function. - @cosmjs/stargate: Add `MsgDelegateEncodeObject`, `MsgSendEncodeObject`, `MsgTransferEncodeObject`, `MsgUndelegateEncodeObject` and `MsgWithdrawDelegatorRewardEncodeObject` interfaces as well as `isMsgDelegateEncodeObject` etc helpers. - @cosmjs/cosmwasm-stargate: Add `MsgClearAdminEncodeObject`, `MsgExecuteContractEncodeObject`, `MsgInstantiateContractEncodeObject`, `MsgMigrateContractEncodeObject`, `MsgStoreCodeEncodeObject` and `MsgUpdateAdminEncodeObject` interfaces as well as `isMsgClearAdminEncodeObject` etc helpers. - @cosmjs/stargate: Add transfer queries codec, as well as transfer query methods to IBC query extension. - @cosmjs/tendermint-rpc: Export `ValidatorSecp256k1Pubkey` interface. - @cosmjs/proto-signing: Add transaction decoder `decodeTxRaw` for decoding transaction bytes returned by Tendermint (e.g. in `IndexedTx.tx`). ### Changed - @cosmjs/cosmwasm-stargate: Codec adapted to support wasmd 0.16. Older versions of wasmd are not supported anymore. - @cosmjs/stargate: Let `AuthExtension.account` and `AuthExtension.unverified.account` return an account of type `Any`. This makes the caller responsible for decoding the type. - @cosmjs/stargate: Remove `accountFromProto` in favour of `accountFromAny`. - @cosmjs/stargate: Rename `Rpc` interface to `ProtobufRpcClient` and `createRpc` to `createProtobufRpcClient`. - @cosmjs/stargate: Reorganize nesting structure of IBC query client and add support for more methods. - @cosmjs/tendermint-rpc: The fields `CommitSignature.validatorAddress`, `.timestamp` and `.signature` are now optional. They are unset when `blockIdFlag` is `BlockIdFlag.Absent`. The decoding into `CommitSignature` is only updated for the class `Tendermint34Client`, not for `Client`. Please migrate to the former. - @cosmjs/launchpad: `rawSecp256k1PubkeyToAddress` was removed. Instead use `Bech32.encode(prefix, rawSecp256k1PubkeyToRawAddress(pubkeyRaw))` with `rawSecp256k1PubkeyToRawAddress` from @cosmjs/amino. - @cosmjs/stargate: `parseRawLog` is now nested under the `logs` export. - @cosmjs/stargate: Query extensions now have unverified queries at the root and verified queries nested under `.verified`. - @cosmjs/cosmwasm-stargate: `wasm` extension now has unverified queries at the root. - @cosmjs/stargate: `StargateClient.getAccount` now uses an unverified query and `StargateClient.getAccountUnverified` has been removed. `StargateClient.getAccountVerified` has been added, which performs a verified query. - @cosmjs/cosmwasm-stargate: `CosmWasmClient.getAccount` now uses an unverified query and `CosmWasmClient.getAccountUnverified` has been removed. `CosmWasmClient.getAccountVerified` has been added, which performs a verified query. - @cosmjs/stargate: `StargateClient.getSequence` now rejects if the account is not found, instead of returning null. - @cosmjs/stargate: `StargateClient.getBalance` now returns a 0 balance instead of null. - @cosmjs/stargate: `StargateClient.getAllBalancesUnverified` has been renamed `.getAllBalances`. - @cosmjs/cosmwasm-stargate: `CosmWasmClient.getSequence` now rejects if the account is not found, instead of returning null. - @cosmjs/cosmwasm-stargate: `CosmWasmClient.getBalance` now returns a 0 balance instead of null. - @cosmjs/amino: Options for `Secp256k1HdWallet.fromMnemonic` are now passed via a `Secp256k1HdWalletOptions` object. - @cosmjs/proto-signing: Options for `DirectSecp256k1HdWallet.fromMnemonic` are now passed via a `DirectSecp256k1HdWalletOptions` object. - @cosmjs/stargate: `StargateClient.broadcastTx` now uses sync mode and then polls for the transaction before resolving. The timeout and poll interval can be configured. - @cosmjs/cosmwasm-stargate: `CosmWasmClient.broadcastTx` now uses sync mode and then polls for the transaction before resolving. The timeout and poll interval can be configured. - @cosmjs/tendermint-rpc: Tendermint v34 `TxData` type now includes `codeSpace`, `gasWanted`, and `gasUsed` properties. - @cosmjs/amino: `Secp256k1HdWallet.fromMnemonic` now accepts a `Secp256k1HdWalletOptions` argument which includes an array of `hdPaths` instead of a single `hdPath`. `Secp256k1HdWallet.generate` now also accepts options via this interface. This adds support for multiple accounts from the same mnemonic to `Secp256k1HdWallet`. - @cosmjs/proto-signing: `DirectSecp256k1HdWallet.fromMnemonic` now accepts a `DirectSecp256k1HdWalletOptions` argument which includes an array of `hdPaths` instead of a single `hdPath`. `DirectSecp256k1HdWallet.generate` now also accepts options via this interface. This adds support for multiple accounts from the same mnemonic to `DirectSecp256k1HdWallet`. - @cosmjs/tendermint-rpc: `ValidatorPubkey` is now a union of `ValidatorEd25519Pubkey` and the newly exported `ValidatorSecp256k1Pubkey` interface. - @cosmjs/tendermint-rpc: `decodePubkey` now supports secp256k1 public keys. ### Deprecated - @cosmjs/tendermint-rpc: `Client` has been deprecated. Launchpad applications do not need a Tendermint RPC client and Stargate applications should use `Tendermint34Client`. ### Removed - @cosmjs/stargate: `coinFromProto` helper has been removed as it is no longer needed after the `ts-proto` migration. ## [0.24.1] - 2021-03-12 CHANGELOG entries missing. Please see [the diff][0.24.1]. ## [0.24.0] - 2021-03-11 - @cosmjs/cosmwasm: This package is now deprecated. The same functionality is now available in @cosmjs/cosmwasm-launchpad. - @cosmjs/cosmwasm: `logs` is no longer exported. Use `logs` from @cosmjs/launchpad instead. - @cosmjs/cosmwasm: Export `JsonObject`, `ChangeAdminResult` and `WasmData` types as well as `isValidBuilder` and `parseWasmData` functions. - @cosmjs/cosmwasm: Add `CosmWasmClient.getTx` method for searching by ID and remove such functionality from `CosmWasmClient.searchTx`. - @cosmjs/cosmwasm: Rename `SigningCosmWasmClient.senderAddress` to `.signerAddress`. - @cosmjs/cosmwasm-stargate: Add new package for CosmWasm Stargate support. - @cosmjs/crypto: Change `Secp256k1Keypair` from tagged type to simple interface. - @cosmjs/launchpad: Add `Secp256k1Wallet` to manage a single raw secp256k1 keypair. - @cosmjs/launchpad: `OfflineSigner` type’s `sign` method renamed `signAmino` and `SignResponse` type renamed `AminoSignResponse`. - @cosmjs/launchpad: `Secp256k1HdWallet.sign` method renamed `signAmino`. - @cosmjs/launchpad: Add `CosmosClient.getTx` method for searching by ID and remove such functionality from `CosmosClient.searchTx`. - @cosmjs/launchpad: Add `SigningCosmosClient.sign` method for signing without broadcasting. - @cosmjs/launchpad: Add `SigningCosmosClient.appendSignature` method creating transactions with multiple signatures. - @cosmjs/launchpad: Add support for undefined memo in `makeSignDoc`. - @cosmjs/launchpad: Rename `SigningCosmosClient.senderAddress` to `.signerAddress`. - @cosmjs/proto-signing: Add new package for handling transaction signing with protobuf encoding. - @cosmjs/proto-signing: Expose `DirectSignResponse` interface. - @cosmjs/stargate: Add new package for Cosmos SDK Stargate support. - @cosmjs/tendermint-rpc: Make `Client.detectVersion` private and let it return a version instead of a client. - @cosmjs/tendermint-rpc: Make the constructor of `Client` private. Add `Client.create` for creating a Tendermint client given an RPC client and an optional adaptor. - @cosmjs/tendermint-rpc: Add an optional adaptor argument to `Client.connect` which allows skipping the auto-detection. - @cosmjs/tendermint-rpc: Remove export `v0_33` in favour of `adaptor33` and `adaptor34`. Export the `Adaptor` type. - @cosmjs/tendermint-rpc: Export `DateTime` class. - @cosmjs/tendermint-rpc: Remove types `QueryString`, `Base64String`, `HexString`, `IntegerString` and `IpPortString`. Use `string` instead. - @cosmjs/tendermint-rpc: Remove types `BlockHash`, `TxBytes` and `TxHash`. Use `Uint8Array` instead. ### Added - @cosmjs/launchpad: Export distribution module msg types `MsgFundCommunityPool`, `MsgSetWithdrawAddress`, `MsgWithdrawDelegatorReward`, `MsgWithdrawValidatorCommission` and type checker helper functions. - @cosmjs/utils: Added `assertDefinedAndNotNull`. - @cosmjs/tendermint-rpc: The new `Tendermint34Client` is a copy of the old `Client` but without the automatic version detection. Its usage is encouraged over `Client` if you connect to a Tendermint 0.34 backend. ### Changed - @cosmjs/encoding: Change return type of `fromRfc3339` from `ReadonlyDate` to `Date` as the caller becomes the owner of the object and can safely mutate it in any way. - @cosmjs/launchpad-ledger: Renamed to @cosmjs/ledger-amino. - @cosmjs/ledger-amino: `LedgerSigner.sign` method renamed `signAmino`. ### Deprecated - @cosmjs/tendermint-rpc: Deprecate `DateTime` in favour of the free functions `fromRfc3339WithNanoseconds` and `toRfc3339WithNanoseconds`. ## 0.23.2 (2021-01-06) ### Security - @cosmjs/cli: Update vulnerable axios dependency. - @cosmjs/faucet-client: Update vulnerable axios dependency. - @cosmjs/launchpad: Update vulnerable axios dependency. - @cosmjs/tendermint-rpc: Update vulnerable axios dependency. ## 0.23.1 (2020-10-27) - @cosmjs/crypto: Export new convenience functions `keccak256`, `ripemd160`, `sha1`, `sha256` and `sha512`. - @cosmjs/faucet-client: Add new package which exports `FaucetClient` class. ## 0.23.0 (2020-10-09) - @cosmjs/cli: Expose `HdPath` type. - @cosmjs/cosmwasm: Rename `CosmWasmClient.postTx` method to `.broadcastTx`. - @cosmjs/cosmwasm: Rename `FeeTable` type to `CosmWasmFeeTable`. - @cosmjs/cosmwasm: `SigningCosmWasmClient` constructor now takes optional arguments `gasPrice` and `gasLimits` instead of `customFees` for easier customization. - @cosmjs/cosmwasm: Rename `SigningCosmWasmClient.signAndPost` method to `.signAndBroadcast`. - @cosmjs/cosmwasm: Use stricter type `Record` for smart query, init, migrate and handle messages (in `WasmExtension.wasm.queryContractSmart`, `CosmWasmClient.queryContractSmart`, `SigningCosmWasmClient.instantiate`, `SigningCosmWasmClient.migrate`, `SigningCosmWasmClient.execute`). - @cosmjs/crypto: Export new type alias `HdPath`. - @cosmjs/crypto: Add `Secp256k1Signature.toFixedLength` method. - @cosmjs/demo-staking: Remove package and supporting scripts. - @cosmjs/encoding: Add `limit` parameter to `Bech32.encode` and `.decode`. The new default limit for decoding is infinity (was 90 before). Set it to 90 to create a strict decoder. - @cosmjs/faucet: Environmental variable `FAUCET_FEE` renamed to `FAUCET_GAS_PRICE` and now only accepts one token. Environmental variable `FAUCET_GAS` renamed to `FAUCET_GAS_LIMIT`. - @cosmjs/faucet: `/credit` API now expects `denom` (base token) instead of `ticker` (unit token). Environmental variables specifying credit amounts now need to use uppercase denom. - @cosmjs/launchpad: Rename `FeeTable` type to `CosmosFeeTable` and export a new more generic type `FeeTable`. - @cosmjs/launchpad: Add new class `GasPrice`, new helper type `GasLimits` and new helper function `buildFeeTable` for easier handling of gas prices and fees. - @cosmjs/launchpad: Rename `CosmosClient.postTx` method to `.broadcastTx`. - @cosmjs/launchpad: `SigningCosmosClient` constructor now takes optional arguments `gasPrice` and `gasLimits` instead of `customFees` for easier customization. - @cosmjs/launchpad: Rename `SigningCosmosClient.signAndPost` method to `.signAndBroadcast`. - @cosmjs/launchpad: Rename `PostTx`-related types to `BroadcastTxResult`, `BroadcastTxSuccess` and `BroadcastTxFailure` respectively, as well as helper functions `isBroadcastTxFailure`, `isBroadcastTxSuccess` and `assertIsBroadcastTxSuccess`. - @cosmjs/launchpad: Export `isSearchByIdQuery`, `isSearchByHeightQuery`, `isSearchBySentFromOrToQuery` and `isSearchByTagsQuery`. - @cosmjs/launchpad: Change type of `TxsResponse.logs` and `BroadcastTxsResponse.logs` to `unknown[]`. - @cosmjs/launchpad: Export `StdSignDoc` and create helpers to make and serialize a `StdSignDoc`: `makeSignDoc` and `serializeSignDoc`. - @cosmjs/launchpad: Let `OfflineSigner.sign` take an `StdSignDoc` instead of an encoded message and return a `SignResponse` that includes the document which was signed. - @cosmjs/launchpad: Remove `PrehashType` and the prehash type argument in `OfflineSigner.sign` because the signer now needs to know how to serialize an `StdSignDoc`. - @cosmjs/launchpad: Remove `makeSignBytes` in favour of `makeSignDoc` and `serializeSignDoc`. - @cosmjs/launchpad: Create `WrappedTx`, `WrappedStdTx` and `isWrappedStdTx` to better represent the Amino tx interface. Deprecate `CosmosSdkTx`, which is an alias for `WrappedStdTx`. - @cosmjs/launchpad: Add `makeStdTx` to create an `StdTx`. - @cosmjs/launchpad: Rename `Secp256k1Wallet` to `Secp256k1HdWallet`. Later on, we'll use `Secp256k1Wallet` for single key wallets. - @cosmjs/launchpad-ledger: Add package supporting Ledger device integration for Launchpad. Two new classes are provided: `LedgerSigner` (for most use cases) and `LaunchpadLedger` for more fine-grained access. - @cosmjs/math: Add `.multiply` method to `Decimal` class. - @cosmjs/math: Deprecate `Uint32.fromBigEndianBytes` in favour of `Uint32.fromBytes`, which supports both big and little endian. - @cosmjs/math: Deprecate `Uint64.fromBytesBigEndian` in favour of `Uint64.fromBytes`, which supports both big and little endian. - @cosmjs/math: Add `Uint32.fromString`. - @cosmjs/tendermint-rpc: Make `BroadcastTxCommitResponse.height` non-optional. - @cosmjs/tendermint-rpc: Make `TxProof.proof.leafHash` non-optional because it is always set. - @cosmjs/tendermint-rpc: Change type of `GenesisResponse.appState` to `Record | undefined`. - @cosmjs/tendermint-rpc: Remove obsolete `TxData.tags` and make `TxData.events` non-optional. Rename `Tag` to `Attribute`. - @cosmjs/tendermint-rpc: Remove obsolete `BlockResultsResponse.beginBlock` and `.beginBlock`. The new `.beginBlockEvents` and `.endBlockEvents` now parse the events correctly. - @cosmjs/tendermint-rpc: Remove trivial helpers `getTxEventHeight`, `getHeaderEventHeight` and `getBlockEventHeight` because they don't do anything else than accessing an object member. - @cosmjs/tendermint-rpc: Add support for connecting to Tendermint RPC 0.34. - @cosmjs/tendermint-rpc: Make `TxEvent.index` optional and deprecate it because it is not set anymore in Tendermint 0.34. - @cosmjs/utils: Add `assertDefined`. - @cosmjs/faucet: Rename binary from `cosmwasm-faucet` to `cosmos-faucet`. ## 0.22.3 (2020-09-15) - @cosmjs/math: Add `Decimal.minus`. ## 0.22.2 (2020-08-11) - @cosmjs/faucet: Log errors for failed send transactions. - @cosmjs/faucet: Add config variable `FAUCET_MEMO`. - @cosmjs/faucet: Add config variables `FAUCET_FEE` and `FAUCET_GAS`. - @cosmjs/launchpad: Add `parseCoins` helper. ## 0.22.1 (2020-08-11) - @cosmjs/cli: Import `encodeAminoPubkey`, `encodeBech32Pubkey`, `decodeAminoPubkey` and `decodeBech32Pubkey` by default. - @cosmjs/launchpad: Add ed25519 support to `encodeBech32Pubkey`. - @cosmjs/launchpad: Add `encodeAminoPubkey` and `decodeAminoPubkey`. - @cosmjs/utils: Add `arrayContentEquals`. - @cosmjs/faucet: Add config variables `FAUCET_ADDRESS_PREFIX` and `FAUCET_TOKENS`. - @cosmjs/faucet: Remove broken chain ID from `cosmwasm-faucet generate`. ## 0.22.0 (2020-08-03) - @cosmjs/cli: Now supports HTTPs URLs for `--init` code sources. - @cosmjs/cli: Now supports adding code directly via `--code`. - @cosmjs/cosmwasm: Rename `CosmWasmClient.getNonce` method to `.getSequence`. - @cosmjs/cosmwasm: Remove `RestClient` class in favour of new modular `LcdClient` class from @cosmjs/sdk38. - @cosmjs/cosmwasm: Add `SigningCosmWasmClient.signAndPost` as a mid-level abstraction between `SigningCosmWasmClient.upload`/`.instantiate`/`.execute` and `.postTx`. - @cosmjs/cosmwasm: Use `*PostTx*` types and helpers from @cosmjs/sdk38. Remove exported `PostTxResult`. - @cosmjs/cosmwasm: `ContractDetails` was removed in favour of just `Contract`. The missing `init_msg` is now available via the contract's code history (see `getContractCodeHistory`). - @cosmjs/cosmwasm: Remove `SigningCallback` in favour of the `OfflineSigner` interface. - @cosmjs/sdk38: Rename `CosmosClient.getNonce` method to `.getSequence`. - @cosmjs/sdk38: Remove `RestClient` class in favour of new modular `LcdClient` class. - @cosmjs/sdk38: Remove `Pen` type in favour of `OfflineSigner` and remove `Secp256k1Pen` class in favour of `Secp256k1Wallet` which takes an `OfflineSigner` instead of a `SigningCallback`. - @cosmjs/sdk38: Rename `CosmosSdkAccount` to `BaseAccount` and export the type. - @cosmjs/sdk38: `BaseAccount` now uses `number | string` as the type for `account_number` and `sequence`. The new helpers `uint64ToNumber` and `uint64ToString` allow you to normalize the mixed input. - @cosmjs/sdk38: `BaseAccount` now uses `string | PubKey | null` as the type for `public_key`. The new helper `normalizePubkey` allows you to normalize the mixed input. - @cosmjs/math: Add missing integer check to `Uint64.fromNumber`. Before `Uint64.fromNumber(1.1)` produced some result. - @cosmjs/sdk38: Add `SigningCosmosClient.signAndPost` as a mid-level abstraction between `SigningCosmosClient.sendTokens` and `.postTx`. - @cosmjs/sdk38: Export `PostTxFailure`/`PostTxSuccess` and type checkers `isPostTxFailure`/`isPostTxSuccess`; export `assertIsPostTxSuccess`. - @cosmjs/sdk38: `Secp256k1Wallet`s can now be generated randomly with `Secp256k1Wallet.generate(n)` where `n` is 12, 15, 18, 21 or 24 mnemonic words. - @cosmjs/sdk38: The new `Secp256k1Wallet.serialize` and `.deserialize` allow encrypted serialization of the wallet. - @cosmjs/sdk38: Remove the obsolete `upload`, `init`, `exec` properties from `FeeTable`. @cosmjs/cosmwasm has its own `FeeTable` with those properties. - @cosmjs/sdk38: Rename package to @cosmjs/launchpad. [unreleased]: https://github.com/cosmos/cosmjs/compare/v0.28.6...HEAD [0.28.6]: https://github.com/cosmos/cosmjs/compare/v0.28.5...v0.28.6 [0.28.5]: https://github.com/cosmos/cosmjs/compare/v0.28.4...v0.28.5 [0.28.4]: https://github.com/cosmos/cosmjs/compare/v0.28.3...v0.28.4 [0.28.3]: https://github.com/cosmos/cosmjs/compare/v0.28.2...v0.28.3 [0.28.2]: https://github.com/cosmos/cosmjs/compare/v0.28.1...v0.28.2 [0.28.1]: https://github.com/cosmos/cosmjs/compare/v0.28.0...v0.28.1 [0.28.0]: https://github.com/cosmos/cosmjs/compare/v0.27.1...v0.28.0 [0.27.1]: https://github.com/cosmos/cosmjs/compare/v0.27.0...v0.27.1 [0.27.0]: https://github.com/cosmos/cosmjs/compare/v0.26.6...v0.27.0 [0.26.6]: https://github.com/cosmos/cosmjs/compare/v0.26.5...v0.26.6 [0.26.5]: https://github.com/cosmos/cosmjs/compare/v0.26.4...v0.26.5 [0.26.4]: https://github.com/cosmos/cosmjs/compare/v0.26.3...v0.26.4 [0.26.3]: https://github.com/cosmos/cosmjs/compare/v0.26.2...v0.26.3 [0.26.2]: https://github.com/cosmos/cosmjs/compare/v0.26.1...v0.26.2 [0.26.1]: https://github.com/cosmos/cosmjs/compare/v0.26.0...v0.26.1 [0.26.0]: https://github.com/cosmos/cosmjs/compare/v0.25.6...v0.26.0 [0.25.6]: https://github.com/cosmos/cosmjs/compare/v0.25.5...v0.25.6 [0.25.5]: https://github.com/cosmos/cosmjs/compare/v0.25.4...v0.25.5 [0.25.4]: https://github.com/cosmos/cosmjs/compare/v0.25.3...v0.25.4 [0.25.3]: https://github.com/cosmos/cosmjs/compare/v0.25.2...v0.25.3 [0.25.2]: https://github.com/cosmos/cosmjs/compare/v0.25.1...v0.25.2 [0.25.1]: https://github.com/cosmos/cosmjs/compare/v0.25.0...v0.25.1 [0.25.0]: https://github.com/cosmos/cosmjs/compare/v0.24.1...v0.25.0 [0.24.1]: https://github.com/cosmos/cosmjs/compare/v0.24.0...v0.24.1 [0.24.0]: https://github.com/cosmos/cosmjs/compare/v0.23.0...v0.24.0