@secondlayer/shared 6.21.0 → 6.23.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.
- package/dist/src/crypto/ed25519.d.ts +22 -0
- package/dist/src/crypto/ed25519.js +80 -0
- package/dist/src/crypto/ed25519.js.map +10 -0
- package/dist/src/crypto/secondlayer-webhook.d.ts +40 -0
- package/dist/src/crypto/secondlayer-webhook.js +130 -0
- package/dist/src/crypto/secondlayer-webhook.js.map +11 -0
- package/dist/src/db/index.d.ts +108 -1
- package/dist/src/db/index.js +81 -1
- package/dist/src/db/index.js.map +7 -5
- package/dist/src/db/queries/chain-reorgs.js +76 -1
- package/dist/src/db/queries/chain-reorgs.js.map +6 -4
- package/dist/src/db/queries/subgraphs.js +76 -1
- package/dist/src/db/queries/subgraphs.js.map +6 -4
- package/dist/src/index.d.ts +132 -25
- package/dist/src/index.js +134 -53
- package/dist/src/index.js.map +8 -6
- package/dist/src/leader.d.ts +53 -0
- package/dist/src/leader.js +257 -0
- package/dist/src/leader.js.map +12 -0
- package/dist/src/streams-bulk-manifest.d.ts +33 -0
- package/dist/src/streams-bulk-manifest.js +104 -0
- package/dist/src/streams-bulk-manifest.js.map +11 -0
- package/package.json +17 -1
package/dist/src/index.js
CHANGED
|
@@ -377,6 +377,81 @@ var SOURCE_READ_COLUMNS = {
|
|
|
377
377
|
events: ["block_height", "data", "event_index", "tx_id", "type"],
|
|
378
378
|
chain_reorgs: ["detected_at"]
|
|
379
379
|
};
|
|
380
|
+
// src/db/migration-role.ts
|
|
381
|
+
var currentRole = "both";
|
|
382
|
+
function setMigrationRole(role) {
|
|
383
|
+
currentRole = role;
|
|
384
|
+
}
|
|
385
|
+
function getMigrationRole() {
|
|
386
|
+
return currentRole;
|
|
387
|
+
}
|
|
388
|
+
async function onControlPlane(fn) {
|
|
389
|
+
if (currentRole === "target" || currentRole === "both")
|
|
390
|
+
await fn();
|
|
391
|
+
}
|
|
392
|
+
async function onChainPlane(fn) {
|
|
393
|
+
if (currentRole === "source" || currentRole === "both")
|
|
394
|
+
await fn();
|
|
395
|
+
}
|
|
396
|
+
// src/db/table-plane.ts
|
|
397
|
+
var TABLE_TO_DB = {
|
|
398
|
+
blocks: "source",
|
|
399
|
+
transactions: "source",
|
|
400
|
+
events: "source",
|
|
401
|
+
transactions_archive: "source",
|
|
402
|
+
events_archive: "source",
|
|
403
|
+
dead_letter_events: "source",
|
|
404
|
+
mempool_transactions: "source",
|
|
405
|
+
index_progress: "source",
|
|
406
|
+
contracts: "source",
|
|
407
|
+
chain_reorgs: "source",
|
|
408
|
+
decoded_events: "source",
|
|
409
|
+
l2_decoder_checkpoints: "source",
|
|
410
|
+
pox4_calls: "source",
|
|
411
|
+
pox4_cycles_daily: "source",
|
|
412
|
+
pox4_signers_daily: "source",
|
|
413
|
+
burn_block_rewards: "source",
|
|
414
|
+
burn_block_reward_slots: "source",
|
|
415
|
+
sbtc_events: "source",
|
|
416
|
+
sbtc_token_events: "source",
|
|
417
|
+
sbtc_supply_snapshots: "source",
|
|
418
|
+
bns_name_events: "source",
|
|
419
|
+
bns_namespace_events: "source",
|
|
420
|
+
bns_marketplace_events: "source",
|
|
421
|
+
bns_names: "source",
|
|
422
|
+
bns_namespaces: "source",
|
|
423
|
+
accounts: "target",
|
|
424
|
+
api_keys: "target",
|
|
425
|
+
sessions: "target",
|
|
426
|
+
magic_links: "target",
|
|
427
|
+
usage_daily: "target",
|
|
428
|
+
usage_snapshots: "target",
|
|
429
|
+
account_insights: "target",
|
|
430
|
+
account_agent_runs: "target",
|
|
431
|
+
account_spend_caps: "target",
|
|
432
|
+
processed_stripe_events: "target",
|
|
433
|
+
tenants: "target",
|
|
434
|
+
tenant_usage_monthly: "target",
|
|
435
|
+
tenant_compute_addons: "target",
|
|
436
|
+
provisioning_audit_log: "target",
|
|
437
|
+
projects: "target",
|
|
438
|
+
team_members: "target",
|
|
439
|
+
team_invitations: "target",
|
|
440
|
+
chat_sessions: "target",
|
|
441
|
+
chat_messages: "target",
|
|
442
|
+
subscriptions: "target",
|
|
443
|
+
subscription_outbox: "target",
|
|
444
|
+
subscription_deliveries: "target",
|
|
445
|
+
trigger_evaluator_state: "target",
|
|
446
|
+
subgraphs: "target",
|
|
447
|
+
subgraph_operations: "target",
|
|
448
|
+
subgraph_health_snapshots: "target",
|
|
449
|
+
subgraph_gaps: "target",
|
|
450
|
+
subgraph_usage_daily: "target",
|
|
451
|
+
subgraph_processing_stats: "target",
|
|
452
|
+
subgraph_table_snapshots: "target",
|
|
453
|
+
service_heartbeats: "both"
|
|
454
|
+
};
|
|
380
455
|
|
|
381
456
|
// src/db/index.ts
|
|
382
457
|
var DEFAULT_URL = "postgres://postgres:postgres@localhost:5432/secondlayer_dev";
|
|
@@ -1474,6 +1549,59 @@ function verifySignatureHeader(payload, header, secret, toleranceSeconds = 300)
|
|
|
1474
1549
|
const signedPayload = `${ts}.${payload}`;
|
|
1475
1550
|
return verifySignature(signedPayload, signature, secret);
|
|
1476
1551
|
}
|
|
1552
|
+
|
|
1553
|
+
// src/crypto/ed25519.ts
|
|
1554
|
+
var exports_ed25519 = {};
|
|
1555
|
+
__export(exports_ed25519, {
|
|
1556
|
+
verifyEd25519: () => verifyEd25519,
|
|
1557
|
+
signEd25519: () => signEd25519,
|
|
1558
|
+
publicKeyPemFromPrivate: () => publicKeyPemFromPrivate,
|
|
1559
|
+
loadEd25519PublicKey: () => loadEd25519PublicKey,
|
|
1560
|
+
loadEd25519PrivateKey: () => loadEd25519PrivateKey,
|
|
1561
|
+
generateEd25519KeyPair: () => generateEd25519KeyPair,
|
|
1562
|
+
ed25519KeyId: () => ed25519KeyId
|
|
1563
|
+
});
|
|
1564
|
+
import {
|
|
1565
|
+
createHash,
|
|
1566
|
+
createPrivateKey,
|
|
1567
|
+
createPublicKey,
|
|
1568
|
+
generateKeyPairSync,
|
|
1569
|
+
sign as nodeSign,
|
|
1570
|
+
verify as nodeVerify
|
|
1571
|
+
} from "node:crypto";
|
|
1572
|
+
function generateEd25519KeyPair() {
|
|
1573
|
+
const { privateKey, publicKey } = generateKeyPairSync("ed25519");
|
|
1574
|
+
return {
|
|
1575
|
+
privateKeyPem: privateKey.export({ format: "pem", type: "pkcs8" }).toString(),
|
|
1576
|
+
publicKeyPem: publicKey.export({ format: "pem", type: "spki" }).toString()
|
|
1577
|
+
};
|
|
1578
|
+
}
|
|
1579
|
+
function loadEd25519PrivateKey(pem) {
|
|
1580
|
+
return createPrivateKey(pem);
|
|
1581
|
+
}
|
|
1582
|
+
function loadEd25519PublicKey(pem) {
|
|
1583
|
+
return createPublicKey(pem);
|
|
1584
|
+
}
|
|
1585
|
+
function publicKeyPemFromPrivate(privateKeyPem) {
|
|
1586
|
+
return createPublicKey(createPrivateKey(privateKeyPem)).export({ format: "pem", type: "spki" }).toString();
|
|
1587
|
+
}
|
|
1588
|
+
function ed25519KeyId(publicKeyPem) {
|
|
1589
|
+
const der = createPublicKey(publicKeyPem).export({
|
|
1590
|
+
format: "der",
|
|
1591
|
+
type: "spki"
|
|
1592
|
+
});
|
|
1593
|
+
return createHash("sha256").update(der).digest("base64url").slice(0, 16);
|
|
1594
|
+
}
|
|
1595
|
+
function signEd25519(payload, privateKey) {
|
|
1596
|
+
return nodeSign(null, Buffer.from(payload, "utf8"), privateKey).toString("base64");
|
|
1597
|
+
}
|
|
1598
|
+
function verifyEd25519(payload, signatureBase64, publicKey) {
|
|
1599
|
+
try {
|
|
1600
|
+
return nodeVerify(null, Buffer.from(payload, "utf8"), publicKey, Buffer.from(signatureBase64, "base64"));
|
|
1601
|
+
} catch {
|
|
1602
|
+
return false;
|
|
1603
|
+
}
|
|
1604
|
+
}
|
|
1477
1605
|
// src/event-types.ts
|
|
1478
1606
|
var DECODED_EVENT_TYPES = [
|
|
1479
1607
|
"stx_transfer",
|
|
@@ -1561,62 +1689,13 @@ function decodeStreamsCursor(cursor) {
|
|
|
1561
1689
|
}
|
|
1562
1690
|
return decoded;
|
|
1563
1691
|
}
|
|
1564
|
-
// src/crypto/ed25519.ts
|
|
1565
|
-
var exports_ed25519 = {};
|
|
1566
|
-
__export(exports_ed25519, {
|
|
1567
|
-
verifyEd25519: () => verifyEd25519,
|
|
1568
|
-
signEd25519: () => signEd25519,
|
|
1569
|
-
publicKeyPemFromPrivate: () => publicKeyPemFromPrivate,
|
|
1570
|
-
loadEd25519PublicKey: () => loadEd25519PublicKey,
|
|
1571
|
-
loadEd25519PrivateKey: () => loadEd25519PrivateKey,
|
|
1572
|
-
generateEd25519KeyPair: () => generateEd25519KeyPair,
|
|
1573
|
-
ed25519KeyId: () => ed25519KeyId
|
|
1574
|
-
});
|
|
1575
|
-
import {
|
|
1576
|
-
createHash,
|
|
1577
|
-
createPrivateKey,
|
|
1578
|
-
createPublicKey,
|
|
1579
|
-
generateKeyPairSync,
|
|
1580
|
-
sign as nodeSign,
|
|
1581
|
-
verify as nodeVerify
|
|
1582
|
-
} from "node:crypto";
|
|
1583
|
-
function generateEd25519KeyPair() {
|
|
1584
|
-
const { privateKey, publicKey } = generateKeyPairSync("ed25519");
|
|
1585
|
-
return {
|
|
1586
|
-
privateKeyPem: privateKey.export({ format: "pem", type: "pkcs8" }).toString(),
|
|
1587
|
-
publicKeyPem: publicKey.export({ format: "pem", type: "spki" }).toString()
|
|
1588
|
-
};
|
|
1589
|
-
}
|
|
1590
|
-
function loadEd25519PrivateKey(pem) {
|
|
1591
|
-
return createPrivateKey(pem);
|
|
1592
|
-
}
|
|
1593
|
-
function loadEd25519PublicKey(pem) {
|
|
1594
|
-
return createPublicKey(pem);
|
|
1595
|
-
}
|
|
1596
|
-
function publicKeyPemFromPrivate(privateKeyPem) {
|
|
1597
|
-
return createPublicKey(createPrivateKey(privateKeyPem)).export({ format: "pem", type: "spki" }).toString();
|
|
1598
|
-
}
|
|
1599
|
-
function ed25519KeyId(publicKeyPem) {
|
|
1600
|
-
const der = createPublicKey(publicKeyPem).export({
|
|
1601
|
-
format: "der",
|
|
1602
|
-
type: "spki"
|
|
1603
|
-
});
|
|
1604
|
-
return createHash("sha256").update(der).digest("base64url").slice(0, 16);
|
|
1605
|
-
}
|
|
1606
|
-
function signEd25519(payload, privateKey) {
|
|
1607
|
-
return nodeSign(null, Buffer.from(payload, "utf8"), privateKey).toString("base64");
|
|
1608
|
-
}
|
|
1609
|
-
function verifyEd25519(payload, signatureBase64, publicKey) {
|
|
1610
|
-
try {
|
|
1611
|
-
return nodeVerify(null, Buffer.from(payload, "utf8"), publicKey, Buffer.from(signatureBase64, "base64"));
|
|
1612
|
-
} catch {
|
|
1613
|
-
return false;
|
|
1614
|
-
}
|
|
1615
|
-
}
|
|
1616
1692
|
export {
|
|
1617
1693
|
validateSubscriptionFilterForTable,
|
|
1618
1694
|
sql2 as sql,
|
|
1695
|
+
setMigrationRole,
|
|
1619
1696
|
parseJsonb,
|
|
1697
|
+
onControlPlane,
|
|
1698
|
+
onChainPlane,
|
|
1620
1699
|
logger,
|
|
1621
1700
|
jsonb,
|
|
1622
1701
|
isPox4DecoderEnabled,
|
|
@@ -1624,6 +1703,7 @@ export {
|
|
|
1624
1703
|
getSourceDb,
|
|
1625
1704
|
getRawClientFor,
|
|
1626
1705
|
getRawClient,
|
|
1706
|
+
getMigrationRole,
|
|
1627
1707
|
getErrorMessage,
|
|
1628
1708
|
getEnv,
|
|
1629
1709
|
getDbSplitStatus,
|
|
@@ -1644,6 +1724,7 @@ export {
|
|
|
1644
1724
|
ValidationError,
|
|
1645
1725
|
UpdateSubscriptionRequestSchema,
|
|
1646
1726
|
TenantSuspendedError,
|
|
1727
|
+
TABLE_TO_DB,
|
|
1647
1728
|
SubscriptionStatusSchema,
|
|
1648
1729
|
SubscriptionRuntimeSchema,
|
|
1649
1730
|
SubscriptionFormatSchema,
|
|
@@ -1693,5 +1774,5 @@ export {
|
|
|
1693
1774
|
AuthenticationError
|
|
1694
1775
|
};
|
|
1695
1776
|
|
|
1696
|
-
//# debugId=
|
|
1777
|
+
//# debugId=E26BA28FDF632B7E64756E2164756E21
|
|
1697
1778
|
//# sourceMappingURL=index.js.map
|