import axios from "axios"; import * as didJwt from "did-jwt"; import { AppString } from "@/constants/app"; import { db } from "../db"; import { SERVICE_ID } from "../libs/endorserServer"; import { deriveAddress, newIdentifier } from "../libs/crypto"; import { MASTER_SETTINGS_KEY } from "@/db/tables/settings"; export async function testServerRegisterUser() { const testUser0Mnem = "seminar accuse mystery assist delay law thing deal image undo guard initial shallow wrestle list fragile borrow velvet tomorrow awake explain test offer control"; const [addr, privateHex, publicHex, deriPath] = deriveAddress(testUser0Mnem); const identity0 = newIdentifier(addr, publicHex, privateHex, deriPath); await db.open(); const settings = await db.settings.get(MASTER_SETTINGS_KEY); // Make a claim const vcClaim = { "@context": "https://schema.org", "@type": "RegisterAction", agent: { did: identity0.did }, object: SERVICE_ID, participant: { did: settings?.activeDid }, }; // Make a payload for the claim const vcPayload = { sub: "RegisterAction", vc: { "@context": ["https://www.w3.org/2018/credentials/v1"], type: ["VerifiableCredential"], credentialSubject: vcClaim, }, }; // create a signature using private key of identity // eslint-disable-next-line const privateKeyHex: string = identity0.keys[0].privateKeyHex!; const signer = await didJwt.SimpleSigner(privateKeyHex); const alg = undefined; // create a JWT for the request const vcJwt: string = await didJwt.createJWT(vcPayload, { alg: alg, issuer: identity0.did, signer: signer, }); // Make the xhr request payload const payload = JSON.stringify({ jwtEncoded: vcJwt }); const endorserApiServer = settings?.apiServer || AppString.TEST_ENDORSER_API_SERVER; const url = endorserApiServer + "/api/claim"; const headers = { "Content-Type": "application/json", }; const resp = await axios.post(url, payload, { headers }); console.log("User registration result:", resp); }