import type { HttpEndpoint } from '@cosmjs/cosmwasm-stargate'; import { type OfflineSigner, Registry } from '@cosmjs/proto-signing'; import { AminoTypes, SigningStargateClient, type SigningStargateClientOptions, StargateClient, type StargateClientOptions } from '@cosmjs/stargate'; /** * Creates a Registry object that maps CosmWasm and Sei protobuf type identifiers to their actual implementations. * * @example * ```tsx * import { Registry } from "@cosmjs/proto-signing"; * import { defaultRegistryTypes } from "@cosmjs/stargate"; * import { getSigningStargateClient } from '@sei-js/cosmjs'; * import { seiProtoRegistry } from '@sei-js/cosmos/encoding'; * * ... * * // Set up Sei proto registry * const registry = createSeiRegistry(); * * // Create a client with registry * const signingClient = await getSigningStargateClient(RPC_URL, offlineSigner, { registry }); * ``` * * @returns A Registry object that maps CosmWasm and Sei protobuf type identifiers to their actual implementations. * @category Config */ export declare const createSeiRegistry: () => Registry; /** * Creates a mapping of stargate message types to Sei Amino types. * * @example * ```tsx * import { Registry } from "@cosmjs/proto-signing"; * import { defaultRegistryTypes } from "@cosmjs/stargate"; * import { getSigningStargateClient } from '@sei-js/cosmjs'; * import { createSeiRegistry, createSeiAminoTypes } from "@sei-js/cosmos/encoding"; * * ... * * // Create a client with registry * const signingClient = await getSigningStargateClient(RPC_URL, offlineSigner, { registry: createSeiRegistry(), aminoTypes: createSeiAminoTypes() }); * ``` * * @returns A mapping of stargate message types to Sei Amino types. * @category Config */ export declare const createSeiAminoTypes: () => AminoTypes; /** * Gets a @cosmjs/stargate client used to interact with the Sei chain. * * @example * With custom registry and amino types * ```tsx * import { getStargateClient } from '@sei-js/cosmjs'; * * ... * * // Create a client with registry * const signingClient = await getStargateClient(RPC_URL); * ``` * * @param rpcEndpoint The endpoint of the RPC node used to interact to the Sei chain. * @param options A StargateClientOptions object used to configure the stargate client. * @returns A StargateClient object used to interact with the Sei chain. * @category Clients */ export declare const getStargateClient: (rpcEndpoint: string | HttpEndpoint, options?: StargateClientOptions) => Promise; /** * Gets a @cosmjs/stargate client used to sign transactions on the Sei chain. * * @example * Standard usage * ```tsx * import { getSigningStargateClient } from '@sei-js/cosmjs'; * * // Don't forget to connect if using a wallet extension * // or create a wallet from a mnemonic (See above) * await window.compass.connect(chainId); * * const offlineSigner = await window.compass.getOfflineSigner(chainId); * * const signingClient = await getSigningStargateClient(RPC_URL, offlineSigner); * ``` * * @example * With custom registry and amino types * ```tsx * import { Registry } from "@cosmjs/proto-signing"; * import { defaultRegistryTypes } from "@cosmjs/stargate"; * import { getSigningStargateClient } from '@sei-js/cosmjs'; * import { aminoConverters, seiProtoRegistry } from "@sei-js/cosmos/encoding"; * * ... * * // Set up Sei proto registry * const registry = new Registry([ * ...defaultRegistryTypes, * ...seiProtoRegistry, * ]); * * // Create Amino Types * const aminoTypes = new AminoTypes(aminoConverters); * * const offlineSigner = await window.compass.getOfflineSigner(chainId); * * // Create a client with registry * const signingClient = await getSigningStargateClient(RPC_URL, offlineSigner, { registry, aminoTypes }); * ``` * * @example * Transfer tokens (Bank send): * ```tsx * import { calculateFee } from '@cosmjs/stargate'; * import { getSigningStargateClient } from '@sei-js/cosmjs'; * * const fee = calculateFee(100000, "0.1usei"); * const amount = { amount: SEND_AMOUNT, denom: TOKEN_DENOM }; * * const offlineSigner = await window.compass.getOfflineSigner(chainId); * * const signingClient = await getSigningStargateClient(RPC_URL, offlineSigner); * const sendResponse = await signingClient.sendTokens(SENDER_ADDRESS, DESTINATION_ADDRESS, [amount], fee); * ``` * * @example * IBC Transfer: * ```tsx * import { calculateFee } from '@cosmjs/stargate'; * import { Encoder } from '@sei-js/cosmos/encoding'; * * const amount = { amount: SEND_AMOUNT, denom: TOKEN_DENOM }; * * const ibcResponse = await signingClient.sendIbcTokens(SENDER_ADDRESS, DESTINATION_ADDRESS, amount, 'transfer', CHANNEL_ID, undefined, undefined, fee) * * // Create message to place an order * const msg = Encoder.cosmos.bank.v1beta1.MsgSend.fromPartial({ contractAddr, creator, funds, orders }); * const fee = calculateFee(150000, "0.1usei"); * * // Sign and broadcast the message * const response = signingClient.signAndBroadcast(firstAccount.address, [msg], fee); * ``` * * @param rpcEndpoint The endpoint of the RPC node used to interact to the Sei chain. * @param signer An OfflineAminoSigner or OfflineDirectSigner from @cosmjs/amino containing info about the signer. * @param options A SigningStargateClientOptions object used to configure the stargate client. * @returns A SigningStargateClient object used to sign transactions on the Sei chain. * @category Clients */ export declare const getSigningStargateClient: (rpcEndpoint: string | HttpEndpoint, signer: OfflineSigner, options?: SigningStargateClientOptions) => Promise;