@reown/appkit-siwx
Version:
The chain agnostic tool to enable authentication for AppKit applications.
26 lines • 904 B
JavaScript
import bs58 from 'bs58';
import nacl from 'tweetnacl';
import { ConstantsUtil } from '@reown/appkit-common';
import { SIWXVerifier } from '../core/SIWXVerifier.js';
/**
* Default verifier for Solana sessions.
*/
export class SolanaVerifier extends SIWXVerifier {
constructor() {
super(...arguments);
this.chainNamespace = ConstantsUtil.CHAIN.SOLANA;
}
async verify(session) {
try {
const publicKey = bs58.decode(session.data.accountAddress);
const signature = bs58.decode(session.signature);
const message = new TextEncoder().encode(session.message.toString());
const isValid = nacl.sign.detached.verify(message, signature, publicKey);
return Promise.resolve(isValid);
}
catch (error) {
return Promise.resolve(false);
}
}
}
//# sourceMappingURL=SolanaVerifier.js.map