Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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
255 changes: 237 additions & 18 deletions app/backend/src/ingestion/event-schema.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ exports.RustAcademy_EVENT_TOPICS = {
// payloadKeys are sorted alphabetically.
// "ledger_sequence" ('l') sorts after 'f*' / 'e*' keys and before 'p*' / 'r*' / 's*' keys.
exports.RustAcademy_EVENT_SCHEMA_CONTRACTS = {
// ── Escrow events ───────────────────────────────────────────────────────
EscrowDeposited: {
topic: exports.RustAcademy_EVENT_TOPICS.escrow,
eventName: "EscrowDeposited",
Expand Down Expand Up @@ -44,6 +45,86 @@ exports.RustAcademy_EVENT_SCHEMA_CONTRACTS = {
schemaVersion: exports.RustAcademy_EVENT_SCHEMA_VERSION,
compatibleVersions: [1, exports.RustAcademy_EVENT_SCHEMA_VERSION],
},
EscrowDisputed: {
topic: exports.RustAcademy_EVENT_TOPICS.escrow,
eventName: "EscrowDisputed",
indexedFields: ["escrow_id", "arbiter"],
payloadKeys: ["ledger_sequence", "schema_version", "timestamp"],
schemaVersion: exports.RustAcademy_EVENT_SCHEMA_VERSION,
compatibleVersions: [exports.RustAcademy_EVENT_SCHEMA_VERSION],
},
EscrowFinalized: {
topic: exports.RustAcademy_EVENT_TOPICS.escrow,
eventName: "EscrowFinalized",
indexedFields: ["escrow_id", "owner"],
payloadKeys: ["ledger_sequence", "schema_version", "timestamp", "token", "total_amount"],
schemaVersion: exports.RustAcademy_EVENT_SCHEMA_VERSION,
compatibleVersions: [exports.RustAcademy_EVENT_SCHEMA_VERSION],
},
PartialPayment: {
topic: exports.RustAcademy_EVENT_TOPICS.escrow,
eventName: "PartialPayment",
indexedFields: ["escrow_id", "payer"],
payloadKeys: [
"amount_due",
"amount_paid",
"ledger_sequence",
"payment_amount",
"schema_version",
"timestamp",
"token",
],
schemaVersion: exports.RustAcademy_EVENT_SCHEMA_VERSION,
compatibleVersions: [exports.RustAcademy_EVENT_SCHEMA_VERSION],
},
// ── Dispute events ──────────────────────────────────────────────────────
ArbiterVoteCast: {
topic: exports.RustAcademy_EVENT_TOPICS.dispute,
eventName: "ArbiterVoteCast",
indexedFields: ["escrow_id", "arbiter"],
payloadKeys: [
"ledger_sequence",
"resolve_for_owner",
"schema_version",
"threshold",
"timestamp",
"vote_count",
],
schemaVersion: exports.RustAcademy_EVENT_SCHEMA_VERSION,
compatibleVersions: [exports.RustAcademy_EVENT_SCHEMA_VERSION],
},
DisputeResolved: {
topic: exports.RustAcademy_EVENT_TOPICS.dispute,
eventName: "DisputeResolved",
indexedFields: ["escrow_id", "resolved_for_owner"],
payloadKeys: [
"amount",
"ledger_sequence",
"schema_version",
"threshold",
"timestamp",
"total_votes",
],
schemaVersion: exports.RustAcademy_EVENT_SCHEMA_VERSION,
compatibleVersions: [exports.RustAcademy_EVENT_SCHEMA_VERSION],
},
DisputeTimeoutSet: {
topic: exports.RustAcademy_EVENT_TOPICS.dispute,
eventName: "DisputeTimeoutSet",
indexedFields: ["escrow_id"],
payloadKeys: ["action", "expires_at", "ledger_sequence", "schema_version", "timestamp"],
schemaVersion: exports.RustAcademy_EVENT_SCHEMA_VERSION,
compatibleVersions: [exports.RustAcademy_EVENT_SCHEMA_VERSION],
},
DisputeAutoResolved: {
topic: exports.RustAcademy_EVENT_TOPICS.dispute,
eventName: "DisputeAutoResolved",
indexedFields: ["escrow_id", "action"],
payloadKeys: ["amount", "ledger_sequence", "recipient", "schema_version", "timestamp"],
schemaVersion: exports.RustAcademy_EVENT_SCHEMA_VERSION,
compatibleVersions: [exports.RustAcademy_EVENT_SCHEMA_VERSION],
},
// ── Privacy events ──────────────────────────────────────────────────────
PrivacyToggled: {
topic: exports.RustAcademy_EVENT_TOPICS.privacy,
eventName: "PrivacyToggled",
Expand All @@ -52,14 +133,32 @@ exports.RustAcademy_EVENT_SCHEMA_CONTRACTS = {
schemaVersion: exports.RustAcademy_EVENT_SCHEMA_VERSION,
compatibleVersions: [1, exports.RustAcademy_EVENT_SCHEMA_VERSION],
},
ContractPaused: {
topic: exports.RustAcademy_EVENT_TOPICS.admin,
eventName: "ContractPaused",
indexedFields: ["admin"],
payloadKeys: ["ledger_sequence", "paused", "schema_version", "timestamp"],
// ── Stealth events ──────────────────────────────────────────────────────
EphemeralKeyRegistered: {
topic: exports.RustAcademy_EVENT_TOPICS.stealth,
eventName: "EphemeralKeyRegistered",
indexedFields: ["stealth_address", "eph_pub"],
payloadKeys: [
"amount_due",
"amount_paid",
"expires_at",
"ledger_sequence",
"schema_version",
"timestamp",
"token",
],
schemaVersion: exports.RustAcademy_EVENT_SCHEMA_VERSION,
compatibleVersions: [exports.RustAcademy_EVENT_SCHEMA_VERSION],
},
StealthWithdrawn: {
topic: exports.RustAcademy_EVENT_TOPICS.stealth,
eventName: "StealthWithdrawn",
indexedFields: ["stealth_address", "recipient"],
payloadKeys: ["amount", "ledger_sequence", "schema_version", "timestamp", "token"],
schemaVersion: exports.RustAcademy_EVENT_SCHEMA_VERSION,
compatibleVersions: [exports.RustAcademy_EVENT_SCHEMA_VERSION],
},
// ── Admin events ────────────────────────────────────────────────────────
AdminChanged: {
topic: exports.RustAcademy_EVENT_TOPICS.admin,
eventName: "AdminChanged",
Expand All @@ -68,6 +167,37 @@ exports.RustAcademy_EVENT_SCHEMA_CONTRACTS = {
schemaVersion: exports.RustAcademy_EVENT_SCHEMA_VERSION,
compatibleVersions: [1, exports.RustAcademy_EVENT_SCHEMA_VERSION],
},
ContractInitialized: {
topic: exports.RustAcademy_EVENT_TOPICS.admin,
eventName: "ContractInitialized",
indexedFields: ["admin"],
payloadKeys: [
"contract_version",
"event_schema_version",
"ledger_sequence",
"paused",
"schema_version",
"timestamp",
],
schemaVersion: exports.RustAcademy_EVENT_SCHEMA_VERSION,
compatibleVersions: [exports.RustAcademy_EVENT_SCHEMA_VERSION],
},
ContractMigrated: {
topic: exports.RustAcademy_EVENT_TOPICS.admin,
eventName: "ContractMigrated",
indexedFields: ["admin"],
payloadKeys: ["from_version", "ledger_sequence", "schema_version", "timestamp", "to_version"],
schemaVersion: exports.RustAcademy_EVENT_SCHEMA_VERSION,
compatibleVersions: [exports.RustAcademy_EVENT_SCHEMA_VERSION],
},
ContractPaused: {
topic: exports.RustAcademy_EVENT_TOPICS.admin,
eventName: "ContractPaused",
indexedFields: ["admin"],
payloadKeys: ["ledger_sequence", "paused", "schema_version", "timestamp"],
schemaVersion: exports.RustAcademy_EVENT_SCHEMA_VERSION,
compatibleVersions: [exports.RustAcademy_EVENT_SCHEMA_VERSION],
},
ContractUpgraded: {
topic: exports.RustAcademy_EVENT_TOPICS.admin,
eventName: "ContractUpgraded",
Expand All @@ -76,27 +206,116 @@ exports.RustAcademy_EVENT_SCHEMA_CONTRACTS = {
schemaVersion: exports.RustAcademy_EVENT_SCHEMA_VERSION,
compatibleVersions: [exports.RustAcademy_EVENT_SCHEMA_VERSION],
},
EphemeralKeyRegistered: {
topic: exports.RustAcademy_EVENT_TOPICS.stealth,
eventName: "EphemeralKeyRegistered",
indexedFields: ["stealth_address", "eph_pub"],
DisputeExpiryActionSet: {
topic: exports.RustAcademy_EVENT_TOPICS.admin,
eventName: "DisputeExpiryActionSet",
indexedFields: [],
payloadKeys: ["action", "ledger_sequence", "schema_version", "timestamp"],
schemaVersion: exports.RustAcademy_EVENT_SCHEMA_VERSION,
compatibleVersions: [exports.RustAcademy_EVENT_SCHEMA_VERSION],
},
DisputeTimeoutConfigSet: {
topic: exports.RustAcademy_EVENT_TOPICS.admin,
eventName: "DisputeTimeoutConfigSet",
indexedFields: [],
payloadKeys: ["ledger_sequence", "schema_version", "timeout_secs", "timestamp"],
schemaVersion: exports.RustAcademy_EVENT_SCHEMA_VERSION,
compatibleVersions: [exports.RustAcademy_EVENT_SCHEMA_VERSION],
},
EmergencyModeActivated: {
topic: exports.RustAcademy_EVENT_TOPICS.admin,
eventName: "EmergencyModeActivated",
indexedFields: ["admin"],
payloadKeys: ["ledger_sequence", "schema_version", "timestamp"],
schemaVersion: exports.RustAcademy_EVENT_SCHEMA_VERSION,
compatibleVersions: [exports.RustAcademy_EVENT_SCHEMA_VERSION],
},
FeeCollectorRotated: {
topic: exports.RustAcademy_EVENT_TOPICS.admin,
eventName: "FeeCollectorRotated",
indexedFields: ["new_collector"],
payloadKeys: ["ledger_sequence", "rotation_index", "schema_version", "timestamp"],
schemaVersion: exports.RustAcademy_EVENT_SCHEMA_VERSION,
compatibleVersions: [exports.RustAcademy_EVENT_SCHEMA_VERSION],
},
FeeConfigChanged: {
topic: exports.RustAcademy_EVENT_TOPICS.admin,
eventName: "FeeConfigChanged",
indexedFields: [],
payloadKeys: ["fee_bps", "ledger_sequence", "schema_version", "timestamp"],
schemaVersion: exports.RustAcademy_EVENT_SCHEMA_VERSION,
compatibleVersions: [exports.RustAcademy_EVENT_SCHEMA_VERSION],
},
HookRegistered: {
topic: exports.RustAcademy_EVENT_TOPICS.admin,
eventName: "HookRegistered",
indexedFields: ["hook_contract"],
payloadKeys: ["ledger_sequence", "schema_version", "timestamp"],
schemaVersion: exports.RustAcademy_EVENT_SCHEMA_VERSION,
compatibleVersions: [exports.RustAcademy_EVENT_SCHEMA_VERSION],
},
HookUnregistered: {
topic: exports.RustAcademy_EVENT_TOPICS.admin,
eventName: "HookUnregistered",
indexedFields: ["hook_contract"],
payloadKeys: ["ledger_sequence", "schema_version", "timestamp"],
schemaVersion: exports.RustAcademy_EVENT_SCHEMA_VERSION,
compatibleVersions: [exports.RustAcademy_EVENT_SCHEMA_VERSION],
},
PauseFlagsChanged: {
topic: exports.RustAcademy_EVENT_TOPICS.admin,
eventName: "PauseFlagsChanged",
indexedFields: ["admin"],
payloadKeys: ["flags_disabled", "flags_enabled", "ledger_sequence", "schema_version", "timestamp"],
schemaVersion: exports.RustAcademy_EVENT_SCHEMA_VERSION,
compatibleVersions: [exports.RustAcademy_EVENT_SCHEMA_VERSION],
},
PerAssetFeeSet: {
topic: exports.RustAcademy_EVENT_TOPICS.admin,
eventName: "PerAssetFeeSet",
indexedFields: ["token"],
payloadKeys: ["arbiter_bps", "fee_bps", "ledger_sequence", "schema_version", "timestamp"],
schemaVersion: exports.RustAcademy_EVENT_SCHEMA_VERSION,
compatibleVersions: [exports.RustAcademy_EVENT_SCHEMA_VERSION],
},
PlatformWalletChanged: {
topic: exports.RustAcademy_EVENT_TOPICS.admin,
eventName: "PlatformWalletChanged",
indexedFields: ["wallet"],
payloadKeys: ["ledger_sequence", "schema_version", "timestamp"],
schemaVersion: exports.RustAcademy_EVENT_SCHEMA_VERSION,
compatibleVersions: [exports.RustAcademy_EVENT_SCHEMA_VERSION],
},
UpgradeCompleted: {
topic: exports.RustAcademy_EVENT_TOPICS.admin,
eventName: "UpgradeCompleted",
indexedFields: ["admin"],
payloadKeys: ["ledger_sequence", "new_version", "old_version", "schema_version", "timestamp"],
schemaVersion: exports.RustAcademy_EVENT_SCHEMA_VERSION,
compatibleVersions: [exports.RustAcademy_EVENT_SCHEMA_VERSION],
},
UpgradeStarted: {
topic: exports.RustAcademy_EVENT_TOPICS.admin,
eventName: "UpgradeStarted",
indexedFields: ["admin"],
payloadKeys: [
"amount_due",
"amount_paid",
"expires_at",
"ledger_sequence",
"new_version",
"new_wasm_hash",
"old_version",
"schema_version",
"timestamp",
"token",
"window_end",
"window_start",
],
schemaVersion: exports.RustAcademy_EVENT_SCHEMA_VERSION,
compatibleVersions: [exports.RustAcademy_EVENT_SCHEMA_VERSION],
},
StealthWithdrawn: {
topic: exports.RustAcademy_EVENT_TOPICS.stealth,
eventName: "StealthWithdrawn",
indexedFields: ["stealth_address", "recipient"],
payloadKeys: ["amount", "ledger_sequence", "schema_version", "timestamp", "token"],
UpgradeWindowSet: {
topic: exports.RustAcademy_EVENT_TOPICS.admin,
eventName: "UpgradeWindowSet",
indexedFields: ["admin"],
payloadKeys: ["ledger_sequence", "schema_version", "timestamp", "window_end", "window_start"],
schemaVersion: exports.RustAcademy_EVENT_SCHEMA_VERSION,
compatibleVersions: [exports.RustAcademy_EVENT_SCHEMA_VERSION],
},
Expand Down
Loading
Loading