UNPKG

@samudai_xyz/web3-sdk

Version:

## All in one web3 integrations for Samudai

52 lines (51 loc) 1.84 kB
import { SiweMessage, generateNonce } from 'siwe'; export class Siwe { constructor(provider) { this.createMessage = async (address, statement, domain) => { try { const nonce = generateNonce(); const validFor = 24 * 60 * 60 * 1000; const expirationDate = new Date(Date.now() + validFor).toISOString(); const message = new SiweMessage({ domain: domain, address: address, uri: origin, version: '1.0.0', chainId: 1, statement: statement, nonce: nonce, expirationTime: expirationDate, }); return message.prepareMessage(); } catch (err) { console.log(err); return `Error: ${err}`; } }; this.walletSignIn = async (domain) => { try { const signer = this.provider.getSigner(); const address = await signer.getAddress(); const message = await this.createMessage(address, 'Samudai DAO Dashboard Sign In Request', domain); const signature = await signer.signMessage(message); return { message: message, signature: signature, error: null, }; } catch (err) { return { message: '', signature: '', error: { message: 'Error while signing message', error: `Error: ${err}`, }, }; } }; this.provider = provider; } }