Skip to content

Commit

Permalink
ARCO-193: remove unused columns add status history and last modified (#…
Browse files Browse the repository at this point in the history
…576)

* ARCO-193: remove unused columns add status history and last modified

* ARCO-193: regenerate protobuf files

* ARCO-193: remove unnecessary comments
  • Loading branch information
pawellewandowski98 authored Sep 4, 2024
1 parent 2b5904e commit 0e31930
Show file tree
Hide file tree
Showing 17 changed files with 291 additions and 358 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,4 @@
locked_by: metamorph-1
status: 60
stored_at: 2023-10-01 14:00:00
announced_at: 2023-10-01 14:05:00
last_submitted_at: 2023-10-01 14:00:00
291 changes: 133 additions & 158 deletions internal/metamorph/metamorph_api/metamorph_api.pb.go

Large diffs are not rendered by default.

2 changes: 0 additions & 2 deletions internal/metamorph/metamorph_api/metamorph_api.proto
Original file line number Diff line number Diff line change
Expand Up @@ -84,8 +84,6 @@ message Transaction {
message TransactionStatus {
bool timed_out = 1;
google.protobuf.Timestamp stored_at = 2;
google.protobuf.Timestamp announced_at = 3;
google.protobuf.Timestamp mined_at = 4;
string txid = 5;
Status status = 6;
string reject_reason = 7;
Expand Down
39 changes: 17 additions & 22 deletions internal/metamorph/processor_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -204,10 +204,9 @@ func TestProcessTransaction(t *testing.T) {
}
return []*store.StoreData{
{
StoredAt: time.Now(),
AnnouncedAt: time.Now(),
Hash: testdata.TX1Hash,
Status: metamorph_api.Status_ANNOUNCED_TO_NETWORK,
StoredAt: time.Now(),
Hash: testdata.TX1Hash,
Status: metamorph_api.Status_ANNOUNCED_TO_NETWORK,
},
}, nil
},
Expand Down Expand Up @@ -724,18 +723,16 @@ func TestProcessExpiredTransactions(t *testing.T) {
}
unminedData := []*store.StoreData{
{
StoredAt: time.Now(),
AnnouncedAt: time.Now(),
Hash: testdata.TX4Hash,
Status: metamorph_api.Status_ANNOUNCED_TO_NETWORK,
Retries: retries,
StoredAt: time.Now(),
Hash: testdata.TX4Hash,
Status: metamorph_api.Status_ANNOUNCED_TO_NETWORK,
Retries: retries,
},
{
StoredAt: time.Now(),
AnnouncedAt: time.Now(),
Hash: testdata.TX5Hash,
Status: metamorph_api.Status_STORED,
Retries: retries,
StoredAt: time.Now(),
Hash: testdata.TX5Hash,
Status: metamorph_api.Status_STORED,
Retries: retries,
},
}

Expand Down Expand Up @@ -896,16 +893,14 @@ func TestProcessorHealth(t *testing.T) {
}
return []*store.StoreData{
{
StoredAt: time.Now(),
AnnouncedAt: time.Now(),
Hash: testdata.TX1Hash,
Status: metamorph_api.Status_ANNOUNCED_TO_NETWORK,
StoredAt: time.Now(),
Hash: testdata.TX1Hash,
Status: metamorph_api.Status_ANNOUNCED_TO_NETWORK,
},
{
StoredAt: time.Now(),
AnnouncedAt: time.Now(),
Hash: testdata.TX2Hash,
Status: metamorph_api.Status_STORED,
StoredAt: time.Now(),
Hash: testdata.TX2Hash,
Status: metamorph_api.Status_STORED,
},
}, nil
},
Expand Down
30 changes: 6 additions & 24 deletions internal/metamorph/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -320,17 +320,15 @@ func (s *Server) processTransaction(ctx context.Context, waitForStatus metamorph
}

func (s *Server) GetTransaction(ctx context.Context, req *metamorph_api.TransactionStatusRequest) (*metamorph_api.Transaction, error) {
data, announcedAt, minedAt, storedAt, err := s.getTransactionData(ctx, req)
data, storedAt, err := s.getTransactionData(ctx, req)
if err != nil {
s.logger.Error("failed to get transaction", slog.String("hash", req.GetTxid()), slog.String("err", err.Error()))
return nil, err
}

txn := &metamorph_api.Transaction{
Txid: data.Hash.String(),
AnnouncedAt: announcedAt,
StoredAt: storedAt,
MinedAt: minedAt,
Status: data.Status,
BlockHeight: data.BlockHeight,
RejectReason: data.RejectReason,
Expand Down Expand Up @@ -362,12 +360,6 @@ func (s *Server) GetTransactions(ctx context.Context, req *metamorph_api.Transac
if sd.BlockHash != nil {
txn.BlockHash = sd.BlockHash.String()
}
if !sd.AnnouncedAt.IsZero() {
txn.AnnouncedAt = timestamppb.New(sd.AnnouncedAt)
}
if !sd.MinedAt.IsZero() {
txn.MinedAt = timestamppb.New(sd.MinedAt)
}
if !sd.StoredAt.IsZero() {
txn.StoredAt = timestamppb.New(sd.StoredAt)
}
Expand All @@ -379,7 +371,7 @@ func (s *Server) GetTransactions(ctx context.Context, req *metamorph_api.Transac
}

func (s *Server) GetTransactionStatus(ctx context.Context, req *metamorph_api.TransactionStatusRequest) (*metamorph_api.TransactionStatus, error) {
data, announcedAt, minedAt, storedAt, err := s.getTransactionData(ctx, req)
data, storedAt, err := s.getTransactionData(ctx, req)
if err != nil {
if errors.Is(err, store.ErrNotFound) {
return nil, ErrNotFound
Expand All @@ -395,9 +387,7 @@ func (s *Server) GetTransactionStatus(ctx context.Context, req *metamorph_api.Tr

returnStatus := &metamorph_api.TransactionStatus{
Txid: data.Hash.String(),
AnnouncedAt: announcedAt,
StoredAt: storedAt,
MinedAt: minedAt,
Status: data.Status,
BlockHeight: data.BlockHeight,
BlockHash: blockHash,
Expand All @@ -414,34 +404,26 @@ func (s *Server) GetTransactionStatus(ctx context.Context, req *metamorph_api.Tr
return returnStatus, nil
}

func (s *Server) getTransactionData(ctx context.Context, req *metamorph_api.TransactionStatusRequest) (*store.StoreData, *timestamppb.Timestamp, *timestamppb.Timestamp, *timestamppb.Timestamp, error) {
func (s *Server) getTransactionData(ctx context.Context, req *metamorph_api.TransactionStatusRequest) (*store.StoreData, *timestamppb.Timestamp, error) {
txBytes, err := hex.DecodeString(req.GetTxid())
if err != nil {
return nil, nil, nil, nil, err
return nil, nil, err
}

hash := util.ReverseBytes(txBytes)

var data *store.StoreData
data, err = s.store.Get(ctx, hash)
if err != nil {
return nil, nil, nil, nil, err
return nil, nil, err
}

var announcedAt *timestamppb.Timestamp
if !data.AnnouncedAt.IsZero() {
announcedAt = timestamppb.New(data.AnnouncedAt)
}
var minedAt *timestamppb.Timestamp
if !data.MinedAt.IsZero() {
minedAt = timestamppb.New(data.MinedAt)
}
var storedAt *timestamppb.Timestamp
if !data.StoredAt.IsZero() {
storedAt = timestamppb.New(data.StoredAt)
}

return data, announcedAt, minedAt, storedAt, nil
return data, storedAt, nil
}

func (s *Server) getTransactions(ctx context.Context, req *metamorph_api.TransactionsStatusRequest) ([]*store.StoreData, error) {
Expand Down
44 changes: 15 additions & 29 deletions internal/metamorph/server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -186,12 +186,10 @@ func TestServer_GetTransactionStatus(t *testing.T) {
status: metamorph_api.Status_SENT_TO_NETWORK,

want: &metamorph_api.TransactionStatus{
StoredAt: timestamppb.New(testdata.Time),
AnnouncedAt: timestamppb.New(testdata.Time.Add(1 * time.Second)),
MinedAt: timestamppb.New(testdata.Time.Add(2 * time.Second)),
Txid: testdata.TX1Hash.String(),
Status: metamorph_api.Status_SENT_TO_NETWORK,
MerklePath: "00000",
StoredAt: timestamppb.New(testdata.Time),
Txid: testdata.TX1Hash.String(),
Status: metamorph_api.Status_SENT_TO_NETWORK,
MerklePath: "00000",
},
wantErr: assert.NoError,
},
Expand All @@ -205,8 +203,6 @@ func TestServer_GetTransactionStatus(t *testing.T) {

want: &metamorph_api.TransactionStatus{
StoredAt: timestamppb.New(testdata.Time),
AnnouncedAt: timestamppb.New(testdata.Time.Add(1 * time.Second)),
MinedAt: timestamppb.New(testdata.Time.Add(2 * time.Second)),
Txid: testdata.TX1Hash.String(),
Status: metamorph_api.Status_DOUBLE_SPEND_ATTEMPTED,
CompetingTxs: []string{"1234"},
Expand All @@ -224,8 +220,6 @@ func TestServer_GetTransactionStatus(t *testing.T) {

want: &metamorph_api.TransactionStatus{
StoredAt: timestamppb.New(testdata.Time),
AnnouncedAt: timestamppb.New(testdata.Time.Add(1 * time.Second)),
MinedAt: timestamppb.New(testdata.Time.Add(2 * time.Second)),
Txid: testdata.TX1Hash.String(),
Status: metamorph_api.Status_MINED,
CompetingTxs: []string{},
Expand All @@ -243,12 +237,10 @@ func TestServer_GetTransactionStatus(t *testing.T) {
getTxMerklePathErr: errors.New("failed to get tx merkle path"),

want: &metamorph_api.TransactionStatus{
StoredAt: timestamppb.New(testdata.Time),
AnnouncedAt: timestamppb.New(testdata.Time.Add(1 * time.Second)),
MinedAt: timestamppb.New(testdata.Time.Add(2 * time.Second)),
Txid: testdata.TX1Hash.String(),
Status: metamorph_api.Status_SENT_TO_NETWORK,
MerklePath: "00000",
StoredAt: timestamppb.New(testdata.Time),
Txid: testdata.TX1Hash.String(),
Status: metamorph_api.Status_SENT_TO_NETWORK,
MerklePath: "00000",
},
wantErr: assert.NoError,
},
Expand All @@ -261,12 +253,10 @@ func TestServer_GetTransactionStatus(t *testing.T) {
getTxMerklePathErr: blocktx.ErrMerklePathNotFoundForTransaction,

want: &metamorph_api.TransactionStatus{
StoredAt: timestamppb.New(testdata.Time),
AnnouncedAt: timestamppb.New(testdata.Time.Add(1 * time.Second)),
MinedAt: timestamppb.New(testdata.Time.Add(2 * time.Second)),
Txid: testdata.TX1Hash.String(),
Status: metamorph_api.Status_MINED,
MerklePath: "00000",
StoredAt: timestamppb.New(testdata.Time),
Txid: testdata.TX1Hash.String(),
Status: metamorph_api.Status_MINED,
MerklePath: "00000",
},
wantErr: assert.NoError,
},
Expand All @@ -277,8 +267,6 @@ func TestServer_GetTransactionStatus(t *testing.T) {
GetFunc: func(ctx context.Context, key []byte) (*store.StoreData, error) {
data := &store.StoreData{
StoredAt: testdata.Time,
AnnouncedAt: testdata.Time.Add(1 * time.Second),
MinedAt: testdata.Time.Add(2 * time.Second),
Hash: testdata.TX1Hash,
Status: tt.status,
CompetingTxs: tt.competingTxs,
Expand Down Expand Up @@ -465,11 +453,9 @@ func TestPutTransactions(t *testing.T) {
},
},
transactionFound: map[int]*store.StoreData{1: {
Status: metamorph_api.Status_SENT_TO_NETWORK,
Hash: hash1,
StoredAt: time.Time{},
AnnouncedAt: time.Time{},
MinedAt: time.Time{},
Status: metamorph_api.Status_SENT_TO_NETWORK,
Hash: hash1,
StoredAt: time.Time{},
}},
processorResponse: map[string]*metamorph.StatusAndError{
hash0.String(): {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,108 +12,84 @@
locked_by: metamorph-1
status: 70
stored_at: 2023-10-01 14:00:00
announced_at: 2023-10-01 14:05:00
last_submitted_at: 2023-10-01 14:00:00
- hash: 0xee76f5b746893d3e6ae6a14a15e464704f4ebd601537820933789740acdcf6aa
locked_by: metamorph-1
status: 90
stored_at: 2023-10-01 14:00:00
announced_at: 2023-10-01 14:05:00
last_submitted_at: 2023-10-01 14:00:00
- hash: 0x3e0b5b218c344110f09bf485bc58de4ea5378e55744185edf9c1dafa40068ecd
locked_by: metamorph-1
status: 40
stored_at: 2023-10-01 14:00:00
announced_at: 2023-10-01 14:05:00
last_submitted_at: 2023-10-01 14:00:00
- hash: 0xc5ae385c2fcfecc71a5223457496f2d46ea9068f888cafd9f74bed805c4d176f
locked_by: metamorph-1
status: 40
stored_at: 2023-10-01 14:22:00
announced_at: 2023-10-01 14:23:00
last_submitted_at: 2023-10-01 14:00:00
- hash: 0xa327ae118ed86ae548bda8a76b49d7075dee5bbc1fa623d2a4b089db314b38e8
locked_by: metamorph-1
status: 100
stored_at: 2023-10-01 14:00:00
announced_at: 2023-10-01 14:05:00
last_submitted_at: 2023-10-01 14:00:00
- hash: 0x213a8c87c5460e82b5ae529212956b853c7ce6bf06e56b2e040eb063cf9a49f0
locked_by: metamorph-2
status: 120
stored_at: 2023-10-01 14:00:00
announced_at: 2023-10-01 14:05:00
mined_at: 2023-10-01 14:10:00
last_submitted_at: 2023-10-01 14:00:00
- hash: 0xa24845611f9518f0c1a5978b77a18317b6878086ce5d81f65c3d778db33a7b1d
locked_by: metamorph-1
status: 120
stored_at: 2023-10-01 14:00:00
announced_at: 2023-10-01 14:05:00
mined_at: 2023-10-01 14:10:00
last_submitted_at: 2023-10-01 14:00:00
- hash: 0x3095747c14ab173d163f1870008d4c7b7598268b8f695dbcc9f5ac3a3689d06b
locked_by: metamorph-1
status: 120
stored_at: 2023-10-01 14:22:00
announced_at: 2023-10-01 14:23:00
mined_at: 2023-10-01 14:10:00
last_submitted_at: 2023-10-01 14:00:00
- hash: 0x0157bff08e9bef348cdeaeab09a038743fc5f138b7a44f85ceda7932684871a3
locked_by: metamorph-1
status: 110
stored_at: 2023-10-01 14:22:00
announced_at: 2023-10-01 14:23:00
mined_at: 2023-10-01 14:10:00
last_submitted_at: 2023-10-01 14:00:00
- hash: 0x12c04cfc5643f1cd25639ad42d6f8f0489557699d92071d7e0a5b940438c4357
locked_by: NONE
status: 40
stored_at: 2023-10-01 14:00:00
announced_at: 2023-10-01 14:05:00
last_submitted_at: 2023-10-01 14:00:00
- hash: 0x78d66c8391ff5e4a65b494e39645facb420b744f77f3f3b83a3aa8573282176e
locked_by: NONE
status: 50
stored_at: 2023-10-01 14:00:00
announced_at: 2023-10-01 14:05:00
last_submitted_at: 2023-10-01 14:00:00
- hash: 0x319b5eb9d99084b72002640d1445f49b8c83539260a7e5b2cbb16c1d2954a743
locked_by: NONE
status: 60
stored_at: 2023-10-01 14:00:00
announced_at: 2023-10-01 14:05:00
last_submitted_at: 2023-10-01 14:00:00
- hash: 0x392ea135503bf49f46eb421af01153a2bdcedeba0ee13aa1dd36983861cc5ddd
locked_by: NONE
status: 60
stored_at: 2023-09-01 14:00:00
announced_at: 2023-09-01 14:00:00
last_submitted_at: 2023-10-01 14:00:00
- hash: 0xa8b965b5901163a9bdcd38d2ad524c3bb27ae31fb86dc8947253b541af8dd308
locked_by: NONE
status: 120
stored_at: 2023-09-01 14:00:00
announced_at: 2023-09-01 14:05:00
mined_at: 2023-09-01 14:10:00
last_submitted_at: 2023-10-01 14:00:00
- hash: 0x9a391adf8c716cfdb5fc17dadc85761259762a099dd4727b4412288661ef3c95
locked_by: NONE
status: 120
stored_at: 2023-09-01 14:00:00
announced_at: 2023-09-01 14:05:00
mined_at: 2023-09-01 14:10:00
last_submitted_at: 2023-10-01 14:00:00
- hash: 0x1e7ce0d2fcac0a1a0c174e57a7334f9bf6803280af838a0a0389b230ee488dad
locked_by: NONE
status: 120
stored_at: 2023-09-01 14:00:00
announced_at: 2023-09-01 14:05:00
mined_at: 2023-09-01 14:10:00
last_submitted_at: 2023-10-01 14:00:00
- hash: 0x855b2aea1420df52a561fe851297653739677b14c89c0a08e3f70e1942bcb10f
locked_by: NONE
status: 90
stored_at: 2023-01-01 02:00:00
announced_at: 2023-01-01 02:05:00
last_submitted_at: 2023-10-01 14:00:00
Loading

0 comments on commit 0e31930

Please sign in to comment.