Skip to content

DaveVodrazka/starknetkit

 
 

Repository files navigation

🕹️ StarknetKit

Install starknetkit with npm or yarn

# latest official release (main branch)
$ npm install starknetkit

# or with yarn:
$ yarn add starknetkit

Imports

After installation, we get access to different methods, such as connect, disconnect, etc which we should import for use in our application:

import { connect, disconnect } from "starknetkit"

Establishing a connection

To establish a wallet connection, we need to call the connect method which was imported earlier like this:

const wallet = await connect()

By default, the list of connectors is:

  • Ready Wallet
  • Braavos
  • Ready (formerly Argent)
  • Web Wallet

Connect with specific connectors

const webwallet = await connect([new WebWalletConnector()])

const argentMobileWallet = await connect([
  new ArgentMobileConnector()
])

const wallet = await connect([
  new InjectedConnector({ options: { id: "argentX" } }),
  new InjectedConnector({ options: { id: "braavos" } })
])

Reconnect to a previously connected wallet on load:

const wallet = await connect({ modalMode: "neverAsk" })

Disconnect a wallet

await disconnect({ clearLastWallet: true })

Handle webwallet logout

In your application, import handleWebwalletLogoutEvent and pass a callback to manage the state of your dapp

useEffect(() => {
  handleWebwalletLogoutEvent(() => {
    // clear state
  })
}, [])

Listen to account change

const selectedConnectorWallet = getSelectedConnectorWallet()
selectedConnectorWallet.on("accountsChanged", () => {
  setWallet(prevState => {
    const updatedWallet = { ...prevState }
    updatedWallet.account = selectedConnectorWallet.account
    return updatedWallet
  })
})

📕 Guides

Guides can be found here

✏️ Contributing

If you consider to contribute to this project please read CONTRIBUTING.md first.

📜 License

Copyright (c) 2023

Licensed under the MIT license.

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 70.4%
  • Svelte 28.8%
  • Other 0.8%