Skip to content

Commit

Permalink
Merge pull request #350 from kaleido-io/insert
Browse files Browse the repository at this point in the history
Replace UpsertOperation with InsertOperation
  • Loading branch information
awrichar committed Dec 6, 2021
2 parents 1d6405c + 2d77216 commit 95b0ad3
Show file tree
Hide file tree
Showing 16 changed files with 120 additions and 208 deletions.
2 changes: 1 addition & 1 deletion internal/assets/token_pool.go
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ func (am *assetManager) createTokenPoolInternal(ctx context.Context, pool *fftyp
err = am.database.RunAsGroup(ctx, func(ctx context.Context) (err error) {
err = am.database.UpsertTransaction(ctx, tx, false /* should be new, or idempotent replay */)
if err == nil {
err = am.database.UpsertOperation(ctx, op, false)
err = am.database.InsertOperation(ctx, op)
}
return err
})
Expand Down
18 changes: 9 additions & 9 deletions internal/assets/token_pool_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ func TestCreateTokenPoolFail(t *testing.T) {
mdi.On("UpsertTransaction", context.Background(), mock.MatchedBy(func(tx *fftypes.Transaction) bool {
return tx.Subject.Type == fftypes.TransactionTypeTokenPool
}), false).Return(nil)
mdi.On("UpsertOperation", context.Background(), mock.Anything, false).Return(nil)
mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil)
mti.On("CreateTokenPool", context.Background(), mock.Anything, mock.Anything, mock.Anything).Return(fmt.Errorf("pop"))

_, err := am.CreateTokenPool(context.Background(), "ns1", pool, false)
Expand Down Expand Up @@ -136,7 +136,7 @@ func TestCreateTokenPoolOperationFail(t *testing.T) {
mdi.On("UpsertTransaction", context.Background(), mock.MatchedBy(func(tx *fftypes.Transaction) bool {
return tx.Subject.Type == fftypes.TransactionTypeTokenPool
}), false).Return(nil)
mdi.On("UpsertOperation", context.Background(), mock.Anything, false).Return(fmt.Errorf("pop"))
mdi.On("InsertOperation", context.Background(), mock.Anything).Return(fmt.Errorf("pop"))

_, err := am.CreateTokenPool(context.Background(), "ns1", pool, false)
assert.Regexp(t, "pop", err)
Expand All @@ -160,7 +160,7 @@ func TestCreateTokenPoolSuccess(t *testing.T) {
mdi.On("UpsertTransaction", context.Background(), mock.MatchedBy(func(tx *fftypes.Transaction) bool {
return tx.Subject.Type == fftypes.TransactionTypeTokenPool
}), false).Return(nil)
mdi.On("UpsertOperation", context.Background(), mock.Anything, false).Return(nil)
mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil)

_, err := am.CreateTokenPool(context.Background(), "ns1", pool, false)
assert.NoError(t, err)
Expand All @@ -184,7 +184,7 @@ func TestCreateTokenPoolUnknownConnectorSuccess(t *testing.T) {
mdi.On("UpsertTransaction", context.Background(), mock.MatchedBy(func(tx *fftypes.Transaction) bool {
return tx.Subject.Type == fftypes.TransactionTypeTokenPool
}), false).Return(nil)
mdi.On("UpsertOperation", context.Background(), mock.Anything, false).Return(nil)
mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil)

_, err := am.CreateTokenPool(context.Background(), "ns1", pool, false)
assert.NoError(t, err)
Expand Down Expand Up @@ -244,7 +244,7 @@ func TestCreateTokenPoolConfirm(t *testing.T) {
mdi.On("UpsertTransaction", context.Background(), mock.MatchedBy(func(tx *fftypes.Transaction) bool {
return tx.Subject.Type == fftypes.TransactionTypeTokenPool
}), false).Return(nil)
mdi.On("UpsertOperation", context.Background(), mock.Anything, false).Return(nil).Times(1)
mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil).Times(1)
msa.On("WaitForTokenPool", context.Background(), "ns1", mock.Anything, mock.Anything).
Run(func(args mock.Arguments) {
send := args[3].(syncasync.RequestSender)
Expand Down Expand Up @@ -322,7 +322,7 @@ func TestCreateTokenPoolByTypeFail(t *testing.T) {
mdi.On("UpsertTransaction", context.Background(), mock.MatchedBy(func(tx *fftypes.Transaction) bool {
return tx.Subject.Type == fftypes.TransactionTypeTokenPool
}), false).Return(nil)
mdi.On("UpsertOperation", context.Background(), mock.Anything, false).Return(nil)
mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil)
mti.On("CreateTokenPool", context.Background(), mock.Anything, mock.Anything, mock.Anything).Return(fmt.Errorf("pop"))

_, err := am.CreateTokenPoolByType(context.Background(), "ns1", "magic-tokens", pool, false)
Expand Down Expand Up @@ -364,7 +364,7 @@ func TestCreateTokenPoolByTypeOperationFail(t *testing.T) {
mdi.On("UpsertTransaction", context.Background(), mock.MatchedBy(func(tx *fftypes.Transaction) bool {
return tx.Subject.Type == fftypes.TransactionTypeTokenPool
}), false).Return(nil)
mdi.On("UpsertOperation", context.Background(), mock.Anything, false).Return(fmt.Errorf("pop"))
mdi.On("InsertOperation", context.Background(), mock.Anything).Return(fmt.Errorf("pop"))

_, err := am.CreateTokenPoolByType(context.Background(), "ns1", "magic-tokens", pool, false)
assert.Regexp(t, "pop", err)
Expand All @@ -388,7 +388,7 @@ func TestCreateTokenPoolByTypeSuccess(t *testing.T) {
mdi.On("UpsertTransaction", context.Background(), mock.MatchedBy(func(tx *fftypes.Transaction) bool {
return tx.Subject.Type == fftypes.TransactionTypeTokenPool
}), false).Return(nil)
mdi.On("UpsertOperation", context.Background(), mock.Anything, false).Return(nil)
mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil)

_, err := am.CreateTokenPoolByType(context.Background(), "ns1", "magic-tokens", pool, false)
assert.NoError(t, err)
Expand All @@ -413,7 +413,7 @@ func TestCreateTokenPoolByTypeConfirm(t *testing.T) {
mdi.On("UpsertTransaction", context.Background(), mock.MatchedBy(func(tx *fftypes.Transaction) bool {
return tx.Subject.Type == fftypes.TransactionTypeTokenPool
}), false).Return(nil)
mdi.On("UpsertOperation", context.Background(), mock.Anything, false).Return(nil).Times(1)
mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil).Times(1)
msa.On("WaitForTokenPool", context.Background(), "ns1", mock.Anything, mock.Anything).
Run(func(args mock.Arguments) {
send := args[3].(syncasync.RequestSender)
Expand Down
2 changes: 1 addition & 1 deletion internal/assets/token_transfer.go
Original file line number Diff line number Diff line change
Expand Up @@ -284,7 +284,7 @@ func (s *transferSender) sendInternal(ctx context.Context, method sendMethod) er
if err != nil {
return err
}
if err = s.mgr.database.UpsertOperation(ctx, op, false); err != nil {
if err = s.mgr.database.InsertOperation(ctx, op); err != nil {
return err
}
if s.transfer.Message != nil {
Expand Down
36 changes: 18 additions & 18 deletions internal/assets/token_transfer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ func TestMintTokensSuccess(t *testing.T) {
mdi.On("UpsertTransaction", context.Background(), mock.MatchedBy(func(tx *fftypes.Transaction) bool {
return tx.Subject.Type == fftypes.TransactionTypeTokenTransfer
}), false).Return(nil)
mdi.On("UpsertOperation", context.Background(), mock.Anything, false).Return(nil)
mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil)

_, err := am.MintTokens(context.Background(), "ns1", mint, false)
assert.NoError(t, err)
Expand Down Expand Up @@ -160,7 +160,7 @@ func TestMintTokenUnknownConnectorSuccess(t *testing.T) {
mdi.On("UpsertTransaction", context.Background(), mock.MatchedBy(func(tx *fftypes.Transaction) bool {
return tx.Subject.Type == fftypes.TransactionTypeTokenTransfer
}), false).Return(nil)
mdi.On("UpsertOperation", context.Background(), mock.Anything, false).Return(nil)
mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil)

_, err := am.MintTokens(context.Background(), "ns1", mint, false)
assert.NoError(t, err)
Expand Down Expand Up @@ -281,7 +281,7 @@ func TestMintTokenUnknownPoolSuccess(t *testing.T) {
mdi.On("UpsertTransaction", context.Background(), mock.MatchedBy(func(tx *fftypes.Transaction) bool {
return tx.Subject.Type == fftypes.TransactionTypeTokenTransfer
}), false).Return(nil)
mdi.On("UpsertOperation", context.Background(), mock.Anything, false).Return(nil)
mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil)

_, err := am.MintTokens(context.Background(), "ns1", mint, false)
assert.NoError(t, err)
Expand Down Expand Up @@ -453,7 +453,7 @@ func TestMintTokensFail(t *testing.T) {
mdi.On("UpsertTransaction", context.Background(), mock.MatchedBy(func(tx *fftypes.Transaction) bool {
return tx.Subject.Type == fftypes.TransactionTypeTokenTransfer
}), false).Return(nil)
mdi.On("UpsertOperation", context.Background(), mock.Anything, false).Return(nil)
mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil)
mdi.On("UpdateTransaction", context.Background(), mock.Anything, mock.Anything).Return(nil)
mdi.On("UpdateOperation", context.Background(), mock.Anything, mock.Anything).Return(nil)

Expand Down Expand Up @@ -482,7 +482,7 @@ func TestMintTokensFailAndDbFail(t *testing.T) {
mim.On("GetLocalOrganization", context.Background()).Return(&fftypes.Organization{Identity: "0x12345"}, nil)
mdi.On("GetTokenPool", context.Background(), "ns1", "pool1").Return(pool, nil)
mti.On("MintTokens", context.Background(), mock.Anything, "F1", &mint.TokenTransfer).Return(fmt.Errorf("pop"))
mdi.On("UpsertOperation", context.Background(), mock.Anything, false).Return(nil)
mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil)
mdi.On("UpsertTransaction", context.Background(), mock.MatchedBy(func(tx *fftypes.Transaction) bool {
return tx.Subject.Type == fftypes.TransactionTypeTokenTransfer && tx.Status != fftypes.OpStatusFailed
}), false).Return(nil)
Expand Down Expand Up @@ -515,7 +515,7 @@ func TestMintTokensOperationFail(t *testing.T) {
mdi.On("UpsertTransaction", context.Background(), mock.MatchedBy(func(tx *fftypes.Transaction) bool {
return tx.Subject.Type == fftypes.TransactionTypeTokenTransfer
}), false).Return(nil)
mdi.On("UpsertOperation", context.Background(), mock.Anything, false).Return(fmt.Errorf("pop"))
mdi.On("InsertOperation", context.Background(), mock.Anything).Return(fmt.Errorf("pop"))

_, err := am.MintTokens(context.Background(), "ns1", mint, false)
assert.EqualError(t, err, "pop")
Expand Down Expand Up @@ -547,7 +547,7 @@ func TestMintTokensConfirm(t *testing.T) {
mdi.On("UpsertTransaction", context.Background(), mock.MatchedBy(func(tx *fftypes.Transaction) bool {
return tx.Subject.Type == fftypes.TransactionTypeTokenTransfer
}), false).Return(nil)
mdi.On("UpsertOperation", context.Background(), mock.Anything, false).Return(nil)
mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil)
msa.On("WaitForTokenTransfer", context.Background(), "ns1", mock.Anything, mock.Anything).
Run(func(args mock.Arguments) {
send := args[3].(syncasync.RequestSender)
Expand Down Expand Up @@ -587,7 +587,7 @@ func TestMintTokensByTypeSuccess(t *testing.T) {
mdi.On("UpsertTransaction", context.Background(), mock.MatchedBy(func(tx *fftypes.Transaction) bool {
return tx.Subject.Type == fftypes.TransactionTypeTokenTransfer
}), false).Return(nil)
mdi.On("UpsertOperation", context.Background(), mock.Anything, false).Return(nil)
mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil)

_, err := am.MintTokensByType(context.Background(), "ns1", "magic-tokens", "pool1", mint, false)
assert.NoError(t, err)
Expand Down Expand Up @@ -617,7 +617,7 @@ func TestBurnTokensSuccess(t *testing.T) {
mdi.On("UpsertTransaction", context.Background(), mock.MatchedBy(func(tx *fftypes.Transaction) bool {
return tx.Subject.Type == fftypes.TransactionTypeTokenTransfer
}), false).Return(nil)
mdi.On("UpsertOperation", context.Background(), mock.Anything, false).Return(nil)
mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil)

_, err := am.BurnTokens(context.Background(), "ns1", burn, false)
assert.NoError(t, err)
Expand Down Expand Up @@ -671,7 +671,7 @@ func TestBurnTokensConfirm(t *testing.T) {
mdi.On("UpsertTransaction", context.Background(), mock.MatchedBy(func(tx *fftypes.Transaction) bool {
return tx.Subject.Type == fftypes.TransactionTypeTokenTransfer
}), false).Return(nil)
mdi.On("UpsertOperation", context.Background(), mock.Anything, false).Return(nil)
mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil)
msa.On("WaitForTokenTransfer", context.Background(), "ns1", mock.Anything, mock.Anything).
Run(func(args mock.Arguments) {
send := args[3].(syncasync.RequestSender)
Expand Down Expand Up @@ -711,7 +711,7 @@ func TestBurnTokensByTypeSuccess(t *testing.T) {
mdi.On("UpsertTransaction", context.Background(), mock.MatchedBy(func(tx *fftypes.Transaction) bool {
return tx.Subject.Type == fftypes.TransactionTypeTokenTransfer
}), false).Return(nil)
mdi.On("UpsertOperation", context.Background(), mock.Anything, false).Return(nil)
mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil)

_, err := am.BurnTokensByType(context.Background(), "ns1", "magic-tokens", "pool1", burn, false)
assert.NoError(t, err)
Expand Down Expand Up @@ -747,7 +747,7 @@ func TestTransferTokensSuccess(t *testing.T) {
mdi.On("UpsertTransaction", context.Background(), mock.MatchedBy(func(tx *fftypes.Transaction) bool {
return tx.Subject.Type == fftypes.TransactionTypeTokenTransfer
}), false).Return(nil)
mdi.On("UpsertOperation", context.Background(), mock.Anything, false).Return(nil)
mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil)

_, err := am.TransferTokens(context.Background(), "ns1", transfer, false)
assert.NoError(t, err)
Expand Down Expand Up @@ -846,7 +846,7 @@ func TestTransferTokensInvalidType(t *testing.T) {
mdi.On("UpsertTransaction", am.ctx, mock.MatchedBy(func(tx *fftypes.Transaction) bool {
return tx.Subject.Type == fftypes.TransactionTypeTokenTransfer
}), false).Return(nil)
mdi.On("UpsertOperation", am.ctx, mock.Anything, false).Return(nil)
mdi.On("InsertOperation", am.ctx, mock.Anything).Return(nil)

sender := &transferSender{
mgr: am,
Expand Down Expand Up @@ -933,7 +933,7 @@ func TestTransferTokensWithBroadcastMessage(t *testing.T) {
mdi.On("UpsertTransaction", context.Background(), mock.MatchedBy(func(tx *fftypes.Transaction) bool {
return tx.Subject.Type == fftypes.TransactionTypeTokenTransfer
}), false).Return(nil)
mdi.On("UpsertOperation", context.Background(), mock.Anything, false).Return(nil)
mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil)
mbm.On("NewBroadcast", "ns1", transfer.Message).Return(mms)
mms.On("Prepare", context.Background()).Return(nil)
mdi.On("UpsertMessage", context.Background(), mock.MatchedBy(func(msg *fftypes.Message) bool {
Expand Down Expand Up @@ -1031,7 +1031,7 @@ func TestTransferTokensWithPrivateMessage(t *testing.T) {
mdi.On("UpsertTransaction", context.Background(), mock.MatchedBy(func(tx *fftypes.Transaction) bool {
return tx.Subject.Type == fftypes.TransactionTypeTokenTransfer
}), false).Return(nil)
mdi.On("UpsertOperation", context.Background(), mock.Anything, false).Return(nil)
mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil)
mpm.On("NewMessage", "ns1", transfer.Message).Return(mms)
mms.On("Prepare", context.Background()).Return(nil)
mdi.On("UpsertMessage", context.Background(), mock.MatchedBy(func(msg *fftypes.Message) bool {
Expand Down Expand Up @@ -1112,7 +1112,7 @@ func TestTransferTokensConfirm(t *testing.T) {
mdi.On("UpsertTransaction", context.Background(), mock.MatchedBy(func(tx *fftypes.Transaction) bool {
return tx.Subject.Type == fftypes.TransactionTypeTokenTransfer
}), false).Return(nil)
mdi.On("UpsertOperation", context.Background(), mock.Anything, false).Return(nil)
mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil)
msa.On("WaitForTokenTransfer", context.Background(), "ns1", mock.Anything, mock.Anything).
Run(func(args mock.Arguments) {
send := args[3].(syncasync.RequestSender)
Expand Down Expand Up @@ -1170,7 +1170,7 @@ func TestTransferTokensWithBroadcastConfirm(t *testing.T) {
mim.On("GetLocalOrganization", context.Background()).Return(&fftypes.Organization{Identity: "0x12345"}, nil)
mdi.On("GetTokenPool", context.Background(), "ns1", "pool1").Return(pool, nil)
mti.On("TransferTokens", context.Background(), mock.Anything, "F1", &transfer.TokenTransfer).Return(nil)
mdi.On("UpsertOperation", context.Background(), mock.Anything, false).Return(nil)
mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil)
mdi.On("UpsertTransaction", context.Background(), mock.MatchedBy(func(tx *fftypes.Transaction) bool {
return tx.Subject.Type == fftypes.TransactionTypeTokenTransfer
}), false).Return(nil)
Expand Down Expand Up @@ -1230,7 +1230,7 @@ func TestTransferTokensByTypeSuccess(t *testing.T) {
mdi.On("UpsertTransaction", context.Background(), mock.MatchedBy(func(tx *fftypes.Transaction) bool {
return tx.Subject.Type == fftypes.TransactionTypeTokenTransfer
}), false).Return(nil)
mdi.On("UpsertOperation", context.Background(), mock.Anything, false).Return(nil)
mdi.On("InsertOperation", context.Background(), mock.Anything).Return(nil)

_, err := am.TransferTokensByType(context.Background(), "ns1", "magic-tokens", "pool1", transfer, false)
assert.NoError(t, err)
Expand Down
2 changes: 1 addition & 1 deletion internal/batchpin/batchpin.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ func (bp *batchPinSubmitter) SubmitPinnedBatch(ctx context.Context, batch *fftyp
"",
fftypes.OpTypeBlockchainBatchPin,
fftypes.OpStatusPending)
err = bp.database.UpsertOperation(ctx, op, false)
err = bp.database.InsertOperation(ctx, op)
if err != nil {
return err
}
Expand Down
10 changes: 5 additions & 5 deletions internal/batchpin/batchpin_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,12 +63,12 @@ func TestSubmitPinnedBatchOk(t *testing.T) {
contexts := []*fftypes.Bytes32{}

mdi.On("UpsertTransaction", ctx, mock.Anything, false).Return(nil)
mdi.On("UpsertOperation", ctx, mock.MatchedBy(func(op *fftypes.Operation) bool {
mdi.On("InsertOperation", ctx, mock.MatchedBy(func(op *fftypes.Operation) bool {
assert.Equal(t, fftypes.OpTypeBlockchainBatchPin, op.Type)
assert.Equal(t, "ut", op.Plugin)
assert.Equal(t, *batch.Payload.TX.ID, *op.Transaction)
return true
}), false).Return(nil)
})).Return(nil)
mbi.On("SubmitBatchPin", ctx, mock.Anything, (*fftypes.UUID)(nil), "0x12345", mock.Anything).Return(nil)

err := bp.SubmitPinnedBatch(ctx, batch, contexts)
Expand Down Expand Up @@ -99,12 +99,12 @@ func TestSubmitPinnedBatchWithMetricsOk(t *testing.T) {
contexts := []*fftypes.Bytes32{}

mdi.On("UpsertTransaction", ctx, mock.Anything, false).Return(nil)
mdi.On("UpsertOperation", ctx, mock.MatchedBy(func(op *fftypes.Operation) bool {
mdi.On("InsertOperation", ctx, mock.MatchedBy(func(op *fftypes.Operation) bool {
assert.Equal(t, fftypes.OpTypeBlockchainBatchPin, op.Type)
assert.Equal(t, "ut", op.Plugin)
assert.Equal(t, *batch.Payload.TX.ID, *op.Transaction)
return true
}), false).Return(nil)
})).Return(nil)
mbi.On("SubmitBatchPin", ctx, mock.Anything, (*fftypes.UUID)(nil), "0x12345", mock.Anything).Return(nil)

err := bp.SubmitPinnedBatch(ctx, batch, contexts)
Expand Down Expand Up @@ -133,7 +133,7 @@ func TestSubmitPinnedBatchOpFail(t *testing.T) {
contexts := []*fftypes.Bytes32{}

mdi.On("UpsertTransaction", ctx, mock.Anything, false).Return(nil)
mdi.On("UpsertOperation", ctx, mock.Anything, false).Return(fmt.Errorf("pop"))
mdi.On("InsertOperation", ctx, mock.Anything).Return(fmt.Errorf("pop"))

err := bp.SubmitPinnedBatch(ctx, batch, contexts)
assert.Regexp(t, "pop", err)
Expand Down
2 changes: 1 addition & 1 deletion internal/broadcast/manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ func (bm *broadcastManager) submitTXAndUpdateDB(ctx context.Context, batch *ffty
fftypes.OpTypePublicStorageBatchBroadcast,
fftypes.OpStatusSucceeded, // Note we performed the action synchronously above
)
err = bm.database.UpsertOperation(ctx, op, false)
err = bm.database.InsertOperation(ctx, op)
if err != nil {
return err
}
Expand Down

0 comments on commit 95b0ad3

Please sign in to comment.