@reown/appkit-siwe-react-native
Version:
#### 🔎 [Examples](https://github.com/reown-com/react-native-examples)
31 lines (30 loc) • 978 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getAddressFromMessage = getAddressFromMessage;
exports.getChainIdFromMessage = getChainIdFromMessage;
exports.verifySignature = verifySignature;
var _utils = require("@walletconnect/utils");
const ETH_ADDRESS_PATTERN = /0x[a-fA-F0-9]{40}/u;
const ETH_CHAIN_ID_IN_SIWE_PATTERN = /Chain ID: (?<temp1>\d+)/u;
function getAddressFromMessage(message) {
return message.match(ETH_ADDRESS_PATTERN)?.[0] || '';
}
function getChainIdFromMessage(message) {
return `eip155:${message.match(ETH_CHAIN_ID_IN_SIWE_PATTERN)?.[1] || 1}`;
}
async function verifySignature({
address,
message,
signature,
chainId,
projectId
}) {
let isValid = await (0, _utils.isValidEip191Signature)(address, message, signature);
if (!isValid) {
isValid = await (0, _utils.isValidEip1271Signature)(address, message, signature, chainId, projectId);
}
return isValid;
}
//# sourceMappingURL=index.js.map