Skip to content

Commit 332e73a

Browse files
committed
Refactor escrow handling and transaction methods for new cancellation changes
1 parent cc60692 commit 332e73a

File tree

6 files changed

+237
-246
lines changed

6 files changed

+237
-246
lines changed

packages/sdk/typescript/subgraph/src/mapping/EscrowTemplate.ts

Lines changed: 46 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -485,50 +485,49 @@ function handleBulkTransferCommon(
485485
Address.fromBytes(escrowEntity.token)
486486
);
487487

488-
// If the escrow is non-HMT, track the balance data
489-
if (Address.fromBytes(escrowEntity.token) != HMT_ADDRESS) {
490-
for (let i = 0; i < recipients.length; i++) {
491-
const recipient = recipients[i];
492-
const amount = amounts[i];
493-
494-
escrowEntity.amountPaid = escrowEntity.amountPaid.plus(amount);
495-
escrowEntity.balance = escrowEntity.balance.minus(amount);
496-
497-
// Update worker, and create payout object
498-
const worker = createOrLoadWorker(recipient);
499-
worker.payoutCount = worker.payoutCount.plus(ONE_BI);
500-
worker.save();
501-
502-
const payoutId = event.transaction.hash.concat(recipient);
503-
const payment = new Payout(payoutId);
504-
payment.escrowAddress = event.address;
505-
payment.recipient = recipient;
506-
payment.amount = amount;
507-
payment.createdAt = event.block.timestamp;
508-
payment.save();
509-
510-
// Update event day data and daily worker
511-
const eventDayData = getEventDayData(event);
512-
eventDayData.dailyPayoutCount =
513-
eventDayData.dailyPayoutCount.plus(ONE_BI);
514-
515-
const eventDayId = toEventDayId(event);
516-
const dailyWorkerId = Bytes.fromI32(eventDayId.toI32()).concat(
517-
recipient
518-
);
519-
520-
let dailyWorker = DailyWorker.load(dailyWorkerId);
521-
if (!dailyWorker) {
522-
dailyWorker = new DailyWorker(dailyWorkerId);
523-
dailyWorker.timestamp = eventDayId;
524-
dailyWorker.address = recipient;
525-
dailyWorker.escrowAddress = event.address;
526-
dailyWorker.save();
527-
528-
eventDayData.dailyWorkerCount =
529-
eventDayData.dailyWorkerCount.plus(ONE_BI);
530-
}
488+
for (let i = 0; i < recipients.length; i++) {
489+
const recipient = recipients[i];
490+
const amount = amounts[i];
491+
492+
escrowEntity.amountPaid = escrowEntity.amountPaid.plus(amount);
493+
escrowEntity.balance = escrowEntity.balance.minus(amount);
494+
495+
// Update worker, and create payout object
496+
const worker = createOrLoadWorker(recipient);
497+
worker.payoutCount = worker.payoutCount.plus(ONE_BI);
498+
worker.save();
499+
500+
const payoutId = event.transaction.hash.concat(recipient);
501+
const payment = new Payout(payoutId);
502+
payment.escrowAddress = event.address;
503+
payment.recipient = recipient;
504+
payment.amount = amount;
505+
payment.createdAt = event.block.timestamp;
506+
payment.save();
507+
508+
// Update event day data and daily worker
509+
const eventDayData = getEventDayData(event);
510+
eventDayData.dailyPayoutCount =
511+
eventDayData.dailyPayoutCount.plus(ONE_BI);
512+
513+
const eventDayId = toEventDayId(event);
514+
const dailyWorkerId = Bytes.fromI32(eventDayId.toI32()).concat(recipient);
515+
516+
let dailyWorker = DailyWorker.load(dailyWorkerId);
517+
if (!dailyWorker) {
518+
dailyWorker = new DailyWorker(dailyWorkerId);
519+
dailyWorker.timestamp = eventDayId;
520+
dailyWorker.address = recipient;
521+
dailyWorker.escrowAddress = event.address;
522+
dailyWorker.save();
523+
524+
eventDayData.dailyWorkerCount =
525+
eventDayData.dailyWorkerCount.plus(ONE_BI);
526+
}
527+
eventDayData.save();
531528

529+
// If the escrow is non-HMT, create the internal transaction
530+
if (Address.fromBytes(escrowEntity.token) != HMT_ADDRESS) {
532531
const internalTransaction = new InternalTransaction(
533532
event.transaction.hash
534533
.concatI32(i)
@@ -541,8 +540,6 @@ function handleBulkTransferCommon(
541540
internalTransaction.method = 'transfer';
542541
internalTransaction.escrow = Address.fromBytes(escrowEntity.address);
543542
internalTransaction.save();
544-
545-
eventDayData.save();
546543
}
547544
}
548545

@@ -611,7 +608,7 @@ export function handleCancelled(event: Cancelled): void {
611608
if (escrowEntity) {
612609
createTransaction(
613610
event,
614-
'cancelled',
611+
'cancel',
615612
event.transaction.from,
616613
Address.fromBytes(escrowEntity.address),
617614
null,
@@ -789,7 +786,7 @@ export function handleCancellationRequested(
789786
if (escrowEntity) {
790787
createTransaction(
791788
event,
792-
'cancel',
789+
'requestCancellation',
793790
event.transaction.from,
794791
Address.fromBytes(escrowEntity.address),
795792
null,
@@ -827,8 +824,9 @@ export function handleCancellationRefund(event: CancellationRefund): void {
827824
internalTransaction.method = 'transfer';
828825
internalTransaction.token = Address.fromBytes(escrowEntity.token);
829826
internalTransaction.save();
830-
escrowEntity.balance = ZERO_BI;
831827
}
828+
escrowEntity.balance = escrowEntity.balance.minus(event.params.amount);
829+
escrowEntity.save();
832830

833831
const entity = new CancellationRefundEvent(toEventId(event));
834832
entity.block = event.block.number;

packages/sdk/typescript/subgraph/src/mapping/HMTokenTemplate.ts

Lines changed: 7 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1-
import { Address, BigInt, Bytes, dataSource } from '@graphprotocol/graph-ts';
1+
import {
2+
Address,
3+
BigInt,
4+
Bytes,
5+
dataSource,
6+
log,
7+
} from '@graphprotocol/graph-ts';
28

39
import {
410
Approval,
@@ -7,15 +13,13 @@ import {
713
Transfer,
814
} from '../../generated/HMToken/HMToken';
915
import {
10-
DailyWorker,
1116
Escrow,
1217
HMTApprovalEvent,
1318
HMTBulkApprovalEvent,
1419
HMTBulkTransferEvent,
1520
HMTTransferEvent,
1621
HMTokenStatistics,
1722
Holder,
18-
Payout,
1923
UniqueReceiver,
2024
UniqueSender,
2125
} from '../../generated/schema';
@@ -229,53 +233,6 @@ export function handleTransfer(event: Transfer): void {
229233
);
230234
uniqueReceiver.save();
231235

232-
// Track HMT transfer from Escrow for paidAmount, balance, and payout items
233-
const fromEscrow = Escrow.load(event.params._from);
234-
if (fromEscrow) {
235-
fromEscrow.amountPaid = fromEscrow.amountPaid.plus(event.params._value);
236-
fromEscrow.balance = fromEscrow.balance.minus(event.params._value);
237-
fromEscrow.save();
238-
239-
// Update worker, and create payout object
240-
const worker = createOrLoadWorker(event.params._to);
241-
worker.totalHMTAmountReceived = worker.totalHMTAmountReceived.plus(
242-
event.params._value
243-
);
244-
worker.payoutCount = worker.payoutCount.plus(ONE_BI);
245-
worker.save();
246-
247-
const payoutId = event.transaction.hash.concat(event.params._to);
248-
const payment = new Payout(payoutId);
249-
payment.escrowAddress = event.params._from;
250-
payment.recipient = event.params._to;
251-
payment.amount = event.params._value;
252-
payment.createdAt = event.block.timestamp;
253-
payment.save();
254-
255-
// Update worker and payout day data
256-
eventDayData.dailyPayoutCount = eventDayData.dailyPayoutCount.plus(ONE_BI);
257-
eventDayData.dailyHMTPayoutAmount = eventDayData.dailyHMTPayoutAmount.plus(
258-
event.params._value
259-
);
260-
261-
const eventDayId = toEventDayId(event);
262-
const dailyWorkerId = Bytes.fromI32(eventDayId.toI32()).concat(
263-
event.params._to
264-
);
265-
266-
let dailyWorker = DailyWorker.load(dailyWorkerId);
267-
if (!dailyWorker) {
268-
dailyWorker = new DailyWorker(dailyWorkerId);
269-
dailyWorker.timestamp = eventDayId;
270-
dailyWorker.address = event.params._to;
271-
dailyWorker.escrowAddress = event.params._from;
272-
dailyWorker.save();
273-
274-
eventDayData.dailyWorkerCount =
275-
eventDayData.dailyWorkerCount.plus(ONE_BI);
276-
}
277-
}
278-
279236
eventDayData.save();
280237
statsEntity.save();
281238
}

packages/sdk/typescript/subgraph/src/mapping/utils/transaction.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const mainMethods: string[] = [
1010
'bulkTransfer',
1111
'storeResults',
1212
'withdraw',
13-
'cancel',
13+
'requestCancellation',
1414
'stake',
1515
'unstake',
1616
'slash',

0 commit comments

Comments
 (0)