Function getSigningStargateClient

Gets a @cosmjs/stargate client used to sign transactions on the Sei chain.

Standard usage

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);

With custom registry and amino types

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 });

Transfer tokens (Bank send):

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);

IBC Transfer:

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);
  • Parameters

    • rpcEndpoint: string | HttpEndpoint

      The endpoint of the RPC node used to interact to the Sei chain.

    • signer: OfflineSigner

      An OfflineAminoSigner or OfflineDirectSigner from @cosmjs/amino containing info about the signer.

    • Optionaloptions: SigningStargateClientOptions

      A SigningStargateClientOptions object used to configure the stargate client.

    Returns Promise<SigningStargateClient>

    A SigningStargateClient object used to sign transactions on the Sei chain.