Skip to content

Commit

Permalink
feat(claim): move register onchain from issue
Browse files Browse the repository at this point in the history
  • Loading branch information
JGiter committed Dec 3, 2021
1 parent b3ee6f2 commit 926eb95
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 1 deletion.
19 changes: 19 additions & 0 deletions docs/api/classes/modules_claims_claims_service.ClaimsService.md
Expand Up @@ -26,6 +26,7 @@
- [issueClaim](modules_claims_claims_service.ClaimsService.md#issueclaim)
- [issueClaimRequest](modules_claims_claims_service.ClaimsService.md#issueclaimrequest)
- [publishPublicClaim](modules_claims_claims_service.ClaimsService.md#publishpublicclaim)
- [registerOnchain](modules_claims_claims_service.ClaimsService.md#registeronchain)
- [rejectClaimRequest](modules_claims_claims_service.ClaimsService.md#rejectclaimrequest)
- [create](modules_claims_claims_service.ClaimsService.md#create)

Expand Down Expand Up @@ -356,6 +357,24 @@ ulr to ipfs

___

### registerOnchain

**registerOnchain**(`claimId`): `Promise`<`void`\>

**`description`** Registers issued onchain claim with Claim manager

#### Parameters

| Name | Type |
| :------ | :------ |
| `claimId` | `string` |

#### Returns

`Promise`<`void`\>

___

### rejectClaimRequest

**rejectClaimRequest**(`__namedParameters`): `Promise`<`void`\>
Expand Down
30 changes: 29 additions & 1 deletion src/modules/claims/claims.service.ts
Expand Up @@ -25,6 +25,7 @@ import {
erc712_type_hash,
proof_type_hash,
typedMsgPrefix,
Claim,
} from "./claims.types";
import { DidRegistry } from "../didRegistry/didRegistry.service";
import { ClaimData } from "../didRegistry/did.types";
Expand Down Expand Up @@ -216,6 +217,33 @@ export class ClaimsService {
return this._cacheClient.issueClaim(this._signerService.did, message);
}

/**
* @description Registers issued onchain claim with Claim manager
*/
async registerOnchain(claimId: Claim["id"]) {
const claim = (await this.getClaimById(claimId)) as Required<Claim>;
const { token, subjectAgreement, onChainProof } = claim;
const { claimData, sub } = this._didRegistry.jwt.decode(token) as {
claimData: { claimType: string; claimTypeVersion: number; expiry: number };
sub: string;
};
const expiry = claimData.expiry === undefined ? defaultClaimExpiry : claimData.expiry;
const { claimType: role, claimTypeVersion: version } = claimData;
const data = this._claimManagerInterface.encodeFunctionData("register", [
addressOf(sub),
namehash(role),
version,
expiry,
addressOf(this._signerService.did),
subjectAgreement,
onChainProof,
]);
await this._signerService.send({
to: this._claimManager,
data,
});
}

async rejectClaimRequest({ id, requesterDID }: { id: string; requesterDID: string }) {
const message: IClaimRejection = {
id,
Expand Down Expand Up @@ -377,7 +405,7 @@ export class ClaimsService {
private async createOnChainProof(role: string, version: number, expiry: number, subject: string): Promise<string> {
const messageId = Buffer.from(typedMsgPrefix, "hex");

const chainId = await this._signerService.chainId;
const chainId = this._signerService.chainId;
const domainSeparator = utils.keccak256(
defaultAbiCoder.encode(
["bytes32", "bytes32", "bytes32", "uint256", "address"],
Expand Down

0 comments on commit 926eb95

Please sign in to comment.