diff --git a/packages/cosmwasm-stargate/src/signingcosmwasmclient.ts b/packages/cosmwasm-stargate/src/signingcosmwasmclient.ts index 1d23f12c..7a3d65ec 100644 --- a/packages/cosmwasm-stargate/src/signingcosmwasmclient.ts +++ b/packages/cosmwasm-stargate/src/signingcosmwasmclient.ts @@ -39,6 +39,7 @@ import { BroadcastTxFailure, BroadcastTxResponse, codec, + defaultRegistryTypes, isBroadcastTxFailure, parseRawLog, } from "@cosmjs/stargate"; @@ -52,14 +53,6 @@ import { CosmWasmClient } from "./cosmwasmclient"; const { SignMode } = codec.cosmos.tx.signing.v1beta1; const { TxRaw } = codec.cosmos.tx.v1beta1; -const { MsgMultiSend } = codec.cosmos.bank.v1beta1; -const { - MsgBeginRedelegate, - MsgCreateValidator, - MsgDelegate, - MsgEditValidator, - MsgUndelegate, -} = codec.cosmos.staking.v1beta1; const { MsgClearAdmin, MsgExecuteContract, @@ -94,12 +87,7 @@ function createBroadcastTxErrorMessage(result: BroadcastTxFailure): string { function createDefaultRegistry(): Registry { return new Registry([ - ["/cosmos.bank.v1beta1.MsgMultiSend", MsgMultiSend], - ["/cosmos.staking.v1beta1.MsgBeginRedelegate", MsgBeginRedelegate], - ["/cosmos.staking.v1beta1.MsgCreateValidator", MsgCreateValidator], - ["/cosmos.staking.v1beta1.MsgDelegate", MsgDelegate], - ["/cosmos.staking.v1beta1.MsgEditValidator", MsgEditValidator], - ["/cosmos.staking.v1beta1.MsgUndelegate", MsgUndelegate], + ...defaultRegistryTypes, ["/cosmwasm.wasm.v1beta1.MsgClearAdmin", MsgClearAdmin], ["/cosmwasm.wasm.v1beta1.MsgExecuteContract", MsgExecuteContract], ["/cosmwasm.wasm.v1beta1.MsgMigrateContract", MsgMigrateContract], diff --git a/packages/proto-signing/src/index.ts b/packages/proto-signing/src/index.ts index f710c8c9..f8712461 100644 --- a/packages/proto-signing/src/index.ts +++ b/packages/proto-signing/src/index.ts @@ -1,6 +1,6 @@ export { Coin } from "./msgs"; export { cosmosField, registered } from "./decorator"; -export { EncodeObject, Registry } from "./registry"; +export { EncodeObject, GeneratedType, Registry } from "./registry"; export { DirectSecp256k1HdWallet } from "./directsecp256k1hdwallet"; export { DirectSecp256k1Wallet } from "./directsecp256k1wallet"; export { decodePubkey, encodePubkey } from "./pubkey"; diff --git a/packages/proto-signing/types/index.d.ts b/packages/proto-signing/types/index.d.ts index f710c8c9..f8712461 100644 --- a/packages/proto-signing/types/index.d.ts +++ b/packages/proto-signing/types/index.d.ts @@ -1,6 +1,6 @@ export { Coin } from "./msgs"; export { cosmosField, registered } from "./decorator"; -export { EncodeObject, Registry } from "./registry"; +export { EncodeObject, GeneratedType, Registry } from "./registry"; export { DirectSecp256k1HdWallet } from "./directsecp256k1hdwallet"; export { DirectSecp256k1Wallet } from "./directsecp256k1wallet"; export { decodePubkey, encodePubkey } from "./pubkey"; diff --git a/packages/stargate/src/index.ts b/packages/stargate/src/index.ts index 1d72d8f4..9f67b26e 100644 --- a/packages/stargate/src/index.ts +++ b/packages/stargate/src/index.ts @@ -28,4 +28,4 @@ export { SequenceResponse, StargateClient, } from "./stargateclient"; -export { SigningStargateClient } from "./signingstargateclient"; +export { defaultRegistryTypes, SigningStargateClient } from "./signingstargateclient"; diff --git a/packages/stargate/src/signingstargateclient.ts b/packages/stargate/src/signingstargateclient.ts index 256a0b0d..83c098b5 100644 --- a/packages/stargate/src/signingstargateclient.ts +++ b/packages/stargate/src/signingstargateclient.ts @@ -15,6 +15,7 @@ import { Int53 } from "@cosmjs/math"; import { EncodeObject, encodePubkey, + GeneratedType, isOfflineDirectSigner, makeAuthInfoBytes, makeSignDoc, @@ -46,19 +47,21 @@ const { TxRaw } = cosmos.tx.v1beta1; const defaultGasPrice = GasPrice.fromString("0.025ucosm"); const defaultGasLimits: GasLimits = { send: 80000 }; +export const defaultRegistryTypes: ReadonlyArray<[string, GeneratedType]> = [ + ["/cosmos.bank.v1beta1.MsgMultiSend", MsgMultiSend], + ["/cosmos.distribution.v1beta1.MsgFundCommunityPool", MsgFundCommunityPool], + ["/cosmos.distribution.v1beta1.MsgSetWithdrawAddress", MsgSetWithdrawAddress], + ["/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward", MsgWithdrawDelegatorReward], + ["/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission", MsgWithdrawValidatorCommission], + ["/cosmos.staking.v1beta1.MsgBeginRedelegate", MsgBeginRedelegate], + ["/cosmos.staking.v1beta1.MsgCreateValidator", MsgCreateValidator], + ["/cosmos.staking.v1beta1.MsgDelegate", MsgDelegate], + ["/cosmos.staking.v1beta1.MsgEditValidator", MsgEditValidator], + ["/cosmos.staking.v1beta1.MsgUndelegate", MsgUndelegate], +]; + function createDefaultRegistry(): Registry { - return new Registry([ - ["/cosmos.bank.v1beta1.MsgMultiSend", MsgMultiSend], - ["/cosmos.staking.v1beta1.MsgBeginRedelegate", MsgBeginRedelegate], - ["/cosmos.staking.v1beta1.MsgCreateValidator", MsgCreateValidator], - ["/cosmos.staking.v1beta1.MsgDelegate", MsgDelegate], - ["/cosmos.staking.v1beta1.MsgEditValidator", MsgEditValidator], - ["/cosmos.staking.v1beta1.MsgUndelegate", MsgUndelegate], - ["/cosmos.distribution.v1beta1.MsgFundCommunityPool", MsgFundCommunityPool], - ["/cosmos.distribution.v1beta1.MsgSetWithdrawAddress", MsgSetWithdrawAddress], - ["/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward", MsgWithdrawDelegatorReward], - ["/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission", MsgWithdrawValidatorCommission], - ]); + return new Registry(defaultRegistryTypes); } /** Use for testing only */ diff --git a/packages/stargate/src/stargateclient.ts b/packages/stargate/src/stargateclient.ts index c336a198..488ff285 100644 --- a/packages/stargate/src/stargateclient.ts +++ b/packages/stargate/src/stargateclient.ts @@ -22,19 +22,7 @@ import { assert, assertDefinedAndNotNull } from "@cosmjs/utils"; import Long from "long"; import { cosmos } from "./codec"; -import { - AuthExtension, - BankExtension, - DistributionExtension, - IbcExtension, - QueryClient, - setupAuthExtension, - setupBankExtension, - setupDistributionExtension, - setupIbcExtension, - setupStakingExtension, - StakingExtension, -} from "./queries"; +import { AuthExtension, BankExtension, QueryClient, setupAuthExtension, setupBankExtension } from "./queries"; type IBaseAccount = cosmos.auth.v1beta1.IBaseAccount; type IMsgData = cosmos.base.abci.v1beta1.IMsgData; @@ -137,12 +125,7 @@ export interface PrivateStargateClient { export class StargateClient { private readonly tmClient: TendermintClient; - private readonly queryClient: QueryClient & - AuthExtension & - BankExtension & - DistributionExtension & - IbcExtension & - StakingExtension; + private readonly queryClient: QueryClient & AuthExtension & BankExtension; private chainId: string | undefined; public static async connect(endpoint: string): Promise { @@ -152,14 +135,7 @@ export class StargateClient { protected constructor(tmClient: TendermintClient) { this.tmClient = tmClient; - this.queryClient = QueryClient.withExtensions( - tmClient, - setupAuthExtension, - setupBankExtension, - setupDistributionExtension, - setupIbcExtension, - setupStakingExtension, - ); + this.queryClient = QueryClient.withExtensions(tmClient, setupAuthExtension, setupBankExtension); } public async getChainId(): Promise { diff --git a/packages/stargate/types/index.d.ts b/packages/stargate/types/index.d.ts index 1d72d8f4..9f67b26e 100644 --- a/packages/stargate/types/index.d.ts +++ b/packages/stargate/types/index.d.ts @@ -28,4 +28,4 @@ export { SequenceResponse, StargateClient, } from "./stargateclient"; -export { SigningStargateClient } from "./signingstargateclient"; +export { defaultRegistryTypes, SigningStargateClient } from "./signingstargateclient"; diff --git a/packages/stargate/types/signingstargateclient.d.ts b/packages/stargate/types/signingstargateclient.d.ts index 58ae7ffa..7c5dd76b 100644 --- a/packages/stargate/types/signingstargateclient.d.ts +++ b/packages/stargate/types/signingstargateclient.d.ts @@ -1,7 +1,8 @@ import { Coin, CosmosFeeTable, GasLimits, GasPrice, StdFee } from "@cosmjs/launchpad"; -import { EncodeObject, OfflineSigner, Registry } from "@cosmjs/proto-signing"; +import { EncodeObject, GeneratedType, OfflineSigner, Registry } from "@cosmjs/proto-signing"; import { AminoTypes } from "./aminotypes"; import { BroadcastTxResponse, StargateClient } from "./stargateclient"; +export declare const defaultRegistryTypes: ReadonlyArray<[string, GeneratedType]>; /** Use for testing only */ export interface PrivateSigningStargateClient { readonly fees: CosmosFeeTable;