import axios from "axios"; import * as didJwt from "did-jwt"; import { AppString } from "@/constants/app"; import { db } from "../db"; import { SERVICE_ID } from "../libs/veramo/setup"; import { deriveAddress, newIdentifier } from "../libs/crypto"; 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 accounts = await db.accounts.toArray(); const thisIdentity = JSON.parse(accounts[0].identity); // Make a claim const vcClaim = { "@context": "https://schema.org", "@type": "RegisterAction", agent: { did: identity0.did }, object: SERVICE_ID, participant: { did: thisIdentity.did }, }; // 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 = AppString.DEFAULT_ENDORSER_API_SERVER; const url = endorserApiServer + "/api/claim"; const headers = { "Content-Type": "application/json", }; const resp = await axios.post(url, payload, { headers }); console.log("Result:", resp); }