@samudai_xyz/web3-sdk
Version:
## All in one web3 integrations for Samudai
56 lines (55 loc) • 1.96 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Siwe = void 0;
const siwe_1 = require("siwe");
class Siwe {
constructor(provider) {
this.createMessage = async (address, statement, domain) => {
try {
const nonce = (0, siwe_1.generateNonce)();
const validFor = 24 * 60 * 60 * 1000;
const expirationDate = new Date(Date.now() + validFor).toISOString();
const message = new siwe_1.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;
}
}
exports.Siwe = Siwe;