Skip to content

Commit 55f3dfe

Browse files
authored
Launch RPC supports dry runs for non-admin keys (#150)
1 parent 2f35307 commit 55f3dfe

1 file changed

Lines changed: 20 additions & 20 deletions

File tree

ocp/rpc/currency/launch.go

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,7 @@ func (s *currencyServer) Launch(ctx context.Context, req *currencypb.LaunchReque
4444
}
4545

4646
// Restrict currency launch internally for now
47-
if ownerAccount.PublicKey().ToBase58() != s.conf.adminPublicKey.Get(ctx) {
48-
return &currencypb.LaunchResponse{Result: currencypb.LaunchResponse_DENIED}, nil
49-
}
47+
isDryRun := ownerAccount.PublicKey().ToBase58() != s.conf.adminPublicKey.Get(ctx)
5048

5149
count, err := s.data.CountCurrencyMints(ctx)
5250
if err != nil {
@@ -219,24 +217,26 @@ func (s *currencyServer) Launch(ctx context.Context, req *currencypb.LaunchReque
219217
CreatedAt: creationTs,
220218
}
221219

222-
err = s.data.ExecuteInTx(ctx, sql.LevelDefault, func(ctx context.Context) error {
223-
err := s.data.SaveKey(ctx, &authorityVaultRecord)
224-
if err != nil {
225-
return err
226-
}
227-
228-
err = s.data.SaveCurrencyMetadata(ctx, currencyMetadataRecord)
229-
if err != nil {
230-
return err
220+
if !isDryRun {
221+
err = s.data.ExecuteInTx(ctx, sql.LevelDefault, func(ctx context.Context) error {
222+
err := s.data.SaveKey(ctx, &authorityVaultRecord)
223+
if err != nil {
224+
return err
225+
}
226+
227+
err = s.data.SaveCurrencyMetadata(ctx, currencyMetadataRecord)
228+
if err != nil {
229+
return err
230+
}
231+
232+
return s.data.SaveVmMetadata(ctx, vmMetadataRecord)
233+
})
234+
if err == currency.ErrDuplicateCurrency {
235+
return &currencypb.LaunchResponse{Result: currencypb.LaunchResponse_EXISTS}, nil
236+
} else if err != nil {
237+
log.With(zap.Error(err)).Warn("failed to save currency and vm metadata")
238+
return nil, status.Error(codes.Internal, "")
231239
}
232-
233-
return s.data.SaveVmMetadata(ctx, vmMetadataRecord)
234-
})
235-
if err == currency.ErrDuplicateCurrency {
236-
return &currencypb.LaunchResponse{Result: currencypb.LaunchResponse_EXISTS}, nil
237-
} else if err != nil {
238-
log.With(zap.Error(err)).Warn("failed to save currency and vm metadata")
239-
return nil, status.Error(codes.Internal, "")
240240
}
241241

242242
return &currencypb.LaunchResponse{

0 commit comments

Comments
 (0)