Skip to content

Commit 521d771

Browse files
authored
fix: pox4 properties missing in various endpoints (#1977)
1 parent 85ea5af commit 521d771

File tree

5 files changed

+38
-5
lines changed

5 files changed

+38
-5
lines changed

src/api/routes/v2/helpers.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,5 +198,12 @@ export function parseDbPoxSignerStacker(stacker: DbPoxCycleSignerStacker): PoxSt
198198
stacked_amount: stacker.locked,
199199
pox_address: stacker.pox_addr,
200200
};
201+
// Special handling for pool operator stackers
202+
if (
203+
stacker.name === 'stack-aggregation-commit-indexed' ||
204+
stacker.name === 'stack-aggregation-commit'
205+
) {
206+
result.stacked_amount = stacker.amount_ustx;
207+
}
201208
return result;
202209
}

src/datastore/common.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1094,6 +1094,8 @@ export interface DbPoxCycleSignerStacker {
10941094
stacker: string;
10951095
locked: string;
10961096
pox_addr: string;
1097+
name: string;
1098+
amount_ustx: string;
10971099
}
10981100

10991101
interface ReOrgEntities {

src/datastore/pg-store-v2.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -688,7 +688,7 @@ export class PgStoreV2 extends BasePgStoreModule {
688688
);
689689
const results = await sql<(DbPoxCycleSignerStacker & { total: number })[]>`
690690
WITH stackers AS (
691-
SELECT DISTINCT ON (stacker) stacker, locked, pox_addr
691+
SELECT DISTINCT ON (stacker) stacker, locked, pox_addr, amount_ustx, name
692692
FROM pox4_events
693693
WHERE canonical = true
694694
AND microblock_canonical = true

src/datastore/pg-store.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1938,8 +1938,10 @@ export class PgStore extends BasePgStore {
19381938
if (!dbTx.found) {
19391939
return { found: false };
19401940
}
1941+
const cols =
1942+
poxTable === 'pox4_events' ? POX4_SYNTHETIC_EVENT_COLUMNS : POX_SYNTHETIC_EVENT_COLUMNS;
19411943
const queryResults = await sql<PoxSyntheticEventQueryResult[]>`
1942-
SELECT ${sql(POX_SYNTHETIC_EVENT_COLUMNS)}
1944+
SELECT ${sql(cols)}
19431945
FROM ${sql(poxTable)}
19441946
WHERE canonical = true AND microblock_canonical = true AND tx_id = ${txId}
19451947
ORDER BY block_height DESC, microblock_sequence DESC, tx_index DESC, event_index DESC
@@ -1957,8 +1959,10 @@ export class PgStore extends BasePgStore {
19571959
poxTable: PoxSyntheticEventTable;
19581960
}): Promise<FoundOrNot<DbPoxSyntheticEvent[]>> {
19591961
return await this.sqlTransaction(async sql => {
1962+
const cols =
1963+
poxTable === 'pox4_events' ? POX4_SYNTHETIC_EVENT_COLUMNS : POX_SYNTHETIC_EVENT_COLUMNS;
19601964
const queryResults = await sql<PoxSyntheticEventQueryResult[]>`
1961-
SELECT ${sql(POX_SYNTHETIC_EVENT_COLUMNS)}
1965+
SELECT ${sql(cols)}
19621966
FROM ${sql(poxTable)}
19631967
WHERE canonical = true AND microblock_canonical = true AND stacker = ${principal}
19641968
ORDER BY block_height DESC, microblock_sequence DESC, tx_index DESC, event_index DESC
@@ -2349,7 +2353,7 @@ export class PgStore extends BasePgStore {
23492353
// Special case for `handle-unlock` which should be returned if it is the last received event.
23502354

23512355
const pox4EventQuery = await sql<PoxSyntheticEventQueryResult[]>`
2352-
SELECT ${sql(POX_SYNTHETIC_EVENT_COLUMNS)}
2356+
SELECT ${sql(POX4_SYNTHETIC_EVENT_COLUMNS)}
23532357
FROM pox4_events
23542358
WHERE canonical = true AND microblock_canonical = true AND stacker = ${stxAddress}
23552359
AND block_height <= ${blockHeight}
@@ -4243,7 +4247,7 @@ export class PgStore extends BasePgStore {
42434247

42444248
let poxV4Unlocks: StxLockEventResult[] = [];
42454249
const pox4EventQuery = await sql<PoxSyntheticEventQueryResult[]>`
4246-
SELECT DISTINCT ON (stacker) stacker, ${sql(POX_SYNTHETIC_EVENT_COLUMNS)}
4250+
SELECT DISTINCT ON (stacker) stacker, ${sql(POX4_SYNTHETIC_EVENT_COLUMNS)}
42474251
FROM pox4_events
42484252
WHERE canonical = true AND microblock_canonical = true
42494253
AND block_height <= ${block.block_height}

src/tests-2.5/pox-4-delegate-aggregation.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,26 @@ describe('PoX-4 - Delegate aggregation increase operations', () => {
319319
name: 'stack-aggregation-commit-indexed',
320320
pox_addr: delegateeAccount.btcTestnetAddr,
321321
stacker: delegatorAccount.stxAddr,
322+
data: expect.objectContaining({
323+
signer_key: `0x${signerPubKey}`,
324+
end_cycle_id: expect.stringMatching(/\d+/),
325+
start_cycle_id: expect.stringMatching(/\d+/),
326+
}),
327+
})
328+
);
329+
330+
const stackerRes: any = await fetchGet(`/extended/v1/pox4/stacker/${delegatorAccount.stxAddr}`);
331+
expect(stackerRes).toBeDefined();
332+
expect(stackerRes.results[0]).toEqual(
333+
expect.objectContaining({
334+
name: 'stack-aggregation-commit-indexed',
335+
pox_addr: delegateeAccount.btcTestnetAddr,
336+
stacker: delegatorAccount.stxAddr,
337+
data: expect.objectContaining({
338+
signer_key: `0x${signerPubKey}`,
339+
end_cycle_id: expect.stringMatching(/\d+/),
340+
start_cycle_id: expect.stringMatching(/\d+/),
341+
}),
322342
})
323343
);
324344
});

0 commit comments

Comments
 (0)