Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions packages/sui-indexer/src/handler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ export class SuiEventHandler {
} else if (e.type.includes("::nbtc::ProposeUtxoEvent")) {
await this.handleProposeUtxo(json as ProposeUtxoEventRaw);
} else if (e.type.includes("::nbtc::redeem_request::SolvedEvent")) {
await this.handleSolved(json as SolvedEventRaw);
await this.handleSolvedRedeem(json as SolvedEventRaw);
} else if (e.type.includes("::nbtc::redeem_request::SignatureRecordedEvent")) {
await this.handleIkaSignatureRecorded(json as SignatureRecordedEventRaw);
}
Expand Down Expand Up @@ -82,13 +82,13 @@ export class SuiEventHandler {
});
}

private async handleSolved(e: SolvedEventRaw) {
private async handleSolvedRedeem(e: SolvedEventRaw) {
await this.storage.upsertRedeemInputs(
Number(e.redeem_id),
e.utxo_ids.map(Number),
e.dwallet_ids,
);
await this.storage.markRedeemSolved(Number(e.redeem_id));
await this.storage.markRedeemSinging(Number(e.redeem_id));

logger.info({
msg: "Marked redeem as solved and added inputs",
Expand Down
2 changes: 1 addition & 1 deletion packages/sui-indexer/src/models.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ export interface Utxo {
export enum RedeemStatusEnum {
Pending = "pending",
Proposed = "proposed",
Solved = "solved",
Signing = "signing",
Signed = "signed",
}

Expand Down
14 changes: 7 additions & 7 deletions packages/sui-indexer/src/redeem-service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,14 +51,14 @@ export class RedeemService {
}
}

async processSolvedRedeems() {
async processSigningRedeems() {
// NOTE: here we are processing only 50 redeems every minute (every cron), we are not
// looping thought all the solved redeems to avoid cloudflare timeout, since we are
// already waiting for ika to sign, when calling ikaSdk.getPresignInParicularState
const solved = await this.storage.getSolvedRedeems();
if (solved.length === 0) return;
const sinnings = await this.storage.getSigningRedeems();
if (sinnings.length === 0) return;

for (const req of solved) {
for (const req of sinnings) {
await this.processSolvedRedeem(req);
}
}
Expand Down Expand Up @@ -394,12 +394,12 @@ export class RedeemService {
txDigest: txDigest,
});

await this.storage.markRedeemSolved(req.redeem_id);
await this.storage.markRedeemSinging(req.redeem_id);
} catch (e: unknown) {
logError(
{
msg: "Failed to solve redeem request",
method: "solveRequest",
msg: "Failed to update to signing",
method: "makeSigning",
redeemId: req.redeem_id,
},
e,
Expand Down
8 changes: 4 additions & 4 deletions packages/sui-indexer/src/storage.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -374,13 +374,13 @@ describe("IndexerStorage", () => {
.bind(RedeemRequestStatus.Proposed, 1)
.run();

await storage.markRedeemSolved(1);
await storage.markRedeemSinging(1);

const redeem = await db
.prepare("SELECT status FROM nbtc_redeem_requests WHERE redeem_id = ?")
.bind(1)
.first<{ status: string }>();
expect(redeem!.status).toBe(RedeemRequestStatus.Solved);
expect(redeem!.status).toBe(RedeemRequestStatus.Signing);
});

it("getActiveNetworks should return distinct active networks", async () => {
Expand Down Expand Up @@ -419,7 +419,7 @@ describe("IndexerStorage", () => {
null,
);
await storage.markRedeemProposed(1, [1], UTXO_LOCK_TIME_MS);
await storage.markRedeemSolved(1);
await storage.markRedeemSinging(1);
await storage.saveRedeemInputs([
{
redeem_id: 1,
Expand All @@ -430,7 +430,7 @@ describe("IndexerStorage", () => {
},
]);

const redeems = await storage.getSolvedRedeems();
const redeems = await storage.getSigningRedeems();

expect(redeems.length).toBe(1);
expect(redeems[0]!.redeem_id).toBe(1);
Expand Down
8 changes: 4 additions & 4 deletions packages/sui-indexer/src/storage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -330,11 +330,11 @@ export class D1Storage {
await this.db.batch([updateSolution, updateRequest]);
}

async markRedeemSolved(redeemId: number): Promise<void> {
async markRedeemSinging(redeemId: number): Promise<void> {
try {
await this.db
.prepare("UPDATE nbtc_redeem_requests SET status = ? WHERE redeem_id = ?")
.bind(RedeemRequestStatus.Solved, redeemId)
.bind(RedeemRequestStatus.Signing, redeemId)
.run();
} catch (error) {
logError(
Expand Down Expand Up @@ -474,7 +474,7 @@ export class D1Storage {
return results;
}

async getSolvedRedeems(): Promise<RedeemRequestWithInputs[]> {
async getSigningRedeems(): Promise<RedeemRequestWithInputs[]> {
const query = `
SELECT
r.redeem_id, r.setup_id, r.redeemer, r.recipient_script, r.amount, r.status, r.created_at,
Expand All @@ -488,7 +488,7 @@ export class D1Storage {
`;
const { results: requests } = await this.db
.prepare(query)
.bind(RedeemRequestStatus.Solved)
.bind(RedeemRequestStatus.Signing)
.all<RedeemRequestRow>();

if (requests.length === 0) {
Expand Down
Loading