UNPKG

@0xfutbol/id

Version:

React component library with shared providers for 0xFutbol ID

66 lines (65 loc) 2.35 kB
'use strict';/** * Create an EIP-4361 & CAIP-122 compliant message to sign based on the login payload * @param payload - The login payload containing the necessary information. * @returns The generated login message. * @internal */ function createLoginMessage(payload) { const typeField = "Ethereum"; const header = `${payload.domain} wants you to sign in with your ${typeField} account:`; let prefix = [header, payload.address].join("\n"); prefix = [prefix, payload.statement].join("\n\n"); if (payload.statement) { prefix += "\n"; } const suffixArray = []; if (payload.uri) { const uriField = `URI: ${payload.uri}`; suffixArray.push(uriField); } const versionField = `Version: ${payload.version}`; suffixArray.push(versionField); if (payload.chain_id) { const chainField = `Chain ID: ${payload.chain_id}` || "1"; suffixArray.push(chainField); } const nonceField = `Nonce: ${payload.nonce}`; suffixArray.push(nonceField); const issuedAtField = `Issued At: ${payload.issued_at}`; suffixArray.push(issuedAtField); const expiryField = `Expiration Time: ${payload.expiration_time}`; suffixArray.push(expiryField); if (payload.invalid_before) { const invalidBeforeField = `Not Before: ${payload.invalid_before}`; suffixArray.push(invalidBeforeField); } if (payload.resources) { suffixArray.push(["Resources:", ...payload.resources.map((x) => `- ${x}`)].join("\n")); } const suffix = suffixArray.join("\n"); return [prefix, suffix].join("\n"); }/** * Signs the login payload using the provided account. * @param options - The options for signing the login payload. * @returns An object containing the signature and the payload. * @example * ```ts * import { signLoginPayload } from 'thirdweb/auth'; * * const { signature, payload } = await signLoginPayload({ * payload: loginPayload, * account: account, * }); * ``` * @auth */ async function signLoginPayload(options) { const { payload, account } = options; const signature = await account.signMessage({ message: createLoginMessage(payload), }); return { signature, payload, }; }exports.signLoginPayload=signLoginPayload;//# sourceMappingURL=sign-login-payload-BvuOpVPp.js.map