Skip to content

DescartesNetwork/sen-connector

Repository files navigation

🤝 Senhub Connector

https://img.shields.io/npm/v/@sentre/connector https://img.shields.io/npm/dw/@sentre/connector https://img.shields.io/bundlephobia/min/@sentre/connector https://img.shields.io/github/issues-raw/descartesnetwork/sen-connector https://img.shields.io/github/license/descartesnetwork/sen-connector

https://img.shields.io/twitter/follow/SentreProtocol?style=social

By the integration, your DApps can fully communicate with Senhub platform.

Installation

npm i @sentre/connector

or,

yarn add @sentre/connector

To use

import {
  PhantomWalletAdapter,
  SlopeWalletAdapter,
} from '@solana/wallet-adapter-wallets'
import { SentreWalletAdapter } from '@sentre/connector'

// Add SentreWalletAdapter with your provided app id to @solana/wallet-adapter
// Example: https://solana-labs.github.io/wallet-adapter/

const appId = 'my-app-id'
const wallets = [
  new SentreWalletAdapter({ appId }),
  new PhantomWalletAdapter(),
  new SlopeWalletAdapter(),
  // Other wallets
]

Manual integration

import { WalletConnector } from '@sentre/connector'

const wallet = new WalletConnector('my_app_id')
const isConnected = await wallet.isConnected()
if (isConnected) {
  // Get the address
  const address = await wallet.getAddress()
  // Sign a transaction
  const signedTransaction = await wallet.signTransaction(transaction)
  // Sign multiple transactions
  const signedTransactions = await wallet.signAllTransactions(transactions)
  // Sign a message
  const { signature, address, message } = await wallet.signMessage(
    'the message needs to be signed',
  )
}

Testing

👉 Test your DApps locally by Senhub Connector Tester.

action

OAuth

This module is heavily inspired by JWT. However, JST (Json Solana Token) adopted Solana wallet adapter standard as the main cryptography mechanism.

Usage

import { OAuth } from '@sentre/connector'

const jst = OAuth.issue({ issuer: 'hub.sentre.io' }) // Default at one month of expiration

// On client side
// To sign the jst to get bearer
const bearer = await OAuth.sign(jst, signer)

// On server side
// To verify the bearer
const ok = OAuth.verify(bearer)
// If you want to catch error messages
try {
  OAuth.verify(bearer, true)
} catch (er: any) {
  console.log(`Verify failed because: ${er.message}`)
}

// To read bearer details
const { publicKey, signature, jst } = OAuth.parse(bearer)

Examples

👉 Authenticate with Keypair

About

🤝 Senhub Connector to power your DApps with Senhub Platform

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published