Cosmos Snap Provider
The cosmos-snap-provider
is specifically designed for seamless integration of the Leap Cosmos Snap with the CosmJS client.
Installation
npm install @leapwallet/cosmos-snap-provider
or
yarn add @leapwallet/cosmos-snap-provider
Methods
cosmjsOfflineSigner
If you're already employing cosmjs libraries for transaction signing, cosmjsOfflineSigner
is recommended. It functions as an offline signer with existing cosmwasm clients. Before utilizing it as an offline signer, verify that the dapp is connected to the Snap.
Usage:
import { SigningStargateClient } from '@cosmjs/cosmwasm-stargate';
import { GasPrice } from '@cosmjs/stargate';
import { cosmjsOfflineSigner } from '@leapwallet/cosmos-snap-provider';
const offlineSigner = new cosmjsOfflineSigner(chainId);
const accounts = await offlineSigner.getAccounts();
const rpcUrl = ""; // Populate with an RPC URL corresponding to the given chainId
const stargateClient = await SigningStargateClient.connectWithSigner(
rpcUrl,
offlineSigner,
{
gasPrice: GasPrice.fromString("0.0025ujuno"),
}
);
getSnap
This method is used to detect if the Leap Cosmos Snap is installed within the user's browser instance of Metamask.
Usage:
import { getSnap } from '@leapwallet/cosmos-snap-provider';
const snapInstalled = await getSnap(); // Returns true if the snap is already installed
connectSnap
connectSnap
facilitates the connection to the Leap Cosmos Snap. If the Snap isn't installed, this function triggers its installation and establishes a connection.
Usage:
import { getSnap, connectSnap } from '@leapwallet/cosmos-snap-provider';
const snapInstalled = await getSnap();
if (!snapInstalled) {
connectSnap(); // Initiates installation if not already present
}
getKey
getKey
fetches the chain address corresponding to a specific chainId. Ensure the Snap is connected with the dapp before invoking this function.
const key = await getKey(chainId);
SuggestChain
Utilize the suggestChain
method to suggest any chains of coin type 118.
Usage:
import { suggestChain } from '@leapwallet/cosmos-snap-provider';
await suggestChain({
chainId: 'coreum-mainnet-1',
chainName: 'coreum',
bech32Config: {
bech32PrefixAccAddr: 'core',
},
bip44: {
coinType: 990,
},
feeCurrencies: [
{
coinDenom: "ucore",
coinMinimalDenom: "ucore",
coinDecimals: 6,
coinGeckoId: "coreum",
gasPriceStep: {
low: 0.0625,
average: 0.5,
high: 62.5,
},
},
],
});
Last updated