@sentre/connector
v0.1.2
Published
π€ Senhub Connector to power your DApps with Senhub Platform
Downloads
6,516
Readme
π€ Senhub Connector
By the integration, your DApps can fully communicate with Senhub platform.
Installation
npm i @sentre/connector
or,
yarn add @sentre/connector
To use
With @solana/wallet-adapter
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.
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)