refactor: project-wide time types to u64 aliases for ScVal compatibility#708
Open
precious-akpan wants to merge 120 commits intoJagadeeshftw:masterfrom
Open
refactor: project-wide time types to u64 aliases for ScVal compatibility#708precious-akpan wants to merge 120 commits intoJagadeeshftw:masterfrom
precious-akpan wants to merge 120 commits intoJagadeeshftw:masterfrom
Conversation
…ps://github.com/Jayrodri088/grainlify into frontend/fetch-project-leaderboard-from-backend
…board-from-backend
…ps://github.com/Jayrodri088/grainlify into frontend/fetch-project-leaderboard-from-backend
….com/Jayrodri088/grainlify into frontend/mobile-responsive-data-page
…ps://github.com/Jayrodri088/grainlify into frontend/fetch-project-leaderboard-from-backend
- Add comprehensive event schema documentation (EVENT_SCHEMA.md) * Define event structures for all contracts * Document event versioning strategy * Provide indexing strategies and retention policies * Include monitoring hooks and filtering examples - Implement event indexing infrastructure (internal/events/indexing.go) * EventIndexer for efficient event querying * Support for time-series, entity-based, and composite queries * Event aggregation capabilities * Event statistics and unindexed event tracking - Implement event monitoring system (internal/events/monitoring.go) * EventMonitor for real-time event listening * AnomalyDetector for detecting unusual patterns * Alert generation and handling * EventFilter and EventAggregator utilities - Implement advanced event filtering (internal/events/filtering.go) * FilterBuilder with fluent API * AdvancedEventFilter with operators (eq, ne, gt, gte, lt, lte, contains, in) * EventFilterStatistics for analytics * EventFilterExporter for JSON/CSV export - Create database migration (migrations/000025_contract_events_indexing.up.sql) * contract_events table with comprehensive indexing * event_alerts table for monitoring alerts * event_metrics table for performance tracking * event_replay_log table for event replay capability * Materialized views for daily statistics * Database functions for cleanup and queries - Add event indexing strategy guide (EVENT_INDEXING_STRATEGY.md) * Architecture overview and data flow * Database schema documentation * Indexing strategies (time-series, entity, composite, JSONB, materialized views) * Query patterns and monitoring hooks * Performance optimization techniques * Event retention policy - Add event versioning documentation (contracts/EVENT_VERSIONING.md) * Semantic versioning scheme (MAJOR.MINOR.PATCH) * Version evolution rules and migration strategies * Deprecation timeline and best practices * Indexer compatibility patterns * Version roadmap - Add implementation guide (EVENT_INDEXING_README.md) * Component overview and architecture * Usage examples for all major features * API integration patterns * Monitoring dashboard metrics * Performance tuning guide * Troubleshooting section Key Features: - Efficient off-chain event indexing with multiple strategies - Real-time event monitoring and anomaly detection - Comprehensive event schema with backward compatibility - Event versioning for smooth schema evolution - Advanced filtering and aggregation capabilities - Performance metrics and SLA tracking - Event retention policies for compliance - Monitoring alerts and dashboards Closes #[event-indexing-issue]
… Soroban contracts - Add error classification system (transient, permanent, partial) - Implement exponential backoff with jitter for retry logic - Add circuit breaker pattern to prevent cascading failures - Support partial success in batch operations with detailed tracking - Implement error state persistence and monitoring - Add comprehensive event emission for all error scenarios - Create 20 passing unit tests covering all error recovery scenarios - Integrate error recovery into program-escrow contract This implementation significantly improves platform reliability by: - Automatically retrying transient failures (network timeouts, rate limits) - Preventing permanent error retries (insufficient funds, invalid addresses) - Allowing batch operations to partially succeed instead of all-or-nothing - Tracking failed batch items for targeted retry - Implementing circuit breakers to prevent system overload - Providing detailed error events for monitoring and debugging All tests passing (36/36)
- Create comprehensive SDK for Grainlify contracts - TypeScript bindings from contract ABIs - Client classes for Core and Escrow contracts - Examples for all workflows: lock funds, release funds, batch payouts, query escrow - Error handling utilities - Complete documentation and usage guide
- Remove node_modules directory from contracts/sdk - Add node_modules/ to root .gitignore to prevent future commits
…ps://github.com/Jayrodri088/grainlify into frontend/fetch-project-leaderboard-from-backend
…, and ensure all cargo checks pass
…ps://github.com/Jayrodri088/grainlify into frontend/fetch-project-leaderboard-from-backend
…oject-leaderboard-from-backend Frontend/fetch project leaderboard from backend
Add support for daily, weekly, quarterly, and yearly intervals in the contributor activity chart on the data page. Update authentication context to handle mock auth scenarios.
…ibutor activity chart dropdown
…ctivity-interval-filtering Fix/contributor activity interval filtering
…support Issue 150: Feat/partial payout support
…ple-languages-project-cards feat: display multiple languages used in projects on project cards
…figuration feat: admin configuration functions
… local definitions
|
@precious-akpan is attempting to deploy a commit to the Jagadeesh B's projects Team on Vercel. A member of the Team first needs to authorize it. |
Owner
|
@precious-akpan Did you mind resolving the conflicts? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resolves #589
Overview
This PR implements project-wide type-safe time wrappers by refactoring
TimestampandDurationtou64type aliases. This resolves the persistentE0277errors encountered when using these types withinOptionin contract storage and events across crate boundaries.Key Changes
u64aliases and trait-based extensions (TimestampExt,DurationExt).now,from_hours, etc.) to improve type inference and usability.bounty-escrow,program-escrow, andgrainlify-coreto adopt the new architecture.grainlify-core.upstream masterchanges.Verification
All contract tests pass cleanly:
bounty-escrow: 27 tests passedprogram-escrow: 15 tests passedgrainlify-core: 11 tests passed