@injectivelabs/wallet-turnkey
v1.17.3
Published
Turnkey wallet strategy for use with @injectivelabs/wallet-core.
Downloads
3,645
Maintainers
Keywords
Readme
🌟 Injective Protocol - Turnkey Wallet Strategy
Package to use Turnkey Wallet on Injective via the wallet strategy.
📚 Installation
pnpm add @injectivelabs/wallet-turnkey📖 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.
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 { TurnkeyWallet } from '@injectivelabs/wallet-turnkey'
const strategyArgs: WalletStrategyArguments = {
chainId: ChainId.Mainnet,
wallet: Wallet.Turnkey,
strategies: {
[Wallet.Turnkey]: new TurnkeyWallet({
onStatusChange(status) {
turnkeyStatus.value = status
},
chainId: injectiveClients.chainId,
ethereumOptions: {
ethereumChainId: injectiveClients.ethereumChainId!,
},
metadata: {
turnkeyAuthIframeContainerId,
defaultOrganizationId: import.meta.env
.VITE_TURNKEY_DEFAULT_ORGANIZATION_ID,
apiBaseUrl: 'https://api.turnkey.com',
},
}),
},
}
const walletStrategy = new BaseWalletStrategy(strategyArgs)
const msgBroadcaster = new MsgBroadcaster({
walletStrategy,
simulateTx: true,
network: Network.Mainnet,
ethereumChainId: injectiveClients.ethereumChainId!,
endpoints: injectiveClients.endpoints,
})
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!
- Website at
injective.com - Twitter at
@Injective - Discord at
Discord - Telegram at
Telegram
🔓 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/
