npm.io
1.20.18 • Published 5d ago

@injectivelabs/wallet-wallet-connect

Licence
Apache-2.0
Version
1.20.18
Deps
6
Size
52 kB
Vulns
0
Weekly
3.7K

Injective Protocol - Wallet connect Wallet Strategy

downloads npm-version license

Package to use Wallet Connect Wallets on Injective via the wallet strategy.


Installation

pnpm add @injectivelabs/wallet-wallet-connect

Documentation

Injective's wallet packages are intended to make it easy for developers to choose exactly what wallets - and subsequent dependencies - they want to include in their projects.

Keep in mind to include specific wallet images in your public directory, right now we only have:

  • Fireblocks (path: wallet-connect/fireblocks.webp)

Regardless of which wallet package(s) you choose to use you must also have @injectivelabs/wallet-core and @injectivelabs/wallet-base installed. These contain all of the types and core wallet functionality, with the separate wallet packages only providing the necessary dependencies and implementations for their specific wallets.

Here's a brief example of how to use this package to send 1 INJ.:

import { Wallet } from '@injectivelabs/wallet-base'
import { BaseWalletStrategy, MsgBroadcaster } from '@injectivelabs/wallet-core'
import { WalletConnectStrategy } from '@injectivelabs/wallet-wallet-connect'

const strategyArgs: WalletStrategyArguments = {
  chainId: ChainId.Mainnet,
  wallet: Wallet.WalletConnect,
  strategies: {
    [Wallet.WalletConnect]: new WalletConnectStrategy({
      chainId: ChainId.Mainnet,
      metadata: {
        projectId: 'YOUR_PROJECT_ID',
      },
      ethereumOptions: {
        ethereumChainId: EthereumChainId.Mainnet,
      },
    }),
  },
}
const walletStrategy = new BaseWalletStrategy(strategyArgs)

const msgBroadcaster = new MsgBroadcaster({
  walletStrategy,
  simulateTx: true,
  network: Network.Mainnet,
})

const sendTX = async () => {
  const injectiveAddress = 'someInjectiveAddress'

  const message = MsgSend.fromJSON({
    srcInjectiveAddress: injectiveAddress,
    dstInjectiveAddress: injectiveAddress,
    amount: {
      amount: '1',
      denom: 'inj',
    },
  })

  return await msgBroadcaster.broadcastV2({ msgs: message })
}

const result = await sendTX()

Read more and find example usages on our WalletStrategy Docs


Contribution

Contribution guides and practices will be available once there is a stable foundation of the whole package set within the injective-ts repo.


Support

Reach out to us at one of the following places!


License

Copyright 2021 - 2022 Injective Labs Inc. (https://injectivelabs.org/)

Originally released by Injective Labs Inc. under:
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

 

Powering the future of decentralized finance.