https://github.com/descartesnetwork/sen-connector
🤝 Senhub Connector to power your DApps with Senhub Platform
https://github.com/descartesnetwork/sen-connector
Last synced: 9 months ago
JSON representation
🤝 Senhub Connector to power your DApps with Senhub Platform
- Host: GitHub
- URL: https://github.com/descartesnetwork/sen-connector
- Owner: DescartesNetwork
- License: mit
- Created: 2022-05-23T03:26:53.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2022-10-10T16:12:28.000Z (almost 4 years ago)
- Last Synced: 2025-01-28T18:16:20.317Z (over 1 year ago)
- Language: TypeScript
- Homepage: https://connector.sentre.io
- Size: 471 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 🤝 Senhub Connector
[](https://www.npmjs.com/package/@sentre/connector)
[](https://www.npmjs.com/package/@sentre/connector)
[](https://www.npmjs.com/package/@sentre/connector)
[](https://github.com/DescartesNetwork/sen-connector)
[](https://github.com/DescartesNetwork/sen-connector)
[](https://twitter.com/SentreProtocol)
By the integration, your DApps can fully communicate with Senhub platform.
## Installation
```bash
npm i @sentre/connector
```
or,
```bash
yarn add @sentre/connector
```
## To use
### With [@solana/wallet-adapter](https://solana-labs.github.io/wallet-adapter/)
```ts
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
```ts
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](https://hub.sentre.io/app/connector_tester?autoInstall=true).
[](https://hub.sentre.io/app/connector_tester?autoInstall=true)
## OAuth
This module is heavily inspired by [JWT](https://www.npmjs.com/package/jsonwebtoken). However, JST (Json Solana Token) adopted Solana wallet adapter standard as the main cryptography mechanism.
### Usage
```ts
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](https://github.com/DescartesNetwork/sen-connector/blob/master/tests/oauth.test.ts)