Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/develop' into cohort/clrfund
Browse files Browse the repository at this point in the history
  • Loading branch information
yuetloo committed Sep 5, 2023
2 parents 7dd2dcc + cebfed6 commit 7bdc5dc
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 16 deletions.
2 changes: 1 addition & 1 deletion contracts/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@clrfund/contracts",
"version": "4.3.0",
"version": "4.3.1",
"license": "GPL-3.0",
"scripts": {
"hardhat": "hardhat",
Expand Down
2 changes: 1 addition & 1 deletion subgraph/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@clrfund/subgraph",
"version": "4.3.0",
"version": "4.3.1",
"repository": "https://github.com/clrfund/monorepo/subgraph",
"keywords": [
"clr.fund",
Expand Down
2 changes: 1 addition & 1 deletion vue-app/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@clrfund/vue-app",
"version": "4.3.0",
"version": "4.3.1",
"private": true,
"license": "GPL-3.0",
"scripts": {
Expand Down
64 changes: 51 additions & 13 deletions vue-app/src/api/recipient-registry-optimistic.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ export enum RequestStatus {
Rejected = 'Rejected',
Executed = 'Live',
PendingRemoval = 'Pending removal',
RemovalAccepted = 'Removal accepted',
Removed = 'Removed',
}

Expand All @@ -74,6 +75,50 @@ export interface Request {
requester: string
}

interface RecipientRequestData {
requestType: RequestTypeCode
verified: boolean
rejected: boolean
acceptanceDate: DateTime
}

/**
* Map a recipient submission request to a status
* @param request `request type`, `verified`, `rejected` mapped
* by the subgraph, OptimisticRecipientRegistryMapping.ts,
* will be used to map the request status.
*
* Action | request type | verified | rejected
* ========================================================
* Add Requested | 0 | false | false
* Remove Requested | 1 | false | false
* Add Challenged | 0 | true | true
* Remove Challenged | 0 | true | false
* Add Resolved | 0 | true | false
* Remove Resolved | 1 | true | false
*
* @returns RequestStatus
*/
function mapRequestStatus(request: RecipientRequestData): RequestStatus {
let status: RequestStatus

if (request.rejected) {
status = RequestStatus.Rejected
} else {
if (request.verified) {
status = request.requestType === RequestTypeCode.Removal ? RequestStatus.Removed : RequestStatus.Executed
} else {
if (request.requestType === RequestTypeCode.Removal) {
status = hasDateElapsed(request.acceptanceDate) ? RequestStatus.RemovalAccepted : RequestStatus.PendingRemoval
} else {
status = hasDateElapsed(request.acceptanceDate) ? RequestStatus.Accepted : RequestStatus.Submitted
}
}
}

return status
}

export async function getRequests(registryInfo: RegistryInfo, registryAddress: string): Promise<Request[]> {
const data = await sdk.GetRecipients({
registryAddress: registryAddress.toLowerCase(),
Expand Down Expand Up @@ -118,26 +163,19 @@ export async function getRequests(registryInfo: RegistryInfo, registryAddress: s
const request: Request = {
transactionHash: recipient.requestResolvedHash || recipient.requestSubmittedHash,
type: RequestType[RequestTypeCode[requestType]],
status: hasDateElapsed(acceptanceDate) ? RequestStatus.Accepted : RequestStatus.Submitted,
status: mapRequestStatus({
requestType,
rejected: Boolean(recipient.rejected),
acceptanceDate,
verified: Boolean(recipient.verified),
}),
acceptanceDate,
recipientId: recipient.id,
recipient: recipient.recipientAddress,
metadata,
requester,
}

if (recipient.rejected) {
request.status = RequestStatus.Rejected
}

if (recipient.verified) {
request.status = requestType === RequestTypeCode.Removal ? RequestStatus.Removed : RequestStatus.Executed
} else {
if (requestType === RequestTypeCode.Removal) {
request.status = RequestStatus.PendingRemoval
}
}

// In case there are two requests submissions events, we always prioritize
// the last one since you can only have one request per recipient
requests[request.recipientId] = request
Expand Down

0 comments on commit 7bdc5dc

Please sign in to comment.