By the integration, your DApps can fully communicate with Senhub platform.
npm i @sentre/connector
or,
yarn add @sentre/connector
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
]
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',
)
}
👉 Test your DApps locally by Senhub Connector Tester.
This module is heavily inspired by JWT. However, JST (Json Solana Token) adopted Solana wallet adapter standard as the main cryptography mechanism.
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)