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
2 changes: 1 addition & 1 deletion internal/transform/schema.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ type TransactionOutput struct {
FeeAccount string `json:"fee_account,omitempty"`
FeeAccountMuxed string `json:"fee_account_muxed,omitempty"`
InnerTransactionHash string `json:"inner_transaction_hash,omitempty"`
NewMaxFee uint32 `json:"new_max_fee,omitempty"`
NewMaxFee int64 `json:"new_max_fee,omitempty"`
Copy link

Copilot AI Apr 7, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changing new_max_fee from uint32 to int64 is a schema/API breaking change for any consumers that deserialize TransactionOutput (and any downstream BigQuery schema expectations). If this is intentional, it should be accompanied by a documented migration/compatibility plan (e.g., schema version bump, backfill/reload notes, or explicit downstream consumer updates).

Suggested change
NewMaxFee int64 `json:"new_max_fee,omitempty"`
NewMaxFee uint32 `json:"new_max_fee,omitempty"`

Copilot uses AI. Check for mistakes.
LedgerBounds string `json:"ledger_bounds"`
MinAccountSequence null.Int `json:"min_account_sequence"`
MinAccountSequenceAge null.Int `json:"min_account_sequence_age"`
Expand Down
2 changes: 1 addition & 1 deletion internal/transform/schema_parquet.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ type TransactionOutputParquet struct {
FeeAccount string `parquet:"name=fee_account, type=BYTE_ARRAY, convertedtype=UTF8, encoding=PLAIN_DICTIONARY"`
FeeAccountMuxed string `parquet:"name=fee_account_muxed, type=BYTE_ARRAY, convertedtype=UTF8, encoding=PLAIN_DICTIONARY"`
InnerTransactionHash string `parquet:"name=inner_transaction_hash, type=BYTE_ARRAY, convertedtype=UTF8, encoding=PLAIN_DICTIONARY"`
NewMaxFee int64 `parquet:"name=new_max_fee, type=INT64, convertedtype=UINT_64"`
NewMaxFee int64 `parquet:"name=new_max_fee, type=INT64"`
Copy link

Copilot AI Apr 7, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This changes the Parquet schema for new_max_fee by removing the unsigned logical type (convertedtype=UINT_64) while similar fee fields (e.g., max_fee at internal/transform/schema_parquet.go:38) still use UINT_64. If downstream readers expect new_max_fee to be unsigned (or rely on the previous Parquet schema), this will be a breaking change; consider keeping convertedtype=UINT_64 for consistency, or updating all fee-related fields + consumers together with a clear migration.

Suggested change
NewMaxFee int64 `parquet:"name=new_max_fee, type=INT64"`
NewMaxFee int64 `parquet:"name=new_max_fee, type=INT64, convertedtype=UINT_64"`

Copilot uses AI. Check for mistakes.
LedgerBounds string `parquet:"name=ledger_bounds, type=BYTE_ARRAY, convertedtype=UTF8, encoding=PLAIN_DICTIONARY"`
MinAccountSequence int64 `parquet:"name=min_account_sequence, type=INT64"`
MinAccountSequenceAge int64 `parquet:"name=min_account_sequence_age, type=INT64"`
Expand Down
2 changes: 1 addition & 1 deletion internal/transform/transaction.go
Original file line number Diff line number Diff line change
Expand Up @@ -291,7 +291,7 @@ func TransformTransaction(transaction ingest.LedgerTransaction, lhe xdr.LedgerHe
transformedTransaction.FeeAccount = feeAccount.Address()
innerHash := transaction.Result.InnerHash()
transformedTransaction.InnerTransactionHash = hex.EncodeToString(innerHash[:])
transformedTransaction.NewMaxFee = uint32(transaction.Envelope.FeeBumpFee())
transformedTransaction.NewMaxFee = int64(transaction.Envelope.FeeBumpFee())
txSigners, err := getTxSigners(transaction.Envelope.FeeBump.Signatures)
if err != nil {
return TransactionOutput{}, err
Expand Down
Loading