@@ -74,9 +74,15 @@ type Ingestor struct {
74
74
75
75
func NewIngestor (logger * zap.Logger , sqlDB * sql.DB , apiKey string ) * Ingestor {
76
76
pubSub := NewPubSub ()
77
- s3Syncer , err := NewS3Syncer (logger , "cache" )
78
- if err != nil {
79
- logger .Error ("Failed to create S3Syncer" , zap .Error (err ))
77
+ var s3Syncer * S3Syncer
78
+
79
+ // Check if SYNC_TO_AWS environment variable is set
80
+ if os .Getenv ("SYNC_TO_AWS" ) == "true" {
81
+ var err error
82
+ s3Syncer , err = NewS3Syncer (logger , "cache" )
83
+ if err != nil {
84
+ logger .Error ("Failed to create S3Syncer" , zap .Error (err ))
85
+ }
80
86
}
81
87
82
88
ingestor := & Ingestor {
@@ -439,6 +445,14 @@ func (i *Ingestor) processTransaction(ctx context.Context, tx *EtherscanTransact
439
445
if err != nil {
440
446
return fmt .Errorf ("failed to insert wrapping history: %w" , err )
441
447
}
448
+ err = i .queries .UpdateTile (ctx , db.UpdateTileParams {
449
+ ID : int32 (location .Int64 ()),
450
+ Owner : tx .From ,
451
+ Wrapped : wrapped == "true" ,
452
+ })
453
+ if err != nil {
454
+ return fmt .Errorf ("failed to update tile owner: %w" , err )
455
+ }
442
456
}
443
457
case "unwrap" :
444
458
i .logger .Info ("wrap called" ,
@@ -465,6 +479,14 @@ func (i *Ingestor) processTransaction(ctx context.Context, tx *EtherscanTransact
465
479
if err != nil {
466
480
return fmt .Errorf ("failed to insert wrapping history: %w" , err )
467
481
}
482
+ err = i .queries .UpdateTile (ctx , db.UpdateTileParams {
483
+ ID : int32 (location .Int64 ()),
484
+ Owner : tx .From ,
485
+ Wrapped : wrapped == "false" ,
486
+ })
487
+ if err != nil {
488
+ return fmt .Errorf ("failed to update tile owner: %w" , err )
489
+ }
468
490
}
469
491
case "transferFrom" , "safeTransferFrom" , "safeTransferFrom0" :
470
492
if err := i .processTransfer (ctx , args , tx , timeStamp .Int64 (), blockNumber .Int64 (), int32 (transactionIndex )); err != nil {
@@ -633,9 +655,20 @@ func (i *Ingestor) processDataHistory(ctx context.Context) error {
633
655
}
634
656
utils .RenderFullMap (tiles , "cache/tilemap.png" )
635
657
658
+ // get all tiles
659
+ all_tiles , err := i .queries .ListTiles (ctx , db.ListTilesParams {
660
+ Limit : int32 (3970 ),
661
+ Offset : 0 ,
662
+ })
663
+
664
+ if err != nil {
665
+ return fmt .Errorf ("failed to get all tiles: %w" , err )
666
+ }
667
+ GenerateTiledataJSON (all_tiles )
668
+
636
669
i .logger .Info ("Finished processing data history" , zap .Int ("count" , len (history )))
637
670
638
- // Sync with S3 after processing
671
+ // Sync with S3 after processing only if s3Syncer is initialized
639
672
if i .s3Syncer != nil {
640
673
err := i .s3Syncer .SyncWithS3 (ctx )
641
674
if err != nil {
@@ -764,6 +797,19 @@ func (i *Ingestor) processTileUpdate(ctx context.Context, location *big.Int, ima
764
797
return fmt .Errorf ("failed to insert data history: %w" , err )
765
798
}
766
799
800
+ // Update the tile in the database
801
+ err := i .queries .UpdateTile (ctx , db.UpdateTileParams {
802
+ ID : int32 (location .Int64 ()),
803
+ Price : priceEthStr ,
804
+ Url : url ,
805
+ Image : image ,
806
+ })
807
+ if err != nil {
808
+ i .logger .Error ("Failed to update tile" , zap .Error (err ), zap .String ("location" , location .String ()))
809
+ os .Exit (1 )
810
+ return fmt .Errorf ("failed to update tile: %w" , err )
811
+ }
812
+
767
813
// Signal that new data is available to render
768
814
i .signalNewData ()
769
815
0 commit comments