@secondlayer/shared 6.1.0 → 6.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -103,6 +103,8 @@ interface ApiKeysTable {
103
103
  rate_limit: Generated<number>;
104
104
  ip_address: string;
105
105
  account_id: string;
106
+ product: Generated<"account" | "streams" | "index">;
107
+ tier: "free" | "build" | "scale" | "enterprise" | null;
106
108
  last_used_at: Date | null;
107
109
  revoked_at: Date | null;
108
110
  created_at: Generated<Date>;
@@ -313,6 +315,208 @@ interface ChainReorgsTable {
313
315
  new_canonical_event_index: number;
314
316
  created_at: Generated<Date>;
315
317
  }
318
+ type Pox4FunctionName = "stack-stx" | "delegate-stx" | "stack-extend" | "stack-increase" | "revoke-delegate-stx" | "delegate-stack-stx" | "delegate-stack-extend" | "delegate-stack-increase" | "stack-aggregation-commit" | "stack-aggregation-commit-indexed" | "stack-aggregation-increase" | "set-signer-key-authorization";
319
+ interface Pox4CallsTable {
320
+ cursor: string;
321
+ block_height: number;
322
+ block_time: Date;
323
+ burn_block_height: number;
324
+ tx_id: string;
325
+ tx_index: number;
326
+ function_name: Pox4FunctionName;
327
+ caller: string;
328
+ stacker: string | null;
329
+ delegate_to: string | null;
330
+ amount_ustx: string | null;
331
+ lock_period: number | null;
332
+ pox_addr_version: number | null;
333
+ pox_addr_hashbytes: string | null;
334
+ pox_addr_btc: string | null;
335
+ start_cycle: number | null;
336
+ end_cycle: number | null;
337
+ signer_key: string | null;
338
+ signer_signature: string | null;
339
+ auth_id: string | null;
340
+ max_amount: string | null;
341
+ reward_cycle: number | null;
342
+ aggregated_amount_ustx: string | null;
343
+ aggregated_signer_index: number | null;
344
+ auth_period: number | null;
345
+ auth_topic: string | null;
346
+ auth_allowed: boolean | null;
347
+ result_ok: boolean;
348
+ result_raw: string;
349
+ canonical: Generated<boolean>;
350
+ source_cursor: string;
351
+ created_at: Generated<Date>;
352
+ }
353
+ interface Pox4CyclesDailyTable {
354
+ date: string;
355
+ reward_cycle: number;
356
+ total_stacked_ustx: Generated<string>;
357
+ solo_stackers: Generated<number>;
358
+ delegated_principals: Generated<number>;
359
+ unique_pools: Generated<number>;
360
+ unique_signers: Generated<number>;
361
+ calls_today: Generated<number>;
362
+ updated_at: Generated<Date>;
363
+ }
364
+ interface Pox4SignersDailyTable {
365
+ date: string;
366
+ reward_cycle: number;
367
+ signer_key: string;
368
+ weight_ustx: Generated<string>;
369
+ stacker_count: Generated<number>;
370
+ aggregation_calls: Generated<number>;
371
+ updated_at: Generated<Date>;
372
+ }
373
+ type SbtcEventTopic = "completed-deposit" | "withdrawal-create" | "withdrawal-accept" | "withdrawal-reject" | "key-rotation" | "update-protocol-contract";
374
+ interface SbtcEventsTable {
375
+ cursor: string;
376
+ block_height: number;
377
+ block_time: Date;
378
+ tx_id: string;
379
+ tx_index: number;
380
+ event_index: number;
381
+ topic: SbtcEventTopic;
382
+ request_id: number | null;
383
+ amount: string | null;
384
+ sender: string | null;
385
+ recipient_btc_version: number | null;
386
+ recipient_btc_hashbytes: string | null;
387
+ bitcoin_txid: string | null;
388
+ output_index: number | null;
389
+ sweep_txid: string | null;
390
+ burn_hash: string | null;
391
+ burn_height: number | null;
392
+ signer_bitmap: string | null;
393
+ max_fee: string | null;
394
+ fee: string | null;
395
+ block_height_at_request: number | null;
396
+ governance_contract_type: number | null;
397
+ governance_new_contract: string | null;
398
+ signer_aggregate_pubkey: string | null;
399
+ signer_threshold: number | null;
400
+ signer_address: string | null;
401
+ signer_keys_count: number | null;
402
+ canonical: Generated<boolean>;
403
+ source_cursor: string;
404
+ created_at: Generated<Date>;
405
+ }
406
+ type SbtcTokenEventType = "transfer" | "mint" | "burn";
407
+ interface SbtcTokenEventsTable {
408
+ cursor: string;
409
+ block_height: number;
410
+ block_time: Date;
411
+ tx_id: string;
412
+ tx_index: number;
413
+ event_index: number;
414
+ event_type: SbtcTokenEventType;
415
+ sender: string | null;
416
+ recipient: string | null;
417
+ amount: string;
418
+ memo: string | null;
419
+ canonical: Generated<boolean>;
420
+ source_cursor: string;
421
+ created_at: Generated<Date>;
422
+ }
423
+ interface SbtcSupplySnapshotsTable {
424
+ date: string;
425
+ total_supply: Generated<string>;
426
+ mints_today: Generated<string>;
427
+ burns_today: Generated<string>;
428
+ deposit_count: Generated<number>;
429
+ withdrawal_create_count: Generated<number>;
430
+ withdrawal_accept_count: Generated<number>;
431
+ withdrawal_reject_count: Generated<number>;
432
+ updated_at: Generated<Date>;
433
+ }
434
+ type BnsNameEventTopic = "new-name" | "transfer-name" | "renew-name" | "burn-name" | "new-airdrop";
435
+ interface BnsNameEventsTable {
436
+ cursor: string;
437
+ block_height: number;
438
+ block_time: Date;
439
+ tx_id: string;
440
+ tx_index: number;
441
+ event_index: number;
442
+ topic: BnsNameEventTopic;
443
+ namespace: string;
444
+ name: string;
445
+ fqn: string;
446
+ owner: string | null;
447
+ bns_id: string;
448
+ registered_at: number | null;
449
+ imported_at: number | null;
450
+ renewal_height: number | null;
451
+ stx_burn: string | null;
452
+ preordered_by: string | null;
453
+ hashed_salted_fqn_preorder: string | null;
454
+ canonical: Generated<boolean>;
455
+ source_cursor: string;
456
+ created_at: Generated<Date>;
457
+ }
458
+ type BnsNamespaceEventStatus = "launch" | "transfer-manager" | "freeze-manager" | "update-price-manager" | "freeze-price-manager" | "turn-off-manager-transfers";
459
+ interface BnsNamespaceEventsTable {
460
+ cursor: string;
461
+ block_height: number;
462
+ block_time: Date;
463
+ tx_id: string;
464
+ tx_index: number;
465
+ event_index: number;
466
+ status: BnsNamespaceEventStatus;
467
+ namespace: string;
468
+ manager: string | null;
469
+ manager_frozen: boolean | null;
470
+ manager_transfers_disabled: boolean | null;
471
+ price_function: string | null;
472
+ price_frozen: boolean | null;
473
+ lifetime: number | null;
474
+ revealed_at: number | null;
475
+ launched_at: number | null;
476
+ canonical: Generated<boolean>;
477
+ source_cursor: string;
478
+ created_at: Generated<Date>;
479
+ }
480
+ type BnsMarketplaceAction = "list-in-ustx" | "unlist-in-ustx" | "buy-in-ustx";
481
+ interface BnsMarketplaceEventsTable {
482
+ cursor: string;
483
+ block_height: number;
484
+ block_time: Date;
485
+ tx_id: string;
486
+ tx_index: number;
487
+ event_index: number;
488
+ action: BnsMarketplaceAction;
489
+ bns_id: string;
490
+ price_ustx: string | null;
491
+ commission: string | null;
492
+ canonical: Generated<boolean>;
493
+ source_cursor: string;
494
+ created_at: Generated<Date>;
495
+ }
496
+ interface BnsNamesTable {
497
+ fqn: string;
498
+ namespace: string;
499
+ name: string;
500
+ owner: string;
501
+ bns_id: string;
502
+ registered_at: number | null;
503
+ renewal_height: number | null;
504
+ last_event_cursor: string;
505
+ last_event_at: Date;
506
+ updated_at: Generated<Date>;
507
+ }
508
+ interface BnsNamespacesTable {
509
+ namespace: string;
510
+ manager: string | null;
511
+ manager_frozen: Generated<boolean>;
512
+ price_frozen: Generated<boolean>;
513
+ lifetime: number | null;
514
+ launched_at: number | null;
515
+ last_event_cursor: string;
516
+ last_event_at: Date;
517
+ name_count: Generated<number>;
518
+ updated_at: Generated<Date>;
519
+ }
316
520
  interface Database {
317
521
  blocks: BlocksTable;
318
522
  transactions: TransactionsTable;
@@ -351,6 +555,17 @@ interface Database {
351
555
  decoded_events: DecodedEventsTable;
352
556
  l2_decoder_checkpoints: L2DecoderCheckpointsTable;
353
557
  chain_reorgs: ChainReorgsTable;
558
+ pox4_calls: Pox4CallsTable;
559
+ pox4_cycles_daily: Pox4CyclesDailyTable;
560
+ pox4_signers_daily: Pox4SignersDailyTable;
561
+ sbtc_events: SbtcEventsTable;
562
+ sbtc_token_events: SbtcTokenEventsTable;
563
+ sbtc_supply_snapshots: SbtcSupplySnapshotsTable;
564
+ bns_name_events: BnsNameEventsTable;
565
+ bns_namespace_events: BnsNamespaceEventsTable;
566
+ bns_marketplace_events: BnsMarketplaceEventsTable;
567
+ bns_names: BnsNamesTable;
568
+ bns_namespaces: BnsNamespacesTable;
354
569
  }
355
570
  type TenantStatus = "provisioning" | "active" | "limit_warning" | "paused_limit" | "suspended" | "error" | "deleted";
356
571
  interface TenantsTable {
@@ -1172,4 +1387,4 @@ declare function createSignatureHeader(payload: string, secret: string, timestam
1172
1387
  * Returns true if valid, false otherwise
1173
1388
  */
1174
1389
  declare function verifySignatureHeader(payload: string, header: string, secret: string, toleranceSeconds?: number): boolean;
1175
- export { validateSubscriptionFilterForTable, sql, parseJsonb, logger, jsonb, getTargetDb, getSourceDb, getRawClient, getErrorMessage, getEnv, getDb, generateSubgraphSpec, generateSubgraphOpenApi, generateSubgraphMarkdown, generateSubgraphAgentSchema, formatSubscriptionSchemaErrors, exports_hmac as crypto, closeDb, WaitlistTable, VersionConflictError, ValidationError, UsageSnapshotsTable, UsageSnapshot, UsageDailyTable, UsageDaily, UpdateTransaction, UpdateTenantUsageMonthly, UpdateTenantComputeAddon, UpdateTenant, UpdateSubscriptionRequestSchema, UpdateSubscriptionRequest, UpdateSubscriptionOutbox, UpdateSubscription, UpdateSubgraphOperation, UpdateSubgraph, UpdateProject, UpdateProfileRequestSchema, UpdateProfileRequest, UpdateIndexProgress, UpdateEvent, UpdateChatSession, UpdateBlock, UpdateApiKey, UpdateAccountSpendCap, TransactionsTable, Transaction, TenantsTable, TenantUsageMonthlyTable, TenantUsageMonthly, TenantSuspendedError, TenantStatus, TenantComputeAddonsTable, TenantComputeAddon, Tenant, TeamMembersTable, TeamMember, TeamInvitationsTable, TeamInvitation, SubscriptionsTable, SubscriptionSummary, SubscriptionStatusSchema, SubscriptionStatus, SubscriptionSchemaTables, SubscriptionSchemaTable, SubscriptionSchemaColumn, SubscriptionRuntimeSchema, SubscriptionRuntime, SubscriptionOutboxTable, SubscriptionOutbox, SubscriptionFormatSchema, SubscriptionFormat, SubscriptionFilterSchema, SubscriptionFilterPrimitiveSchema, SubscriptionFilterPrimitive, SubscriptionFilterOperatorSchema, SubscriptionFilterOperator, SubscriptionFilterClauseSchema, SubscriptionFilterClause, SubscriptionFilter, SubscriptionDetail, SubscriptionDelivery, SubscriptionDeliveriesTable, Subscription, SubgraphsTable, SubgraphUsageDailyTable, SubgraphUsageDaily, SubgraphTableSnapshotsTable, SubgraphSyncInfo, SubgraphSummary, SubgraphSpecOptions, SubgraphSpecFormat, SubgraphResourceWarning, SubgraphQueryParams, SubgraphProcessingStatsTable, SubgraphOperationsTable, SubgraphOperationStatus, SubgraphOperationKind, SubgraphOperation, SubgraphHealthSnapshotsTable, SubgraphHealthSnapshot, SubgraphGapsTable, SubgraphGapsResponse, SubgraphGapRange, SubgraphGapEntry, SubgraphGap, SubgraphDetail, SubgraphAgentSchema, Subgraph, StxTransferFilterSchema, StxTransferFilter, StxMintFilterSchema, StxMintFilter, StxLockFilterSchema, StxLockFilter, StxBurnFilterSchema, StxBurnFilter, SessionsTable, Session, SecondLayerError, SUBSCRIPTION_STATUSES, SUBSCRIPTION_RUNTIMES, SUBSCRIPTION_FORMATS, SUBSCRIPTION_FILTER_OPERATORS, RotateSecretResponse, ReplaySubscriptionRequestSchema, ReplaySubscriptionRequest, ReplayResult, ReindexResponse, RateLimitError, ProvisioningAuditStatus, ProvisioningAuditLogTable, ProvisioningAuditLog, ProvisioningAuditEvent, ProjectsTable, Project, ProcessedStripeEventsTable, PrintEventFilterSchema, PrintEventFilter, ParsedUpdateSubscriptionRequest, ParsedReplaySubscriptionRequest, ParsedCreateSubscriptionRequest, OutboxStatus, NotFoundError, NftTransferFilterSchema, NftTransferFilter, NftMintFilterSchema, NftMintFilter, NftBurnFilterSchema, NftBurnFilter, MagicLinksTable, MagicLink, L2DecoderCheckpointsTable, KeyRotatedError, InsertTransaction, InsertTenantUsageMonthly, InsertTenantComputeAddon, InsertTenant, InsertTeamMember, InsertTeamInvitation, InsertSubscriptionOutbox, InsertSubscriptionDelivery, InsertSubscription, InsertSubgraphUsageDaily, InsertSubgraphOperation, InsertSubgraphHealthSnapshot, InsertSubgraphGap, InsertSubgraph, InsertSession, InsertProvisioningAuditLog, InsertProject, InsertMagicLink, InsertIndexProgress, InsertEvent, InsertChatSession, InsertChatMessage, InsertBlock, InsertApiKey, InsertAccountSpendCap, InsertAccountInsight, InsertAccountAgentRun, InsertAccount, IndexProgressTable, IndexProgress, FtTransferFilterSchema, FtTransferFilter, FtMintFilterSchema, FtMintFilter, FtBurnFilterSchema, FtBurnFilter, ForbiddenError, EventsTable, EventFilterSchema, EventFilter, Event, ErrorCodes, ErrorCode, Env, DeploySubgraphResponse, DeploySubgraphRequestSchema, DeploySubgraphRequest, DeliveryRow, DecodedEventsTable, DeadRow, DatabaseError, Database, CreateSubscriptionResponse, CreateSubscriptionRequestSchema, CreateSubscriptionRequest, ContractDeployFilterSchema, ContractDeployFilter, ContractCallFilterSchema, ContractCallFilter, ChatSessionsTable, ChatSession, ChatMessagesTable, ChatMessage, ChainReorgsTable, CODE_TO_STATUS, BlocksTable, Block, AuthorizationError, AuthenticationError, ApiKeysTable, ApiKey, AccountsTable, AccountSpendCapsTable, AccountSpendCap, AccountInsightsTable, AccountInsight, AccountAgentRunsTable, AccountAgentRun, Account };
1390
+ export { validateSubscriptionFilterForTable, sql, parseJsonb, logger, jsonb, getTargetDb, getSourceDb, getRawClient, getErrorMessage, getEnv, getDb, generateSubgraphSpec, generateSubgraphOpenApi, generateSubgraphMarkdown, generateSubgraphAgentSchema, formatSubscriptionSchemaErrors, exports_hmac as crypto, closeDb, WaitlistTable, VersionConflictError, ValidationError, UsageSnapshotsTable, UsageSnapshot, UsageDailyTable, UsageDaily, UpdateTransaction, UpdateTenantUsageMonthly, UpdateTenantComputeAddon, UpdateTenant, UpdateSubscriptionRequestSchema, UpdateSubscriptionRequest, UpdateSubscriptionOutbox, UpdateSubscription, UpdateSubgraphOperation, UpdateSubgraph, UpdateProject, UpdateProfileRequestSchema, UpdateProfileRequest, UpdateIndexProgress, UpdateEvent, UpdateChatSession, UpdateBlock, UpdateApiKey, UpdateAccountSpendCap, TransactionsTable, Transaction, TenantsTable, TenantUsageMonthlyTable, TenantUsageMonthly, TenantSuspendedError, TenantStatus, TenantComputeAddonsTable, TenantComputeAddon, Tenant, TeamMembersTable, TeamMember, TeamInvitationsTable, TeamInvitation, SubscriptionsTable, SubscriptionSummary, SubscriptionStatusSchema, SubscriptionStatus, SubscriptionSchemaTables, SubscriptionSchemaTable, SubscriptionSchemaColumn, SubscriptionRuntimeSchema, SubscriptionRuntime, SubscriptionOutboxTable, SubscriptionOutbox, SubscriptionFormatSchema, SubscriptionFormat, SubscriptionFilterSchema, SubscriptionFilterPrimitiveSchema, SubscriptionFilterPrimitive, SubscriptionFilterOperatorSchema, SubscriptionFilterOperator, SubscriptionFilterClauseSchema, SubscriptionFilterClause, SubscriptionFilter, SubscriptionDetail, SubscriptionDelivery, SubscriptionDeliveriesTable, Subscription, SubgraphsTable, SubgraphUsageDailyTable, SubgraphUsageDaily, SubgraphTableSnapshotsTable, SubgraphSyncInfo, SubgraphSummary, SubgraphSpecOptions, SubgraphSpecFormat, SubgraphResourceWarning, SubgraphQueryParams, SubgraphProcessingStatsTable, SubgraphOperationsTable, SubgraphOperationStatus, SubgraphOperationKind, SubgraphOperation, SubgraphHealthSnapshotsTable, SubgraphHealthSnapshot, SubgraphGapsTable, SubgraphGapsResponse, SubgraphGapRange, SubgraphGapEntry, SubgraphGap, SubgraphDetail, SubgraphAgentSchema, Subgraph, StxTransferFilterSchema, StxTransferFilter, StxMintFilterSchema, StxMintFilter, StxLockFilterSchema, StxLockFilter, StxBurnFilterSchema, StxBurnFilter, SessionsTable, Session, SecondLayerError, SbtcTokenEventsTable, SbtcTokenEventType, SbtcSupplySnapshotsTable, SbtcEventsTable, SbtcEventTopic, SUBSCRIPTION_STATUSES, SUBSCRIPTION_RUNTIMES, SUBSCRIPTION_FORMATS, SUBSCRIPTION_FILTER_OPERATORS, RotateSecretResponse, ReplaySubscriptionRequestSchema, ReplaySubscriptionRequest, ReplayResult, ReindexResponse, RateLimitError, ProvisioningAuditStatus, ProvisioningAuditLogTable, ProvisioningAuditLog, ProvisioningAuditEvent, ProjectsTable, Project, ProcessedStripeEventsTable, PrintEventFilterSchema, PrintEventFilter, Pox4SignersDailyTable, Pox4FunctionName, Pox4CyclesDailyTable, Pox4CallsTable, ParsedUpdateSubscriptionRequest, ParsedReplaySubscriptionRequest, ParsedCreateSubscriptionRequest, OutboxStatus, NotFoundError, NftTransferFilterSchema, NftTransferFilter, NftMintFilterSchema, NftMintFilter, NftBurnFilterSchema, NftBurnFilter, MagicLinksTable, MagicLink, L2DecoderCheckpointsTable, KeyRotatedError, InsertTransaction, InsertTenantUsageMonthly, InsertTenantComputeAddon, InsertTenant, InsertTeamMember, InsertTeamInvitation, InsertSubscriptionOutbox, InsertSubscriptionDelivery, InsertSubscription, InsertSubgraphUsageDaily, InsertSubgraphOperation, InsertSubgraphHealthSnapshot, InsertSubgraphGap, InsertSubgraph, InsertSession, InsertProvisioningAuditLog, InsertProject, InsertMagicLink, InsertIndexProgress, InsertEvent, InsertChatSession, InsertChatMessage, InsertBlock, InsertApiKey, InsertAccountSpendCap, InsertAccountInsight, InsertAccountAgentRun, InsertAccount, IndexProgressTable, IndexProgress, FtTransferFilterSchema, FtTransferFilter, FtMintFilterSchema, FtMintFilter, FtBurnFilterSchema, FtBurnFilter, ForbiddenError, EventsTable, EventFilterSchema, EventFilter, Event, ErrorCodes, ErrorCode, Env, DeploySubgraphResponse, DeploySubgraphRequestSchema, DeploySubgraphRequest, DeliveryRow, DecodedEventsTable, DeadRow, DatabaseError, Database, CreateSubscriptionResponse, CreateSubscriptionRequestSchema, CreateSubscriptionRequest, ContractDeployFilterSchema, ContractDeployFilter, ContractCallFilterSchema, ContractCallFilter, ChatSessionsTable, ChatSession, ChatMessagesTable, ChatMessage, ChainReorgsTable, CODE_TO_STATUS, BnsNamespacesTable, BnsNamespaceEventsTable, BnsNamespaceEventStatus, BnsNamesTable, BnsNameEventsTable, BnsNameEventTopic, BnsMarketplaceEventsTable, BnsMarketplaceAction, BlocksTable, Block, AuthorizationError, AuthenticationError, ApiKeysTable, ApiKey, AccountsTable, AccountSpendCapsTable, AccountSpendCap, AccountInsightsTable, AccountInsight, AccountAgentRunsTable, AccountAgentRun, Account };
@@ -104,6 +104,8 @@ interface ApiKeysTable {
104
104
  rate_limit: Generated<number>;
105
105
  ip_address: string;
106
106
  account_id: string;
107
+ product: Generated<"account" | "streams" | "index">;
108
+ tier: "free" | "build" | "scale" | "enterprise" | null;
107
109
  last_used_at: Date | null;
108
110
  revoked_at: Date | null;
109
111
  created_at: Generated<Date>;
@@ -314,6 +316,208 @@ interface ChainReorgsTable {
314
316
  new_canonical_event_index: number;
315
317
  created_at: Generated<Date>;
316
318
  }
319
+ type Pox4FunctionName = "stack-stx" | "delegate-stx" | "stack-extend" | "stack-increase" | "revoke-delegate-stx" | "delegate-stack-stx" | "delegate-stack-extend" | "delegate-stack-increase" | "stack-aggregation-commit" | "stack-aggregation-commit-indexed" | "stack-aggregation-increase" | "set-signer-key-authorization";
320
+ interface Pox4CallsTable {
321
+ cursor: string;
322
+ block_height: number;
323
+ block_time: Date;
324
+ burn_block_height: number;
325
+ tx_id: string;
326
+ tx_index: number;
327
+ function_name: Pox4FunctionName;
328
+ caller: string;
329
+ stacker: string | null;
330
+ delegate_to: string | null;
331
+ amount_ustx: string | null;
332
+ lock_period: number | null;
333
+ pox_addr_version: number | null;
334
+ pox_addr_hashbytes: string | null;
335
+ pox_addr_btc: string | null;
336
+ start_cycle: number | null;
337
+ end_cycle: number | null;
338
+ signer_key: string | null;
339
+ signer_signature: string | null;
340
+ auth_id: string | null;
341
+ max_amount: string | null;
342
+ reward_cycle: number | null;
343
+ aggregated_amount_ustx: string | null;
344
+ aggregated_signer_index: number | null;
345
+ auth_period: number | null;
346
+ auth_topic: string | null;
347
+ auth_allowed: boolean | null;
348
+ result_ok: boolean;
349
+ result_raw: string;
350
+ canonical: Generated<boolean>;
351
+ source_cursor: string;
352
+ created_at: Generated<Date>;
353
+ }
354
+ interface Pox4CyclesDailyTable {
355
+ date: string;
356
+ reward_cycle: number;
357
+ total_stacked_ustx: Generated<string>;
358
+ solo_stackers: Generated<number>;
359
+ delegated_principals: Generated<number>;
360
+ unique_pools: Generated<number>;
361
+ unique_signers: Generated<number>;
362
+ calls_today: Generated<number>;
363
+ updated_at: Generated<Date>;
364
+ }
365
+ interface Pox4SignersDailyTable {
366
+ date: string;
367
+ reward_cycle: number;
368
+ signer_key: string;
369
+ weight_ustx: Generated<string>;
370
+ stacker_count: Generated<number>;
371
+ aggregation_calls: Generated<number>;
372
+ updated_at: Generated<Date>;
373
+ }
374
+ type SbtcEventTopic = "completed-deposit" | "withdrawal-create" | "withdrawal-accept" | "withdrawal-reject" | "key-rotation" | "update-protocol-contract";
375
+ interface SbtcEventsTable {
376
+ cursor: string;
377
+ block_height: number;
378
+ block_time: Date;
379
+ tx_id: string;
380
+ tx_index: number;
381
+ event_index: number;
382
+ topic: SbtcEventTopic;
383
+ request_id: number | null;
384
+ amount: string | null;
385
+ sender: string | null;
386
+ recipient_btc_version: number | null;
387
+ recipient_btc_hashbytes: string | null;
388
+ bitcoin_txid: string | null;
389
+ output_index: number | null;
390
+ sweep_txid: string | null;
391
+ burn_hash: string | null;
392
+ burn_height: number | null;
393
+ signer_bitmap: string | null;
394
+ max_fee: string | null;
395
+ fee: string | null;
396
+ block_height_at_request: number | null;
397
+ governance_contract_type: number | null;
398
+ governance_new_contract: string | null;
399
+ signer_aggregate_pubkey: string | null;
400
+ signer_threshold: number | null;
401
+ signer_address: string | null;
402
+ signer_keys_count: number | null;
403
+ canonical: Generated<boolean>;
404
+ source_cursor: string;
405
+ created_at: Generated<Date>;
406
+ }
407
+ type SbtcTokenEventType = "transfer" | "mint" | "burn";
408
+ interface SbtcTokenEventsTable {
409
+ cursor: string;
410
+ block_height: number;
411
+ block_time: Date;
412
+ tx_id: string;
413
+ tx_index: number;
414
+ event_index: number;
415
+ event_type: SbtcTokenEventType;
416
+ sender: string | null;
417
+ recipient: string | null;
418
+ amount: string;
419
+ memo: string | null;
420
+ canonical: Generated<boolean>;
421
+ source_cursor: string;
422
+ created_at: Generated<Date>;
423
+ }
424
+ interface SbtcSupplySnapshotsTable {
425
+ date: string;
426
+ total_supply: Generated<string>;
427
+ mints_today: Generated<string>;
428
+ burns_today: Generated<string>;
429
+ deposit_count: Generated<number>;
430
+ withdrawal_create_count: Generated<number>;
431
+ withdrawal_accept_count: Generated<number>;
432
+ withdrawal_reject_count: Generated<number>;
433
+ updated_at: Generated<Date>;
434
+ }
435
+ type BnsNameEventTopic = "new-name" | "transfer-name" | "renew-name" | "burn-name" | "new-airdrop";
436
+ interface BnsNameEventsTable {
437
+ cursor: string;
438
+ block_height: number;
439
+ block_time: Date;
440
+ tx_id: string;
441
+ tx_index: number;
442
+ event_index: number;
443
+ topic: BnsNameEventTopic;
444
+ namespace: string;
445
+ name: string;
446
+ fqn: string;
447
+ owner: string | null;
448
+ bns_id: string;
449
+ registered_at: number | null;
450
+ imported_at: number | null;
451
+ renewal_height: number | null;
452
+ stx_burn: string | null;
453
+ preordered_by: string | null;
454
+ hashed_salted_fqn_preorder: string | null;
455
+ canonical: Generated<boolean>;
456
+ source_cursor: string;
457
+ created_at: Generated<Date>;
458
+ }
459
+ type BnsNamespaceEventStatus = "launch" | "transfer-manager" | "freeze-manager" | "update-price-manager" | "freeze-price-manager" | "turn-off-manager-transfers";
460
+ interface BnsNamespaceEventsTable {
461
+ cursor: string;
462
+ block_height: number;
463
+ block_time: Date;
464
+ tx_id: string;
465
+ tx_index: number;
466
+ event_index: number;
467
+ status: BnsNamespaceEventStatus;
468
+ namespace: string;
469
+ manager: string | null;
470
+ manager_frozen: boolean | null;
471
+ manager_transfers_disabled: boolean | null;
472
+ price_function: string | null;
473
+ price_frozen: boolean | null;
474
+ lifetime: number | null;
475
+ revealed_at: number | null;
476
+ launched_at: number | null;
477
+ canonical: Generated<boolean>;
478
+ source_cursor: string;
479
+ created_at: Generated<Date>;
480
+ }
481
+ type BnsMarketplaceAction = "list-in-ustx" | "unlist-in-ustx" | "buy-in-ustx";
482
+ interface BnsMarketplaceEventsTable {
483
+ cursor: string;
484
+ block_height: number;
485
+ block_time: Date;
486
+ tx_id: string;
487
+ tx_index: number;
488
+ event_index: number;
489
+ action: BnsMarketplaceAction;
490
+ bns_id: string;
491
+ price_ustx: string | null;
492
+ commission: string | null;
493
+ canonical: Generated<boolean>;
494
+ source_cursor: string;
495
+ created_at: Generated<Date>;
496
+ }
497
+ interface BnsNamesTable {
498
+ fqn: string;
499
+ namespace: string;
500
+ name: string;
501
+ owner: string;
502
+ bns_id: string;
503
+ registered_at: number | null;
504
+ renewal_height: number | null;
505
+ last_event_cursor: string;
506
+ last_event_at: Date;
507
+ updated_at: Generated<Date>;
508
+ }
509
+ interface BnsNamespacesTable {
510
+ namespace: string;
511
+ manager: string | null;
512
+ manager_frozen: Generated<boolean>;
513
+ price_frozen: Generated<boolean>;
514
+ lifetime: number | null;
515
+ launched_at: number | null;
516
+ last_event_cursor: string;
517
+ last_event_at: Date;
518
+ name_count: Generated<number>;
519
+ updated_at: Generated<Date>;
520
+ }
317
521
  interface Database {
318
522
  blocks: BlocksTable;
319
523
  transactions: TransactionsTable;
@@ -352,6 +556,17 @@ interface Database {
352
556
  decoded_events: DecodedEventsTable;
353
557
  l2_decoder_checkpoints: L2DecoderCheckpointsTable;
354
558
  chain_reorgs: ChainReorgsTable;
559
+ pox4_calls: Pox4CallsTable;
560
+ pox4_cycles_daily: Pox4CyclesDailyTable;
561
+ pox4_signers_daily: Pox4SignersDailyTable;
562
+ sbtc_events: SbtcEventsTable;
563
+ sbtc_token_events: SbtcTokenEventsTable;
564
+ sbtc_supply_snapshots: SbtcSupplySnapshotsTable;
565
+ bns_name_events: BnsNameEventsTable;
566
+ bns_namespace_events: BnsNamespaceEventsTable;
567
+ bns_marketplace_events: BnsMarketplaceEventsTable;
568
+ bns_names: BnsNamesTable;
569
+ bns_namespaces: BnsNamespacesTable;
355
570
  }
356
571
  type TenantStatus = "provisioning" | "active" | "limit_warning" | "paused_limit" | "suspended" | "error" | "deleted";
357
572
  interface TenantsTable {
@@ -0,0 +1,43 @@
1
+ import { type Kysely, sql } from "kysely";
2
+
3
+ export async function up(db: Kysely<unknown>): Promise<void> {
4
+ await sql`SET lock_timeout = '30s'`.execute(db);
5
+
6
+ await sql`
7
+ ALTER TABLE api_keys
8
+ ADD COLUMN IF NOT EXISTS product text NOT NULL DEFAULT 'account',
9
+ ADD COLUMN IF NOT EXISTS tier text
10
+ `.execute(db);
11
+
12
+ await sql`
13
+ ALTER TABLE api_keys
14
+ ADD CONSTRAINT api_keys_product_check
15
+ CHECK (product IN ('account', 'streams', 'index'))
16
+ `.execute(db);
17
+
18
+ await sql`
19
+ ALTER TABLE api_keys
20
+ ADD CONSTRAINT api_keys_tier_check
21
+ CHECK (tier IS NULL OR tier IN ('free', 'build', 'scale', 'enterprise'))
22
+ `.execute(db);
23
+
24
+ await sql`
25
+ CREATE INDEX IF NOT EXISTS api_keys_product_status_idx
26
+ ON api_keys (product, status)
27
+ WHERE status = 'active'
28
+ `.execute(db);
29
+ }
30
+
31
+ export async function down(db: Kysely<unknown>): Promise<void> {
32
+ await sql`DROP INDEX IF EXISTS api_keys_product_status_idx`.execute(db);
33
+ await sql`
34
+ ALTER TABLE api_keys
35
+ DROP CONSTRAINT IF EXISTS api_keys_product_check,
36
+ DROP CONSTRAINT IF EXISTS api_keys_tier_check
37
+ `.execute(db);
38
+ await sql`
39
+ ALTER TABLE api_keys
40
+ DROP COLUMN IF EXISTS product,
41
+ DROP COLUMN IF EXISTS tier
42
+ `.execute(db);
43
+ }
@@ -0,0 +1,128 @@
1
+ import { type Kysely, sql } from "kysely";
2
+
3
+ export async function up(db: Kysely<unknown>): Promise<void> {
4
+ await sql`SET lock_timeout = '30s'`.execute(db);
5
+
6
+ // Per-call decoded view of pox-4 contract calls. The PoX-4 contract emits
7
+ // no print events; we decode tx-grain rows from the indexer's transactions
8
+ // table when contract_id = pox-4 and the call succeeded.
9
+ await sql`
10
+ CREATE TABLE IF NOT EXISTS pox4_calls (
11
+ cursor TEXT PRIMARY KEY,
12
+ block_height BIGINT NOT NULL,
13
+ block_time TIMESTAMPTZ NOT NULL,
14
+ burn_block_height BIGINT NOT NULL,
15
+ tx_id TEXT NOT NULL,
16
+ tx_index INTEGER NOT NULL,
17
+ function_name TEXT NOT NULL,
18
+ caller TEXT NOT NULL,
19
+ stacker TEXT,
20
+ delegate_to TEXT,
21
+ amount_ustx TEXT,
22
+ lock_period INTEGER,
23
+ pox_addr_version INTEGER,
24
+ pox_addr_hashbytes TEXT,
25
+ pox_addr_btc TEXT,
26
+ start_cycle INTEGER,
27
+ end_cycle INTEGER,
28
+ signer_key TEXT,
29
+ signer_signature TEXT,
30
+ auth_id TEXT,
31
+ max_amount TEXT,
32
+ reward_cycle INTEGER,
33
+ aggregated_amount_ustx TEXT,
34
+ aggregated_signer_index INTEGER,
35
+ auth_period INTEGER,
36
+ auth_topic TEXT,
37
+ auth_allowed BOOLEAN,
38
+ result_ok BOOLEAN NOT NULL,
39
+ result_raw TEXT NOT NULL,
40
+ canonical BOOLEAN NOT NULL DEFAULT true,
41
+ source_cursor TEXT NOT NULL,
42
+ created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
43
+ CONSTRAINT pox4_calls_function_check CHECK (function_name IN (
44
+ 'stack-stx',
45
+ 'delegate-stx',
46
+ 'stack-extend',
47
+ 'stack-increase',
48
+ 'revoke-delegate-stx',
49
+ 'delegate-stack-stx',
50
+ 'delegate-stack-extend',
51
+ 'delegate-stack-increase',
52
+ 'stack-aggregation-commit',
53
+ 'stack-aggregation-commit-indexed',
54
+ 'stack-aggregation-increase',
55
+ 'set-signer-key-authorization'
56
+ ))
57
+ )
58
+ `.execute(db);
59
+
60
+ await sql`CREATE INDEX IF NOT EXISTS pox4_calls_canonical_height_idx ON pox4_calls (canonical, block_height)`.execute(
61
+ db,
62
+ );
63
+ await sql`CREATE INDEX IF NOT EXISTS pox4_calls_stacker_height_idx ON pox4_calls (stacker, block_height) WHERE stacker IS NOT NULL`.execute(
64
+ db,
65
+ );
66
+ await sql`CREATE INDEX IF NOT EXISTS pox4_calls_delegate_to_height_idx ON pox4_calls (delegate_to, block_height) WHERE delegate_to IS NOT NULL`.execute(
67
+ db,
68
+ );
69
+ await sql`CREATE INDEX IF NOT EXISTS pox4_calls_signer_key_height_idx ON pox4_calls (signer_key, block_height) WHERE signer_key IS NOT NULL`.execute(
70
+ db,
71
+ );
72
+ await sql`CREATE INDEX IF NOT EXISTS pox4_calls_reward_cycle_function_idx ON pox4_calls (reward_cycle, function_name) WHERE reward_cycle IS NOT NULL`.execute(
73
+ db,
74
+ );
75
+ await sql`CREATE INDEX IF NOT EXISTS pox4_calls_cycle_range_idx ON pox4_calls (start_cycle, end_cycle) WHERE start_cycle IS NOT NULL`.execute(
76
+ db,
77
+ );
78
+ await sql`CREATE INDEX IF NOT EXISTS pox4_calls_function_height_idx ON pox4_calls (function_name, block_height)`.execute(
79
+ db,
80
+ );
81
+
82
+ // Daily rollup per (date, reward_cycle) — derived from pox4_calls.
83
+ await sql`
84
+ CREATE TABLE IF NOT EXISTS pox4_cycles_daily (
85
+ date TEXT NOT NULL,
86
+ reward_cycle INTEGER NOT NULL,
87
+ total_stacked_ustx TEXT NOT NULL DEFAULT '0',
88
+ solo_stackers INTEGER NOT NULL DEFAULT 0,
89
+ delegated_principals INTEGER NOT NULL DEFAULT 0,
90
+ unique_pools INTEGER NOT NULL DEFAULT 0,
91
+ unique_signers INTEGER NOT NULL DEFAULT 0,
92
+ calls_today INTEGER NOT NULL DEFAULT 0,
93
+ updated_at TIMESTAMPTZ NOT NULL DEFAULT now(),
94
+ PRIMARY KEY (date, reward_cycle)
95
+ )
96
+ `.execute(db);
97
+
98
+ await sql`CREATE INDEX IF NOT EXISTS pox4_cycles_daily_cycle_idx ON pox4_cycles_daily (reward_cycle, date)`.execute(
99
+ db,
100
+ );
101
+
102
+ // Daily rollup per (date, reward_cycle, signer_key).
103
+ await sql`
104
+ CREATE TABLE IF NOT EXISTS pox4_signers_daily (
105
+ date TEXT NOT NULL,
106
+ reward_cycle INTEGER NOT NULL,
107
+ signer_key TEXT NOT NULL,
108
+ weight_ustx TEXT NOT NULL DEFAULT '0',
109
+ stacker_count INTEGER NOT NULL DEFAULT 0,
110
+ aggregation_calls INTEGER NOT NULL DEFAULT 0,
111
+ updated_at TIMESTAMPTZ NOT NULL DEFAULT now(),
112
+ PRIMARY KEY (date, reward_cycle, signer_key)
113
+ )
114
+ `.execute(db);
115
+
116
+ await sql`CREATE INDEX IF NOT EXISTS pox4_signers_daily_cycle_idx ON pox4_signers_daily (reward_cycle, date)`.execute(
117
+ db,
118
+ );
119
+ await sql`CREATE INDEX IF NOT EXISTS pox4_signers_daily_signer_idx ON pox4_signers_daily (signer_key, date)`.execute(
120
+ db,
121
+ );
122
+ }
123
+
124
+ export async function down(db: Kysely<unknown>): Promise<void> {
125
+ await sql`DROP TABLE IF EXISTS pox4_signers_daily`.execute(db);
126
+ await sql`DROP TABLE IF EXISTS pox4_cycles_daily`.execute(db);
127
+ await sql`DROP TABLE IF EXISTS pox4_calls`.execute(db);
128
+ }