diff --git a/internal/assets/token_transfer.go b/internal/assets/token_transfer.go index 06df03d436..18c46144d3 100644 --- a/internal/assets/token_transfer.go +++ b/internal/assets/token_transfer.go @@ -270,7 +270,7 @@ func (s *transferSender) sendInternal(ctx context.Context, method sendMethod) er var pool *fftypes.TokenPool err = s.mgr.database.RunAsGroup(ctx, func(ctx context.Context) (err error) { - pool, err = s.mgr.GetTokenPool(ctx, s.namespace, s.transfer.Connector, s.transfer.Pool) + pool, err = s.mgr.GetTokenPoolByNameOrID(ctx, s.namespace, s.transfer.Pool) if err != nil { return err } diff --git a/internal/assets/token_transfer_test.go b/internal/assets/token_transfer_test.go index d9f00ac301..b7e8342b3a 100644 --- a/internal/assets/token_transfer_test.go +++ b/internal/assets/token_transfer_test.go @@ -1146,6 +1146,31 @@ func TestTransferTokensByTypeSuccess(t *testing.T) { mti.AssertExpectations(t) } +func TestTransferTokensPoolNotFound(t *testing.T) { + am, cancel := newTestAssets(t) + defer cancel() + + transfer := &fftypes.TokenTransferInput{ + TokenTransfer: fftypes.TokenTransfer{ + From: "A", + To: "B", + Amount: *fftypes.NewBigInt(5), + }, + Pool: "pool1", + } + + mdi := am.database.(*databasemocks.Plugin) + mim := am.identity.(*identitymanagermocks.Manager) + mim.On("GetLocalOrganization", context.Background()).Return(&fftypes.Organization{Identity: "0x12345"}, nil) + mdi.On("GetTokenPool", context.Background(), "ns1", "pool1").Return(nil, nil) + + _, err := am.TransferTokens(context.Background(), "ns1", transfer, false) + assert.Regexp(t, "FF10109", err) + + mim.AssertExpectations(t) + mdi.AssertExpectations(t) +} + func TestTransferPrepare(t *testing.T) { am, cancel := newTestAssets(t) defer cancel()