Skip to content

Commit 7b7c560

Browse files
committed
Fix message ordering in the batch transaction
- storage update approval before reference updates
1 parent 0441106 commit 7b7c560

File tree

1 file changed

+24
-23
lines changed

1 file changed

+24
-23
lines changed

cmd/git-remote-gitopia/gitopia.go

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -374,6 +374,30 @@ func (h *GitopiaHandler) Push(remote *core.Remote, refsToPush []core.RefToPush)
374374
}
375375

376376
var msg []sdk.Msg
377+
378+
// Approve packfile update
379+
packfileUpdateProposalRes, err := h.storageClient.PackfileUpdateProposal(context.Background(), &storagetypes.QueryPackfileUpdateProposalRequest{
380+
RepositoryId: h.remoteRepository.Id,
381+
User: h.wallet.Address(),
382+
})
383+
if err != nil {
384+
return nil, err
385+
}
386+
msg = append(msg, storagetypes.NewMsgApproveRepositoryPackfileUpdate(h.wallet.Address(), packfileUpdateProposalRes.PackfileUpdateProposal.Id))
387+
388+
lfsObjectUpdateProposalRes, err := h.storageClient.LFSObjectUpdateProposalsByRepositoryId(context.Background(), &storagetypes.QueryLFSObjectUpdateProposalsByRepositoryIdRequest{
389+
RepositoryId: h.remoteRepository.Id,
390+
User: h.wallet.Address(),
391+
})
392+
if err != nil {
393+
return nil, err
394+
}
395+
396+
// Approve LFS object update
397+
for _, lfsObjectUpdateProposal := range lfsObjectUpdateProposalRes.LfsObjectProposals {
398+
msg = append(msg, storagetypes.NewMsgApproveLFSObjectUpdate(h.wallet.Address(), lfsObjectUpdateProposal.Id))
399+
}
400+
377401
if len(setBranches) > 0 {
378402
msg = append(msg, gitopiatypes.NewMsgMultiSetBranch(h.wallet.Address(), gitopiatypes.RepositoryId{
379403
Id: h.remoteRepository.Owner.Id,
@@ -403,29 +427,6 @@ func (h *GitopiaHandler) Push(remote *core.Remote, refsToPush []core.RefToPush)
403427
remote.Logger.Println("Please sign the gitopia transaction on your ledger device.")
404428
}
405429

406-
// Approve packfile update
407-
packfileUpdateProposalRes, err := h.storageClient.PackfileUpdateProposal(context.Background(), &storagetypes.QueryPackfileUpdateProposalRequest{
408-
RepositoryId: h.remoteRepository.Id,
409-
User: h.wallet.Address(),
410-
})
411-
if err != nil {
412-
return nil, err
413-
}
414-
msg = append(msg, storagetypes.NewMsgApproveRepositoryPackfileUpdate(h.wallet.Address(), packfileUpdateProposalRes.PackfileUpdateProposal.Id))
415-
416-
lfsObjectUpdateProposalRes, err := h.storageClient.LFSObjectUpdateProposalsByRepositoryId(context.Background(), &storagetypes.QueryLFSObjectUpdateProposalsByRepositoryIdRequest{
417-
RepositoryId: h.remoteRepository.Id,
418-
User: h.wallet.Address(),
419-
})
420-
if err != nil {
421-
return nil, err
422-
}
423-
424-
// Approve LFS object update
425-
for _, lfsObjectUpdateProposal := range lfsObjectUpdateProposalRes.LfsObjectProposals {
426-
msg = append(msg, storagetypes.NewMsgApproveLFSObjectUpdate(h.wallet.Address(), lfsObjectUpdateProposal.Id))
427-
}
428-
429430
if err := h.wallet.SignAndBroadcast(h.grpcConn, msg); err != nil {
430431
return nil, err
431432
}

0 commit comments

Comments
 (0)