import { SignedDataStruct, TypedDataDomain, TypedDataField } from "../web3/provider"; /** * This returns a SignedDataStruct. * @param AuthSignature * @param domain * @param nonce * @private * @returns The structured data */ export function getSignedDataStruct( AuthSignature: any, domain: any, nonce: number): SignedDataStruct { return { types: { EIP712Domain: getEIP712Domain(), AuthSignature, }, domain, primaryType: "AuthSignature", message: { value: `Authentication message: ${nonce}` }, }; } /** * Composes the domain definition object. * @private * @returns Domain definition object */ export function getEIP712Domain(): Array { return [ { name: "name", type: "string" }, { name: "version", type: "string" }, { name: "chainId", type: "uint256" }, { name: "verifyingContract", type: "address" }, ]; } /** * Compose the domain object. * @param chainId * @private * @returns Domain object */ export function getDomain(chainId: number): TypedDataDomain { return { name: "Boson Protocol", version: "1", chainId: chainId, verifyingContract: "0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC", } }